Changes between Version 14 and Version 15 of GAPI_AM_API_V3_DETAILS
- Timestamp:
- 07/13/12 11:24:50 (12 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
GAPI_AM_API_V3_DETAILS
v14 v15 19 19 ''' This page is a work in progress! ''' 20 20 21 == !GetVersionDetails ==22 !GetVersionis intended to provide information about the configuration of this aggregate, helping experimenter tools determine how to communicate with this aggregate.21 == `GetVersion` Details == 22 `GetVersion` is intended to provide information about the configuration of this aggregate, helping experimenter tools determine how to communicate with this aggregate. 23 23 24 24 Sample output: … … 64 64 65 65 === Return === 66 !GetVersionreturns the version of the Aggregate Manager API running locally, the RSpec schemas supported, and the URLs where versions of the AM API are running. The return is an XML-RPC struct whose members are described below.66 `GetVersion` returns the version of the Aggregate Manager API running locally, the RSpec schemas supported, and the URLs where versions of the AM API are running. The return is an XML-RPC struct whose members are described below. 67 67 68 68 `geni_api`:: … … 72 72 73 73 `value`:: 74 For !GetVersion, {{{value}}} is an XML-RPC struct containing the actual return for the method. On success, this is required. Optional (and not defined) on failure or error.75 76 ==== !GetVersionreturn codes ====74 For `GetVersion`, {{{value}}} is an XML-RPC struct containing the actual return for the method. On success, this is required. Optional (and not defined) on failure or error. 75 76 ==== `GetVersion` return codes ==== 77 77 Aggregates shall return consistent values for {{{geni_code}}} as described here. Success is always indicated using a {{{geni_code}}} value of {{{0}}}. On error, return the appropriate GENI error code in {{{geni_code}}}, as listed in this table. These error codes are part of a [wiki:GAPI_AM_API_V3/CommonConcepts#ReturnStruct larger set of codes with specific meanings required by this API, described on the Common Concepts page]. 78 78 … … 96 96 97 97 `geni_ad_rspec_versions`:: 98 An array of data structures indicating what types of RSpec advertisements may be produced by this AM in !ListResources.98 An array of data structures indicating what types of RSpec advertisements may be produced by this AM in `ListResources`. 99 99 100 100 {{{geni_request_rspec_versions}}} and {{{geni_ad_rspec_versions}}} refer to the RSpec formats supported at this aggregate. The [wiki:GAPI_AM_API_V3/CommonConcepts#RSpecdatatype contract for RSpec versions is described with links to further reading on the Common Concepts page]. … … 115 115 116 116 ----- 117 == !ListResourcesDetails ==118 !ListResourcesreturns the advertised or available resources that can be reserved at this aggregate.117 == `ListResources` Details == 118 `ListResources` returns the advertised or available resources that can be reserved at this aggregate. 119 119 120 120 `geni_available`:: … … 125 125 126 126 `geni_rspec_version`:: 127 Required. An [http://www.xmlrpc.com/spec XML-RPC] struct indicating the type and version of Advertisement RSpec to return. The struct contains 2 members, {{{type}}} and {{{version}}}. {{{type}}} and {{{version}}} are ''case-insensitive'' strings, matching those in {{{geni_ad_rspec_versions}}} as returned by !GetVersion at this aggregate. This option is ''required'', and aggregates are expected to return a {{{geni_code}}} of {{{1}}} ('Bad Arguments') if it is missing. Aggregates should return a {{{geni_code}}} of {{{4}}} ({{{BADVERSION}}}) if the requested RSpec version is not one advertised in !GetVersionas supported. The [wiki:GAPI_AM_API_V3/CommonConcepts#RSpecdatatype contract for RSpec versions is described with links to further reading on the Common Concepts page].127 Required. An [http://www.xmlrpc.com/spec XML-RPC] struct indicating the type and version of Advertisement RSpec to return. The struct contains 2 members, {{{type}}} and {{{version}}}. {{{type}}} and {{{version}}} are ''case-insensitive'' strings, matching those in {{{geni_ad_rspec_versions}}} as returned by `GetVersion` at this aggregate. This option is ''required'', and aggregates are expected to return a {{{geni_code}}} of {{{1}}} ('Bad Arguments') if it is missing. Aggregates should return a {{{geni_code}}} of {{{4}}} ({{{BADVERSION}}}) if the requested RSpec version is not one advertised in `GetVersion` as supported. The [wiki:GAPI_AM_API_V3/CommonConcepts#RSpecdatatype contract for RSpec versions is described with links to further reading on the Common Concepts page]. 128 128 129 129 130 130 === Return === 131 !ListResources returns a `value` containing an RSpec listing and describing resources at this aggregate. Depending on the arguments, this may be all local resources, only available local resources. 132 133 !ListResources returns the [wiki:GAPI_AM_API_V3/CommonConcepts#ReturnStruct standard return from all AM API methods], which has a specific [wiki:GAPI_AM_API_V3/CommonConcepts#ReturnStruct structure and semantics described on the Common Concepts page], including specific requirements for the {{{code}}} and {{{output}}} members. 134 131 `ListResources` returns a `value` containing an RSpec listing and describing resources at this aggregate. Depending on the arguments, this may be all local resources, only available local resources. 132 133 `ListResources` returns the [wiki:GAPI_AM_API_V3/CommonConcepts#ReturnStruct standard return from all AM API methods], which has a specific [wiki:GAPI_AM_API_V3/CommonConcepts#ReturnStruct structure and semantics described on the Common Concepts page], including specific requirements for the {{{code}}} and {{{output}}} members. 135 134 136 135 `value`:: 137 !ListResources returns an RSpec in GENI standard schema. 138 136 `ListResources` returns an RSpec in GENI standard schema. 139 137 140 138 If the aggregate cannot support the requested {{{type}}}/{{{version}}} (that pair is not listed in {{{geni_ad_rspec_versions}}}), then the aggregate returns an error ({{{geni_code}}}) of {{{4}}} ({{{BADVERSION}}}), and the {{{value}}} is not defined. 141 139 142 ==== !ListResourcesreturn codes ====140 ==== `ListResources` return codes ==== 143 141 On error, return the appropriate GENI error code in {{{geni_code}}}, as listed in this table. These error codes are part of a [wiki:GAPI_AM_API_V3/CommonConcepts#ReturnStruct larger set of codes with specific meanings required by this API, described on the Common Concepts page]. 144 142 … … 152 150 153 151 ----- 154 == DescribeDetails ==152 == `Describe` Details == 155 153 `Describe` is used to list the resources belonging to a particular reservation. The return is always a single manifest RSpec, whose contents cover the set of slivers whose URNs were supplied, or which are contained in the single slice whose URN was supplied as an argument. 156 154 … … 196 194 || `BADVERSION` || Bad Version of RSpec requested || 197 195 198 == AllocateDetails ==196 == `Allocate` Details == 199 197 `Allocate` is used to request a reservation of resources. If the request can be completely satisfied, the manifest RSpec is returned. Otherwise, an error is returned. 200 198 201 199 `rspec`:: 202 An RSpec matching the [http://www.protogeni.net/trac/protogeni/wiki/RSpec GENI standard] request RSpec [http://www.geni.net/resources/rspec/3/request.xsd schema] containing the resources that the caller is requesting for allocation to the slice specified in {{{slice_urn}}}. These are expected to be consistent with the resources returned by a previous invocation of [wiki:GAPI_AM_API_V3#ListResources ListResources]. If this RSpec is in a format not listed as supported by !GetVersion, then the aggregate will return an error of {{{BADVERSION}}} ({{{4}}}).200 An RSpec matching the [http://www.protogeni.net/trac/protogeni/wiki/RSpec GENI standard] request RSpec [http://www.geni.net/resources/rspec/3/request.xsd schema] containing the resources that the caller is requesting for allocation to the slice specified in {{{slice_urn}}}. These are expected to be consistent with the resources returned by a previous invocation of [wiki:GAPI_AM_API_V3#ListResources ListResources]. If this RSpec is in a format not listed as supported by `GetVersion`, then the aggregate will return an error of {{{BADVERSION}}} ({{{4}}}). 203 201 204 202 If `geni_end_time` is supplied, the experimenter is requesting a particular sliver reservation expiration date. Local policy may however dictate the expiration date. The AM therefore may ignore this argument; the `Allocate` call should still succeed, even if the date argument cannot be satisfied. … … 218 216 || `UNSUPPORTED` || The aggregate does not permit multiple allocations to the same slice of this form || 219 217 220 == RenewDetails ==218 == `Renew` Details == 221 219 `Renew` requests a changed expiration for one or more slivers in a slice. At some aggregates, this expiration may be shorter. This method applies both to slivers that are `geni_allocated` and to those that are already `geni_provisioned`. Depending on local aggregate configuration, the aggregate may only support `Renew` on all current slivers in the slice, or may permit renewing only some slivers. Local policy will dictate maximum expiration times. These times are typically quite short (~ 10 minutes initially, ~120 minutes maximum) for reservations (`geni_allocated`), and longer for provisioned slivers (~ 5-8 days initially). Since these expiration times are different, typically `Renew` is used only for slivers in the same allocation state. 222 220 … … 251 249 || `UNSUPPORTED` || This aggregate does not support partial renewals of this form || 252 250 253 == ProvisionDetails ==251 == `Provision` Details == 254 252 Redeem a reservation, requesting that the listed slivers move from `geni_allocated` to `geni_provisioned`. Only when slivers are provisioned are the resources 'instantiated' and made ready for operational use. Note that at some aggregates and for some resource types, this operation may be a no-op. At other aggregates, this operation starts a long running process (e.g. loading an image on a machine and booting it). Tools should monitor the sliver status (by calling `Status`), looking for an operational state other than `geni_pending_allocation`. Depending on the resource type, that next state may differ. See the advertisement RSpec for the resource type specific operational states and actions. 255 253 … … 311 309 || `UNSUPPORTED` || The aggregate does not permit operations on individual slivers in the same slice of this form || 312 310 313 == !PerformOperationalActionDetails ==311 == `PerformOperationalAction` Details == 314 312 Perform an operational action on one or more named slivers. Operational actions modify the running state of the resource, not the nature of the resources in the reservation. To add or remove resources from the reservation, use `Delete` and `Allocate`. 315 313 … … 334 332 || `INPROGRESS` || Requested operation is already in progress || 335 333 336 == DeleteDetails ==334 == `Delete` Details == 337 335 `Delete` the given slivers, stopping any running resources and freeing the reservation. This method applies to slivers in any state. 338 336 … … 353 351 || `EXPIRED` || Sliver(s) already expired and gone || 354 352 355 == ShutdownDetails ==353 == `Shutdown` Details == 356 354 This operation is for operator use, to stop a misbehaving resource. Once shut down, the slivers are not available for experimenter use. The underlying resources may be returned to the pool of available resources, depending on resource type and aggregate implementation. 357 355