Changes between Version 34 and Version 35 of AaronHelsinger/GAPI_AM_API_DRAFT
- Timestamp:
- 03/30/12 10:46:19 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AaronHelsinger/GAPI_AM_API_DRAFT
v34 v35 955 955 }}} 956 956 957 At least one credential must be a valid slice credential for the slice specified in `slice_urn` if that is an argument, or for the slice that contains the named slivers, if sliver urns are an argument, or a valid administrative credential with sufficient privileges. Credentials must be valid (signed by a valid GENI certificate authority either directly or by chain, not expired, and grant privileges to the client identified by the SSL client certificate). Each method requires specific privileges, which must be granted by the provided credentials. Note that the semantics of this argument is not clear: most implementations require a single credential to provide all needed privileges. Alternative interpretations might, for example, accumulate privileges from each valid credential to determine overall caller permissions. For details on GENI AM API format credentials, see [wiki:GeniApiCredentials the GENI wiki]. 958 957 959 === `geni_end_time` === 958 960 The `geni_end_time` argument requests an expiration of the specified slivers. It is in dateTime.rfc3339 format (defined above). … … 980 982 ] 981 983 }}} 984 985 === `options` === 986 An XML-RPC struct. For !GetVersion only, this argument is optional. In all other methods, it is required. Only !ListResources has required entries in the options struct. Aggregates are compliant with this API change by accepting this argument. Aggregates may accept entries to this struct. Aggregates should not require any new options to any method - they should always have a reasonable default for any such option. Aggregates should document new `options` arguments. The prefix `geni_` is reserved for members that are part of this API specification. Implementations should choose an appropriate prefix to avoid conflicts. 982 987 983 988 == !GetVersion == … … 1042 1047 Note that all options may be omitted by the client, exception `geni_rspec_version` which is required. The aggregate must honor all supplied options. 1043 1048 1044 Where`credentials` is the standard argument defined above.1049 `credentials` is the standard argument defined above. 1045 1050 1046 1051 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. … … 1078 1083 }}} 1079 1084 1080 Where credentialsis the standard argument defined above.1085 `credentials` is the standard argument defined above. 1081 1086 1082 1087 Options include: … … 1107 1112 AKA !RenewSliver() or !RenewAllocated 1108 1113 Request that the named slivers be renewed, with their expiration extended. If possible, the aggregate should extend the slivers to the requested expiration time, or to a sooner time if policy limits apply. This method applies to slivers that are `geni_allocated` or to slivers that are `geni_provisioned`, though different policies may apply to slivers in the different states, resulting in much shorter max expiration times for `geni_allocated` slivers. 1109 {{{ 1110 struct Renew(string urn[], 1114 1115 This method has two forms: one takes a single slice URN, the other takes a list of one or more sliver URNs, all contained in the same slice. When a slice URN is supplied, the method operates on all slivers contained in that slice at this aggregate. All other arguments and returns are identical. 1116 1117 Form 1: 1118 {{{ 1119 struct Renew(string slice_urn, 1111 1120 struct credentials[], 1112 1121 dateTime.rfc3339 expiration_time, … … 1114 1123 }}} 1115 1124 1116 Where credentials is the standard argument defined above. 1125 Form 2: 1126 {{{ 1127 struct Renew(string sliver_urn[], 1128 struct credentials[], 1129 dateTime.rfc3339 expiration_time, 1130 struct options) 1131 }}} 1132 1133 `credentials` is the standard argument defined above. 1117 1134 1118 1135 Options include {{{geni_best_effort}}} … … 1131 1148 }}} 1132 1149 1133 FIXME: Split Renew(slice) from Renew(slivers)1134 1135 1150 == !UpdateAllocations == 1136 1151 AKA !UpdateAllocated() … … 1141 1156 #!comment 1142 1157 1143 {{{ 1144 struct UpdateAllocations(string urn[], struct credentials[], geni.rspec rspec, 1158 This method has two forms: one takes a single slice URN, the other takes a list of one or more sliver URNs, all contained in the same slice. When a slice URN is supplied, the method operates on all slivers contained in that slice at this aggregate. All other arguments and returns are identical. 1159 1160 Form 1: 1161 {{{ 1162 struct UpdateAllocations(string slice_urn, struct credentials[], geni.rspec rspec, 1145 1163 struct options) 1146 1164 }}} 1147 1165 1148 Where credentials is the standard argument defined above. 1166 Form 2: 1167 {{{ 1168 struct UpdateAllocations(string sliver_urn[], struct credentials[], geni.rspec rspec, 1169 struct options) 1170 }}} 1171 1172 `credentials` is the standard argument defined above. 1149 1173 1150 1174 Options include: … … 1169 1193 The manifest is a manifest of only referenced allocated slivers. 1170 1194 1171 FIXME: Split Update(slice) from Update(slivers)1172 1195 FIXME: Is this the same method as for updating provisioned slivers? 1173 1196 }}} 1197 1174 1198 == !ProvisionSlivers == 1175 1199 AKA Provision() 1176 1200 Request that the named `geni_allocated` slivers be made `geni_provisioned`, instantiating or otherwise realizing the resources, such that they have a valid `geni_operational_status` and may possibly be made `geni_ready` for experimenter use. 1177 {{{ 1178 struct ProvisionSlivers(string urn[], struct credentials[], 1201 1202 This method has two forms: one takes a single slice URN, the other takes a list of one or more sliver URNs, all contained in the same slice. When a slice URN is supplied, the method operates on all slivers contained in that slice at this aggregate. All other arguments and returns are identical. 1203 1204 Form 1: 1205 {{{ 1206 struct ProvisionSlivers(string slice_urn, struct credentials[], 1179 1207 struct options) 1180 1208 }}} 1181 1209 1182 Where credentials is the standard argument defined above. 1210 Form 2: 1211 {{{ 1212 struct ProvisionSlivers(string sliver_urn[], struct credentials[], 1213 struct options) 1214 }}} 1215 1216 `credentials` is the standard argument defined above. 1183 1217 1184 1218 Options include: … … 1212 1246 #!comment 1213 1247 1248 This method has two forms: one takes a single slice URN, the other takes a list of one or more sliver URNs, all contained in the same slice. When a slice URN is supplied, the method operates on all slivers contained in that slice at this aggregate. All other arguments and returns are identical. 1249 1214 1250 {{{ 1215 1251 struct UpdateSlivers(string urn[], struct credentials[], geni.rspec rspec, … … 1250 1286 == !SliversStatus == 1251 1287 Retrieve status information about the named slivers. This should be relatively dynamic data, not descriptive data as returned in the manifest RSpec by !ListResources. 1288 1289 This method has two forms: one takes a single slice URN, the other takes a list of one or more sliver URNs, all contained in the same slice. When a slice URN is supplied, the method operates on all slivers contained in that slice at this aggregate. All other arguments and returns are identical. 1290 1252 1291 {{{ 1253 1292 struct SliversStatus(string urn[], struct credentials[], struct options) … … 1281 1320 == !PerformOperationalAction == 1282 1321 Perform the named operational action on the named slivers, possibly changing the `geni_operational_status` of the named slivers. 1322 1323 This method has two forms: one takes a single slice URN, the other takes a list of one or more sliver URNs, all contained in the same slice. When a slice URN is supplied, the method operates on all slivers contained in that slice at this aggregate. All other arguments and returns are identical. 1324 1283 1325 {{{ 1284 1326 struct PerformOperationalAction (string urn[], struct credentials[], string action, … … 1307 1349 == !DeleteSlivers == 1308 1350 Delete the named slivers, making them `geni_unallocated`. Resources are de-provisioned. No further AM API operations may be performed on slivers that have been deleted. 1351 1352 This method has two forms: one takes a single slice URN, the other takes a list of one or more sliver URNs, all contained in the same slice. When a slice URN is supplied, the method operates on all slivers contained in that slice at this aggregate. All other arguments and returns are identical. 1353 1309 1354 {{{ 1310 1355 struct DeleteSlivers(string urn[], struct credentials[], struct options)