Changes between Version 7 and Version 8 of GAPI_AM_API_ISSUES


Ignore:
Timestamp:
05/07/12 10:44:52 (12 years ago)
Author:
Aaron Helsinger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GAPI_AM_API_ISSUES

    v7 v8  
    1010 * [wiki:GAPI_AM_API_DRAFT Draft API Revisions] proposed for the next version of this API
    1111 * [wiki:GeniApi GENI API] implementation status
    12  * [wiki:GAPI_AM_API_V2 The latest API specification]
     12 * [wiki:GAPI_AM_API The latest API specification]
    1313
    1414== Overall Issues ==
    15  1. Add a state diagram in the [wiki:GAPI_AM_API_V2#SliverStatus SliverStatus] section to indicate that a component starts in {{{configuring}}}, can go from {{{configuring}}} to either {{{ready}}} or {{{failed}}}, and can go from {{{ready}}} to {{{failed}}}. {{{failed}}} is a terminal status.
    16   * More generally, we need to define the state of the resources before/after each operation. Diagrams help.
    17   * See [wiki:GAPI_AM_API_DRAFT#ChangeSetF:SupportAMandresource-typespecificmethods. Change Set F]
    1815 2. No way to modify a reservation at an aggregate for a slice without deleting and recreating it
    19   * Proposal: See the [wiki:GAPI_AM_API_DRAFT#ChangeSetC:UpdateSliver1 UpdateSliver proposal]
    20  3. No way to delete or renew part of a reservation at an aggregate separate from other parts
    21   * Proposal: See the [wiki:GAPI_AM_API_DRAFT#ChangeSetD:Sliver-specificoperations Sliver specific operations proposal]
    22  4. Method names suggest you are operating on slivers, but really you are operating on all slivers at an aggregate in a slice
    23   * Proposal: See the [wiki:GAPI_AM_API_DRAFT#ChangeSetD:Sliver-specificoperations Sliver specific operations proposal]
     16  * Proposal: See the [wiki:GAPI_AM_API_DRAFT UpdateSliver proposal]
    2417 5. Tickets
    25   * Proposal: See the [wiki:GAPI_AM_API_DRAFT#ChangeSetE:Tickets1 Tickets proposal]
     18  * Proposal: See the [wiki:GAPI_AM_API_DRAFT Tickets proposal]
    2619 6. Define privileges required for each operation
    2720  * But see the ABAC proposal and DRAFT proposal L
     
    3427|| 22   || CREDENTIAL_MISMATCH   || "Not authorized: Supplied credential does not match the supplied client certificate or does not match the given slice URN" ||
    3528|| 23   || CREDENTIAL_SIGNER_UNTRUSTED   || "Not authorized: Supplied credential not signed by trusted authority" ||
    36    * What error code should be used for a bad RSpec version requested or used? (In !ListResources and !CreateSliver, be consistent)
     29   * What error code should be used for a bad RSpec version requested or used? (In !ListResources and Allocate, be consistent)
    3730    * 1=BADARGS, 4=BADVERSION, or 13=UNSUPPORTED? 4 seems appropriate, but maybe the semantics of BADVERSION are something else. PG does 1
    3831     * Proposal: {{{BADVERSION}}}
    39    * What error code should be used for various 'nothing found' cases? (Be consistent across !ListResources, !DeleteSliver, !SliverStatus, !Shutdown, !RenewSliver.)
     32   * What error code should be used for various 'nothing found' cases? (Be consistent across !ListResources, Delete, Status, Shutdown, Renew, etc.)
    4033    * Use EXPIRED? SEARCHFAILED? Other?
    4134    * There never was such a slice here
     
    6861 3. PG does not use BUSY, SERVERERROR, UNAVAILABLE, EXPIRED - OK?
    6962  * Proposal: probably - up to them
    70  4. Is the manifest RSpec required to be static, and always the same as that originally returned by !CreateSliver? Or might it change as AM-internal state changes?
    7163
    72 == !CreateSliver Issues ==
    73 Note this method gets removed by change sets proposed for version 3.
    74  1. Define the behavior if you call !CreateSliver twice for the same slice. PG says you return REFUSED. !PlanetLab accepts it though. What about {{{ALREADYEXISTS}}}?
    75 || `REFUSED`       || Slice already exists; must be deleted first (ie you called !CreateSliver twice without a !DeleteSliver in between) ||
    76    * Proposal: {{{ALREADYEXISTS}}}
    77    * But see also the new Allocate and Provision methods proposed
    78  2. Define the behavior if the AM can only give you some of what you requested
    79   * Proposal: {{{TOOBIG}}}?
    80  3. Define status of sliver(s) immediately on success of this method (need a diagram?)
    81   * See Change Set F
    82  4. Define how many sliver(s) this creates
    83   * See Change Set D
    84  5. Note there is no way to see the expiration time of your resources
    85   * Proposal: include in manifest
    86   * See instead Change Sets I and M
    87  6. Point to restrictions on slice names, sliver names?
    88   * Min 3 characters?
    89   * Max? 19? More?
    90   * Only characters in set: {{{'^[a-zA-Z][-\w]+$'}}} ?
    91   * See Change Set K
     64== Describe Issues ==
     65 1. Is the manifest RSpec required to be static, and always the same as that originally returned by !CreateSliver? Or might it change as AM-internal state changes?
    9266
    93 == !DeleteSliver Issues ==
    94 Note this method changes with proposals for version 3.
    95  1. What is failure (return false) as opposed to an Error?
    96   * Define status (relative to !SliverStatus or ...) of the sliver(s) after success, failure, or error. Diagram?
    97   * Proposal: get rid of the false return - it should be true or error
     67== Delete Issues ==
    9868 2. What happens to resources if your credential expires? Does the AM delete them for you?
    9969  * Proposal: AM deletes them for you - de-allocates the resources. (Required? Or may?)
    100  3. If there was never a slice here, or you already deleted your resources at this AM, does the AM return true or false?
     70 3. If there was never a slice here, or you already deleted your resources at this AM, what does the AM return?
    10171  * Proposal: True, indicating all resources (none) have been freed.
    10272
    103 == !SliverStatus Issues ==
     73== Status Issues ==
    10474See changes proposed for version 3 which address these.
    105  1. Are the {{{configuring}}}, {{{ready}}}, etc strings case-sensitive?
    106   * Proposal: no
    107  2. Further specify what kinds of things go in specific {{{geni_resources}}} vs the whole
     75 2. Further specify what kinds of things go in specific {{{geni_resources}}}
    10876 3. Further specify what kinds of things this method might optionally additionally include and still be consistent with the intent
    109  4. Document the convention on specifying expiration time: should it be required?
    110   * Proposal: Yes
    11177
    112 == !RenewSliver Issues ==
    113  1. All resources indicated by the supplied URN should be renewed to the given time, or else the entire call should fail. We don't specify that currently.
    114   * Proposal: Add that requirement
    115   * See `geni_best_effort`
     78== Renew Issues ==
    11679 2. Specify the behavior if you fail to renew and the reservation expires
    11780  * Proposal: AM deletes the reservation, de-allocates the resources. (Required? May?)