Changes between Initial Version and Version 1 of GAPI_AM_API_DRAFT/MinimalV3Methods


Ignore:
Timestamp:
03/08/12 11:13:11 (12 years ago)
Author:
Aaron Helsinger
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GAPI_AM_API_DRAFT/MinimalV3Methods

    v1 v1  
     1[[PageOutline]]
     2
     3= Methods if minimal AM API v3 is adopted =
     4If the 'minimal' AM API v3 set of change sets is adopted, the AM AIP methods will be as follows:
     5
     6 == !GetVersion ==
     7{{{
     8struct GetVersion([optional: struct options])
     9}}}
     10
     11Return struct:
     12{{{
     13
     14      {
     15        int geni_api;
     16        struct geni_api_versions {
     17             URL <this API version #>; # value is a URL, name is a number
     18             [optional: other supported API versions and the URLs where they run]
     19        }
     20        array geni_request_rspec_versions of {
     21             string type;
     22             string version;
     23             string schema;
     24             string namespace;
     25             array extensions of string;
     26        };
     27        array geni_ad_rspec_versions of {
     28             string type;
     29             string version;
     30             string schema;
     31             string namespace;
     32             array extensions of string;
     33        };
     34      }
     35}}}
     36
     37 == !ListResources ==
     38{{{
     39struct ListResources(string credentials[], struct options)
     40}}}
     41
     42Where options include:
     43{{{
     44{
     45  boolean geni_available;
     46  boolean geni_compressed;
     47  string geni_slice_urn;
     48  struct geni_rspec_version {
     49    string type;
     50    string version;
     51  };
     52}
     53}}}
     54
     55Return: rspec (ad or Manifest)
     56
     57   == !CreateSlivers ==
     58{{{
     59struct CreateSlivers(string slice_urn,
     60                    string credentials[],
     61                    string rspec,
     62                    struct users[],
     63                    struct options)
     64}}}
     65
     66Options include:
     67{{{
     68{
     69  boolean geni_donotstart (optional)
     70}
     71}}}
     72
     73Return struct:
     74{{{
     75{
     76 string rspec=<manifest>,
     77 geni_expires=<RFC3339 sliver expiration, as in geni_expires from SliversStatus>,
     78 string geni_status=<sliver state - allocated or changing or ready>,
     79 <others that are AM specific>
     80}
     81}}}
     82
     83 == !RenewSlivers ==
     84{{{
     85struct RenewSlivers(string slice_urn,
     86                    string credentials[],
     87                    string expiration_time,
     88                    struct options)
     89}}}
     90Return: boolean
     91
     92 == !SliversStatus ==
     93{{{
     94struct SliversStatus(string slice_urn, string credentials[], struct options)
     95}}}
     96
     97Return:
     98{{{
     99{
     100  string geni_urn: <sliver URN>
     101  string geni_status: <ready or changing or allocated...>
     102  geni_expires: <datetime of expiration>
     103  struct geni_resources: [ { geni_urn: <resource URN>
     104                      geni_status: ready
     105                      geni_error: ''},
     106                    { geni_urn: <resource URN>
     107                      geni_status: ready
     108                      geni_error: ''}
     109                  ]
     110}
     111}}}
     112
     113Where for individual resources this block may be returned:
     114{{{
     115'users' => [{'urn'   => $user1_urn.
     116             'login' => $login,
     117             'protocol' => [ssh, or ?],
     118             'port' => [22 or ?],
     119             'keys'  => [...] },
     120            {'urn'   => $user2_urn.
     121             'login' => $login,
     122             'protocol' => [ssh, or ?],
     123             'port' => [22 or ?],
     124             'keys'  => [...] }
     125           ]
     126}}}
     127
     128 == !StartSlivers ==
     129{{{
     130struct StartSlivers(string slice_urn, string credentials[], struct options)
     131}}}
     132
     133Return: boolean
     134
     135 == !DeleteSlivers ==
     136{{{
     137struct DeleteSlivers(string slice_urn, string credentials[], struct options)
     138}}}
     139
     140Return: boolean
     141
     142 == Shutdown ==
     143{{{
     144struct Shutdown(string slice_urn, string credentials[], struct options)
     145}}}
     146
     147Return: boolean