Changes between Version 59 and Version 60 of GAPI_AM_API_DRAFT


Ignore:
Timestamp:
09/12/12 11:01:28 (12 years ago)
Author:
Aaron Helsinger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GAPI_AM_API_DRAFT

    v59 v60  
    5757 - [wiki:GAPI_AM_API_DRAFT/Archive#ChangeSetC:UpdateSlivers Change Set C]: ''On hold'' (waiting for a revised proposal). Add the ability to !UpdateSlivers to immediately modify your reservation
    5858 - [wiki:GAPI_AM_API_DRAFT/Archive#ChangeSetE:Tickets Change Set E: Tickets]: ''On hold'' (waiting for a revised proposal). Add methods using tickets to do negotiated reservations
    59  - [wiki:GAPI_AM_API_DRAFT/Archive#ChangeSetF1:DefineSliverStates Change Set F1]: ''Superseded'' by F3 and F4: Define sliver states, and the state changes that various methods cause
    60  - [wiki:GAPI_AM_API_DRAFT/Archive#ChangeSetF2:ActOnSlivers Change Set F2]: ''Superseded'' by F3 and F4: Add a new general !ActOnSlivers method allowing AMs to support AM and resource-type specific operations
    61  - [wiki:GAPI_AM_API_DRAFT/Archive#ChangeSetH Change Set H]: ''Superseded by F3'': Clarify: A second call to !CreateSlivers without an intervening !DeleteSlivers is an error.
    62  - [wiki:GAPI_AM_API_DRAFT/Archive#ChangeSetI4 Change Set I4]: ''Superseded by F3 and F4'': !CreateSlivers optionally does not start resources.
     59 - ~~[wiki:GAPI_AM_API_DRAFT/Archive#ChangeSetF1:DefineSliverStates Change Set F1]: ''Superseded'' by F3 and F4: Define sliver states, and the state changes that various methods cause~~
     60 - ~~[wiki:GAPI_AM_API_DRAFT/Archive#ChangeSetF2:ActOnSlivers Change Set F2]: ''Superseded'' by F3 and F4: Add a new general !ActOnSlivers method allowing AMs to support AM and resource-type specific operations~~
     61 - ~~[wiki:GAPI_AM_API_DRAFT/Archive#ChangeSetH Change Set H]: ''Superseded by F3'': Clarify: A second call to !CreateSlivers without an intervening !DeleteSlivers is an error.~~
     62 - ~~[wiki:GAPI_AM_API_DRAFT/Archive#ChangeSetI4 Change Set I4]: ''Superseded by F3 and F4'': !CreateSlivers optionally does not start resources.~~
    6363 - ''Withdrawn'': [wiki:GAPI_AM_API_DRAFT/Archive#Withdrawn:ChangeSetJ Change Set J]: Support proxy aggregates with 1 new option and 1 new !GetVersion entry
    6464 - ''Postponed'': [wiki:GAPI_AM_API_DRAFT/Archive#ChangeSetL:ChangeSFAcredentialsprivileges Change Set L]: Standardize slice credential privileges
     65
     66== Change Set N: Add information to `GetVersion` ==
     67This change set adds some additional information to the return from `GetVersion`.
     68
     69=== Change Set N1: Add `geni_am_version` ===
     70Aggregates use varying ways to identify the software version their AM uses. SFA and PG use `code_tag`, Orca uses `orca_version`, and FOAM
     71uses `foam_version`. Automatically identifying software versions is important for monitoring and GENI operations.
     72
     73This change set proposes adding `geni_am_version` to the return from `GetVersion`.
     74 * The value is a string.
     75 * Legal characters are: alphanumeric, space, `-` (hyphen), `.`, `:` (colon), `#`, `_` (underscore), `+`, `(`, `)`
     76 * Regular expression: `'^[a-zA-Z0-9-\.:#_\+\(\)]+$'`
     77
     78=== Change Set N2: Add `geni_am_type` ===
     79Aggregates are allowed to include AM specific return values, or even implement custom methods as part of the same interface.
     80Currently, there is no consistent way to identify what type of aggregate a given instance is, so as to know what additional attributes or options may be used.
     81
     82This change set proposes adding `geni_am_type` to the return from `GetVersion`.
     83 * The value is a string.
     84 * Legal characters: alphanumeric
     85 * Values should be one of the defined geni AM types if applicable, as defined by the AM API [http://groups.geni.net/wiki/attachment/GAPI_AM_API_V3/CommonConcepts/geni-am-types.xml geni-am-types.xml]. (E.G. one of `orca`, `foam`, `protogeni`, `sfa`.)
     86
     87=== Change Set N3: Use consistent types and prefixes ===
     88Make am_type, geni_am_type, and AM specific prefixes for new options consistent.
     89
     90The AM API specifies an `am_type` field as part of the `code` in the basic return structure. This field has a set of prescribed values.
     91
     92[#ChangeSetN2:Addgeni_am_type An earlier proposal] adds a `geni_am_type` return to `GetVersion`.
     93
     94The AM API encourages AM specific options and returns. These options and returns should have unique names, but the API does not specify how
     95to ensure this.
     96
     97This proposal aims to standardize these fields.
     98
     99`am_type` and `geni_am_type`:
     100 * The value is a string.
     101 * Legal characters: alphanumeric
     102 * Values should be one of the defined geni AM types if applicable, as defined by the AM API [http://groups.geni.net/wiki/attachment/GAPI_AM_API_V3/CommonConcepts/geni-am-types.xml geni-am-types.xml]. (E.G. one of `orca`, `foam`, `protogeni`, `sfa`.)
     103
     104Aggregate specific options and return attributes should be named with a prefix denoting the aggregate type. It should be the same as the `am_type` and `geni_am_type` for this aggregate. Therefore, character restrictions are:
     105 * The value is a string.
     106 * Legal characters: alphanumeric
     107 * Values should be one of the defined geni AM types if applicable, as defined by the AM API [http://groups.geni.net/wiki/attachment/GAPI_AM_API_V3/CommonConcepts/geni-am-types.xml geni-am-types.xml]. (E.G. one of `orca`, `foam`, `protogeni`, `sfa`.)
     108
     109== Change Set O: Refine character restrictions ==
     110=== Change Set O1: Allow other characters in slice and sliver names ===
     111Currently we heavily constrain legal characters in the 'name' portion of slice and sliver URNs. See GeniApiIdentifiers. This is awkward. In particular characters like colons, periods, and underscores are not allowed, but are very useful as separators.
     112
     113This change set proposes modifying the name portion or the URN rules as follows:
     114
     115'''Slice''':
     116 * Slice names are <=19 characters, only alphanumeric plus hyphen, underscore, period, or colon (alphanumeric only in first character): '^[a-zA-Z0-9][-\._:a-zA-Z0-9]\{0,18\}$'
     117
     118'''Sliver''':
     119 * May use only alphanumeric characters plus hyphen, underscore, period, or colon: `'^[a-zA-Z0-9-_\.:]+$'`
     120
     121=== Change Set O2: Explicitly define legal characters in some strings ===
     122Various fields in the AM API specification are defined only as strings, without explicit limits on legal characters. This makes it awkward to pass these values to and from scripts. In particular, many fields should only be alphanumeric, plus some limited number of separator characters.
     123
     124This change set proposes constraining several options/return values that are currently defined only as 'string'.
     125
     126 1. From `getversion` and `listresources` and `describe`, the RSpec `type`:
     127May use only alphanumeric characters plus hyphen, underscore, period, or colon; alphaumeric only in first character. `'^[a-zA-Z0-9][a-zA-Z0-9-_\.:]*$'`
     128
     129 2. From `getversion` and `listresources` and `describe`, the RSpec `version`:
     130May use only alphanumeric characters plus hyphen, underscore, period, or colon; alphaumeric only in first character. `'^[a-zA-Z0-9][a-zA-Z0-9-_\.:]*$'`
     131
     132 3. From `getversion`, the RSpec `schema`, and `namespace`: Any character valid in a URL (see e.g. http://www.w3.org/Addressing/URL/url-spec.txt)
     133
     134 4. From `getversion` and the `credentials` argument, the credential `geni_type`:
     135May use only alphanumeric characters plus hyphen, underscore, period, or colon; alphaumeric only in first character. `'^[a-zA-Z0-9][a-zA-Z0-9-_\.:]*$'`
     136
     137 5. From `getversion` and the `credentials argument, the credential `geni_version`:
     138May use only alphanumeric characters plus hyphen, underscore, period, or colon; alphaumeric only in first character. `'^[a-zA-Z0-9][a-zA-Z0-9-_\.:]*$'`
     139
     140 6. From `getversion`, `geni_allocate`: alphanumeric
     141
     142 7. From the return of multiple methods, `geni_allocation_status` and `geni_operational_status`: alphanumeric
    65143
    66144== Unspecified items ==