Changes between Version 18 and Version 19 of AaronHelsinger/GAPI_AM_API_DRAFT
- Timestamp:
- 03/29/12 13:06:46 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AaronHelsinger/GAPI_AM_API_DRAFT
v18 v19 920 920 boolean geni_compressed; 921 921 string geni_slice_urn; 922 string geni_sliver_urns[]; 922 923 struct geni_rspec_version { 923 924 string type; … … 940 941 }}} 941 942 943 Where 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 942 945 Return struct: 943 946 {{{ 944 947 { 945 948 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 962 FIXME: Include the slivers struct? 963 FIXME: Break this into 3 methods: List(), List(slice), List(slivers) 953 964 954 965 == !CreateSlivers == 966 AKA Allocate() 955 967 {{{ 956 968 struct CreateSlivers(string slice_urn, 957 969 struct credentials[], 958 970 string rspec, 959 struct users[],960 971 struct options) 961 972 }}} … … 984 995 { 985 996 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 ] 988 1005 <others that are AM specific> 989 1006 } 990 1007 }}} 991 1008 992 FIXME: Return list of sliver_urns? 1009 The 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. 993 1010 994 1011 == !RenewAllocations == 1012 AKA Renew() or !RenewAllocated 995 1013 {{{ 996 1014 struct RenewAllocations(string urn[], … … 1016 1034 Return list of structs: 1017 1035 {{{ 1036 geni_slivers: 1018 1037 [ 1019 1038 { … … 1027 1046 }}} 1028 1047 1048 FIXME: Combine with !RenewSlivers()? 1049 FIXME: Split Renew(slice) from Renew(slivers) 1050 1029 1051 == !UpdateAllocations == 1052 AKA !UpdateAllocated() 1030 1053 {{{ 1031 1054 struct UpdateAllocations(string urn[], struct credentials[], string rspec, … … 1047 1070 Options include {{{geni_end_time}}} and {{{geni_best_effort: <True/False, default false>}}} 1048 1071 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 }}} 1072 Return 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 1088 The 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 1090 FIXME: Split Update(slice) from Update(slivers) 1091 FIXME: Is this the same method as for updating provisioned slivers? 1061 1092 1062 1093 == !ProvisionSlivers == 1063 {{{ 1064 struct ProvisionSlivers(string urn[], struct credentials[], string ticket, 1094 AKA Provision() 1095 {{{ 1096 struct ProvisionSlivers(string urn[], struct credentials[], 1065 1097 struct users[], struct options) 1066 1098 }}} … … 1078 1110 }}} 1079 1111 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? 1112 Options include {{{geni_best_effort = True/False, default false}}}, {{{geni_end_time}}} 1113 1114 Return 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 1131 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. 1132 1133 FIXME: Is the returned manifest only for newly provisioned slivers? Or all slivers at this AM for this slice? 1099 1134 1100 1135 == !UpdateSlivers == 1101 {{{ 1102 struct UpdateSlivers(string slice_urn, struct credentials[], string rspec, 1103 struct options) 1136 AKA Update() 1137 {{{ 1138 struct UpdateSlivers(string urn[], struct credentials[], string rspec, 1139 struct users[], struct options) 1104 1140 }}} 1105 1141 … … 1121 1157 {{{ 1122 1158 { 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 ] 1126 1168 <others that are AM specific> 1127 1169 } 1128 1170 }}} 1129 1171 1172 The RSpec argument may be a new delta format. 1173 The 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 1175 FIXME: Split Update(slice) from Update(slivers) 1176 FIXME: Is this the same method as for updating allocated slivers? 1177 FIXME: Return both a manifest and a delta RSpec? 1130 1178 1131 1179 == !RenewSlivers == 1180 AKA Renew() or !RenewProvisioned() 1132 1181 {{{ 1133 1182 struct RenewSlivers(string urn[], … … 1153 1202 Return list of structs: 1154 1203 {{{ 1204 geni_slivers: 1155 1205 [ 1156 1206 { 1157 1207 geni_sliver_urn: <string>, 1158 1208 geni_allocation_status: <string>, 1209 geni_operational_status: <string>, 1159 1210 geni_expires: <time when the sliver expires from its current state>, 1160 <others AM or methodspecific>1211 <others AM or resource specific> 1161 1212 }, 1162 1213 ... 1163 1214 ] 1164 1215 }}} 1216 1217 FIXME: Combine with !RenewAllocations()? 1218 FIXME: Split Renew(slice) from Renew(slivers) 1165 1219 1166 1220 == !SliversStatus ==