Changes between Version 18 and Version 19 of AaronHelsinger/GAPI_AM_API_DRAFT


Ignore:
Timestamp:
03/29/12 13:06:46 (12 years ago)
Author:
Aaron Helsinger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • AaronHelsinger/GAPI_AM_API_DRAFT

    v18 v19  
    920920  boolean geni_compressed;
    921921  string geni_slice_urn;
     922  string geni_sliver_urns[];
    922923  struct geni_rspec_version {
    923924    string type;
     
    940941}}}
    941942
     943Where supplying `geni_sliver_urns`, whether or not the `geni_slice_urn` is also supplied, means return a manifest RSpec showing the (allocated or provisioned) slivers listed - not necessarily the complete slice at this aggregate.
     944
    942945Return struct:
    943946{{{
    944947{
    945948   geni_rspec: <string, ad or Manifest - may be empty though)>
    946    geni_urn: <string urn, slice or sliver as requested>
    947    geni_expires: <RFC3339 allocation expiration string, as in geni_expires from SliversStatus>,
    948    geni_allocation_status: <string sliver state - allocated or ?? >,
    949 }
    950 }}}
    951 
    952 FIXME: Can you do !ListResources on a single sliver? Does the return show all slivers individually? 1 roll-up?
     949   geni_urn: <string slice urn, as requested>
     950   geni_slivers: [
     951               {
     952                  geni_sliver_urn: <string sliver urn>
     953                  geni_expires: <RFC3339 allocation expiration string, as in geni_expires from SliversStatus>,
     954                  geni_allocation_status: <string sliver state - allocated or ?? >,
     955                  geni_operational_status: <string sliver operational state>
     956               },
     957               ...
     958         ]
     959}
     960}}}
     961
     962FIXME: Include the slivers struct?
     963FIXME: Break this into 3 methods: List(), List(slice), List(slivers)
    953964
    954965 == !CreateSlivers ==
     966AKA Allocate()
    955967{{{
    956968struct CreateSlivers(string slice_urn,
    957969                    struct credentials[],
    958970                    string rspec,
    959                     struct users[],
    960971                    struct options)
    961972}}}
     
    984995{
    985996 rspec: <string manifest>,
    986  geni_expires: <RFC3339 allocation expiration string, as in geni_expires from SliversStatus>,
    987  geni_allocation_status: <string sliver state - allocated or ?? >,
     997 geni_slivers: [
     998        {
     999                  geni_sliver_urn: <string sliver urn>
     1000                  geni_expires: <RFC3339 allocation expiration string, as in geni_expires from SliversStatus>,
     1001                  geni_allocation_status: <string sliver state - allocated or ?? >
     1002        },
     1003        ...
     1004    ]
    9881005 <others that are AM specific>
    9891006}
    9901007}}}
    9911008
    992 FIXME: Return list of sliver_urns?
     1009The manifest is a manifest of only newly allocated slivers. The `geni_end_time` argument requests an expiration of the allocated slivers. AMs may not be able to honor it, but may still succeed the overall request.
    9931010
    9941011 == !RenewAllocations ==
     1012AKA Renew() or !RenewAllocated
    9951013{{{
    9961014struct RenewAllocations(string urn[],
     
    10161034Return list of structs:
    10171035{{{
     1036  geni_slivers:
    10181037[
    10191038  {
     
    10271046}}}
    10281047
     1048FIXME: Combine with !RenewSlivers()?
     1049FIXME: Split Renew(slice) from Renew(slivers)
     1050
    10291051 == !UpdateAllocations ==
     1052AKA !UpdateAllocated()
    10301053{{{
    10311054struct UpdateAllocations(string urn[], struct credentials[], string rspec,
     
    10471070Options include {{{geni_end_time}}} and {{{geni_best_effort: <True/False, default false>}}}
    10481071
    1049 Return a list of structs:
    1050 {{{
    1051 [
    1052   {
    1053    geni_sliver_urn: <string>,
    1054    geni_allocation_status: <string>,
    1055    geni_expires: <time when the sliver expires from its current state>,
    1056    <others AM or method specific>
    1057   },
    1058   ...
    1059 ]
    1060 }}}
     1072Return struct:
     1073{{{
     1074{
     1075 rspec: <string manifest>,
     1076 geni_slivers: [
     1077        {
     1078                  geni_sliver_urn: <string sliver urn>
     1079                  geni_expires: <RFC3339 allocation expiration string, as in geni_expires from SliversStatus>,
     1080                  geni_allocation_status: <string sliver state - allocated or ?? >
     1081        },
     1082        ...
     1083    ]
     1084 <others that are AM specific>
     1085}
     1086}}}
     1087
     1088The manifest is a manifest of only referenced allocated slivers. The `geni_end_time` argument requests an expiration of the allocated slivers. AMs may not be able to honor it, but may still succeed the overall request.
     1089
     1090FIXME: Split Update(slice) from Update(slivers)
     1091FIXME: Is this the same method as for updating provisioned slivers?
    10611092
    10621093 == !ProvisionSlivers ==
    1063 {{{
    1064 struct ProvisionSlivers(string urn[], struct credentials[], string ticket,
     1094AKA Provision()
     1095{{{
     1096struct ProvisionSlivers(string urn[], struct credentials[], 
    10651097                                 struct users[], struct options)
    10661098}}}
     
    10781110}}}
    10791111
    1080 Options include {{{geni_best_effort = True/False, default false}}}
    1081 
    1082 Return a list of structs:
    1083 {{{
    1084 [
    1085   {
    1086    geni_sliver_urn: <string>,
    1087    geni_allocation_status: <string>,
    1088    geni_operational_status: <string>,
    1089    geni_expires <time when the sliver expires from its current state>,
    1090    [optional: geni_resource_status: <string>]
    1091    <others AM or method specific>
    1092   },
    1093   ...
    1094 ]
    1095 }}}
    1096 
    1097 FIXME: Return a manifest RSpec at top level?
    1098 FIXME: geni_start_time?
     1112Options include {{{geni_best_effort = True/False, default false}}}, {{{geni_end_time}}}
     1113
     1114Return struct:
     1115{{{
     1116  geni_manifest: <string, RSpec manifest>,
     1117  geni_slivers:
     1118  [
     1119    {
     1120     geni_sliver_urn: <string>,
     1121     geni_allocation_status: <string>,
     1122     geni_operational_status: <string>,
     1123     geni_expires <time when the sliver expires from its current state>,
     1124     <others AM or resource specific>
     1125    },
     1126    ...
     1127  ],
     1128  <others AM or resource specific>
     1129}}}
     1130
     1131The `geni_end_time` argument requests an expiration of the provisioned slivers. AMs may not be able to honor it, but may still succeed the overall request.
     1132
     1133FIXME: Is the returned manifest only for newly provisioned slivers? Or all slivers at this AM for this slice?
    10991134
    11001135 == !UpdateSlivers ==
    1101 {{{
    1102 struct UpdateSlivers(string slice_urn, struct credentials[], string rspec,
    1103                                                  struct options)
     1136AKA Update()
     1137{{{
     1138struct UpdateSlivers(string urn[], struct credentials[], string rspec,
     1139                                                 struct users[], struct options)
    11041140}}}
    11051141
     
    11211157{{{
    11221158{
    1123   rspec: <string rspec>
    1124   geni_allocation_status: <sliver state - allocated>,
    1125   geni_expires: <datetime>.
     1159 rspec: <string manifest>,
     1160 geni_slivers: [
     1161        {
     1162                  geni_sliver_urn: <string sliver urn>
     1163                  geni_expires: <RFC3339 allocation expiration string, as in geni_expires from SliversStatus>,
     1164                  geni_allocation_status: <string sliver state - allocated or ?? >
     1165        },
     1166        ...
     1167    ]
    11261168 <others that are AM specific>
    11271169}
    11281170}}}
    11291171
     1172The RSpec argument may be a new delta format.
     1173The manifest is a manifest of only referenced provisioned slivers. The `geni_end_time` argument requests an expiration of the provisioned slivers. AMs may not be able to honor it, but may still succeed the overall request.
     1174
     1175FIXME: Split Update(slice) from Update(slivers)
     1176FIXME: Is this the same method as for updating allocated slivers?
     1177FIXME: Return both a manifest and a delta RSpec?
    11301178
    11311179 == !RenewSlivers ==
     1180AKA Renew() or !RenewProvisioned()
    11321181{{{
    11331182struct RenewSlivers(string urn[],
     
    11531202Return list of structs:
    11541203{{{
     1204  geni_slivers:
    11551205[
    11561206  {
    11571207   geni_sliver_urn: <string>,
    11581208   geni_allocation_status: <string>,
     1209   geni_operational_status: <string>,
    11591210   geni_expires: <time when the sliver expires from its current state>,
    1160    <others AM or method specific>
     1211   <others AM or resource specific>
    11611212  },
    11621213  ...
    11631214]
    11641215}}}
     1216
     1217FIXME: Combine with !RenewAllocations()?
     1218FIXME: Split Renew(slice) from Renew(slivers)
    11651219
    11661220 == !SliversStatus ==