Changes between Version 40 and Version 41 of AaronHelsinger/GAPI_AM_API_DRAFT
- Timestamp:
- 04/02/12 13:07:00 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AaronHelsinger/GAPI_AM_API_DRAFT
v40 v41 929 929 }}} 930 930 931 Aggregates are expected to combine the manifests of all requested slivers into a single manifest RSpec. 932 931 933 ----- 932 934 = Changes Not Included = … … 945 947 946 948 - Allow Shutdown on a single sliver or a list of slivers 947 - Split !ListResources with {{{slice_urn}}} from !ListResources without. !ListResources with {{{slice_urn}}} we call Resolve(slice_urn).948 949 - Add {{{geni_am_info}}} block to !GetVersion return (name, id, url, location, description, is_proxy, proxy: {(a geni_am_info block)}, proxy_for[] (list of geni_am_info blocks)) 949 950 - Allow the update methods to take a generic rspec argument, allowing AMs to accept full or diff RSpecs … … 985 986 If an aggregate advertises a particular `type`/`version` (optionally defined with a combination of `schema`, `namespace` and `extensions`) in the `geni_ad_rspec_versions` attribute of !GetVersion, then it promises to send a correct Advertisement RSpec in response to a !ListResources call which supplies a `geni_rspec_version` option containing that `type`/`version`. (`geni_rspec_version` is a struct with 2 members, `type` and `version`. `type` and `version` are case-insensitive strings, matching those in `geni_ad_rspec_versions`). 986 987 987 If an Aggregate advertises a particular `type`/`version` (optionally defined with a combination of `schema`, `namespace` and `extensions`) in the `geni_request_rspec_versions` attribute of !GetVersion then it promises to correctly honor an Allocate (was !CreateSliver in API v2) call containing a request RSpec in the given format, and then to return a Manifest RSpec in the corresponding format (i.e. a GENI format request is answered with a GENI format manifest). The aggregate also promises to send a correctly formatted Manifest RSpec in response to a !ListResources call which supplies a valid `geni_slice_urn` optionand an `geni_rspec_version` option containing that supported `type`/`version`.988 If an Aggregate advertises a particular `type`/`version` (optionally defined with a combination of `schema`, `namespace` and `extensions`) in the `geni_request_rspec_versions` attribute of !GetVersion then it promises to correctly honor an Allocate (was !CreateSliver in API v2) call containing a request RSpec in the given format, and then to return a Manifest RSpec in the corresponding format (i.e. a GENI format request is answered with a GENI format manifest). The aggregate also promises to send a correctly formatted Manifest RSpec in response to a Describe call which supplies a valid slice or sliver URN and an `geni_rspec_version` option containing that supported `type`/`version`. 988 989 989 990 In this API, such RSpec fields are labeled as type `geni.rspec`. … … 1077 1078 1078 1079 == !ListResources == 1079 Retrieve RSpecs listing resources at this aggregate . Without arguments, retrieve an Advertisement RSpec of available resources. With arguments naming a particular slice and/or slivers, retrieve a Manifest RSpec of resources allocated to the given slivers.1080 Retrieve RSpecs listing resources at this aggregate, an Advertisement RSpec of available resources. W 1080 1081 1081 1082 {{{ … … 1088 1089 boolean geni_available <optional>; 1089 1090 boolean geni_compressed <optional>; 1090 string geni_slice_urn <optional>;1091 string geni_sliver_urns[] <optional>;1092 1091 struct geni_rspec_version { 1093 1092 string type; … … 1101 1100 `credentials` is the standard argument defined above. 1102 1101 1103 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. 1102 Return: 1103 A `geni.rspec` advertisment RSpec. 1104 1105 == Describe == 1106 AKA !ListResources when supplied a slice URN. 1107 1108 Retrieve a manifest describing the resources contained by the entities named, e.g. a single slice or a set of the slivers in a slice. 1109 {{{ 1110 struct Describe(string urns[], struct credentials[], struct options[]) 1111 }}} 1112 1113 Where options include: 1114 {{{ 1115 { 1116 boolean geni_compressed <optional>; 1117 struct geni_rspec_version { 1118 string type; 1119 string version; 1120 }; 1121 } 1122 }}} 1123 1124 Note that all options may be omitted by the client, exception `geni_rspec_version` which is required. The aggregate must honor all supplied options. 1125 1126 `credentials` is the standard argument defined elsewhere. 1104 1127 1105 1128 Note that the manifest RSpec for allocated slivers may contain less detail than for provisioned slivers. … … 1108 1131 {{{ 1109 1132 { 1110 geni_rspec: <geni.rspec, ad orManifest - may be empty though)>1133 geni_rspec: <geni.rspec, Manifest - may be empty though)> 1111 1134 geni_urn: <string slice urn, as requested> 1112 1135 geni_slivers: [ … … 1122 1145 }}} 1123 1146 1124 FIXME: Include the slivers struct? 1125 FIXME: Break this into 3 methods: List(), List(slice), List(slivers) 1126 1147 Aggregates are expected to combine the manifests of all requested slivers into a single manifest RSpec. 1148 FIXME: Allow multiple manifests? Options to specify only allocated or only provisioned slivers? 1127 1149 == Allocate == 1128 1150 AKA !CreateSlivers() … … 1360 1382 }}} 1361 1383 1362 == !Delete ==1384 == Delete == 1363 1385 AKA !DeleteSliver 1364 1386 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.