| 1 | [[PageOutline]] |
| 2 | |
| 3 | = GENI Clearinghouse API = |
| 4 | |
| 5 | The GENI Clearinghouse API defines the operations that are available to an Aggregate Manager. |
| 6 | |
| 7 | This interface does not describe the API that a Researcher Client would use to communicate with a GENI Clearinghouse. For GENI Spiral 2, the API between Researcher Clients and Clearinghouses is specific to the Clearinghouse and not standardized. |
| 8 | |
| 9 | See Also: |
| 10 | * [http://svn.planet-lab.org/attachment/wiki/WikiStart/sfa.pdf Slice-based Facility Architecture (SFA) specification] |
| 11 | * [http://svn.planet-lab.org/attachment/wiki/WikiStart/sfa-impl.pdf PlanetLab Implementation of the Slice-Based Facility Architecture] |
| 12 | * [http://www.protogeni.net/trac/protogeni/wiki/ClearingHouseAPI2 ProtoGENI Clearinghouse API revision 2] |
| 13 | |
| 14 | ----- |
| 15 | == !GetVersion == |
| 16 | Return the version of the GENI Clearinghouse API supported by this clearinghouse. |
| 17 | |
| 18 | {{{ |
| 19 | struct GetVersion() |
| 20 | }}} |
| 21 | |
| 22 | The result is a struct with at least the following members: |
| 23 | |
| 24 | {{{ |
| 25 | { |
| 26 | int geni_api; |
| 27 | } |
| 28 | }}} |
| 29 | |
| 30 | `geni_api`:: |
| 31 | An integer indicating the revision of the Aggregate Manager API that an aggregate supports. The current version of the API is 1 (one). |
| 32 | |
| 33 | Implementations can add additional members to the struct as desired. The prefix {{{geni_}}} is reserved for members that are part of this API specification. Implementation should choose an appropriate prefix to avoid conflicts. |
| 34 | |
| 35 | This operation is similar to ProtoGENI's Clearinghouse [http://www.protogeni.net/trac/protogeni/wiki/ClearinghouseAPI2#GetVersion GetVersion] operation. The [http://svn.planet-lab.org/attachment/wiki/WikiStart/sfa.pdf SFA] specification does not include this operation. |
| 36 | |
| 37 | |
| 38 | ----- |
| 39 | == Resolve == |
| 40 | Lookup a URN and return information about the corresponding object. |
| 41 | |
| 42 | {{{ |
| 43 | struct Resolve(string urn) |
| 44 | }}} |
| 45 | |
| 46 | `urn`:: |
| 47 | The URN to be resolved. |
| 48 | |
| 49 | Returns a struct with fields appropriate to the type of the object being resolved. |
| 50 | |
| 51 | If the object being resolved is a slice, the returned struct should contain at least the following: |
| 52 | |
| 53 | {{{ |
| 54 | { |
| 55 | geni_urn: <slice URN>; |
| 56 | geni_creator: <user URN>; |
| 57 | } |
| 58 | }}} |
| 59 | |
| 60 | `geni_urn`:: |
| 61 | The URN of the slice being resolved as a string. |
| 62 | |
| 63 | `geni_creator`:: |
| 64 | The URN of the creator of the slice as a string. |
| 65 | |
| 66 | If the object being resolved is a user, the returned struct should contain at least the following: |
| 67 | |
| 68 | {{{ |
| 69 | { |
| 70 | geni_urn: <user URN>; |
| 71 | geni_certificate: <X.509 certificate of user>; |
| 72 | } |
| 73 | }}} |
| 74 | |
| 75 | `geni_urn`:: |
| 76 | The URN of the slice being resolved as a string. |
| 77 | |
| 78 | `geni_certificate`:: |
| 79 | The certificate of the user as a base 64 encoded string. |
| 80 | |
| 81 | |
| 82 | This operation is similar to ProtoGENI's Clearinghouse [http://www.protogeni.net/trac/protogeni/wiki/ClearinghouseAPI2#Resolve Resolve] operation and to the [http://svn.planet-lab.org/attachment/wiki/WikiStart/sfa.pdf SFA]'s Resolve operation (sec. 6.1). |