This module implements the client-side of the Geni API. Stubs are provided that convert the supplied parameters to the necessary format and send them via XMLRPC to a Geni Server. TODO: Investigate ways to combine this with existing PLC API?
The GeniClient class provides stubs for executing Geni operations.
For more information about this class, see The GeniClient Class.
For more information about this class, see The GeniTransport Class.
ServerException, ExceptionUnmarshaller Used to convert server exception strings back to an exception.
For more information about this class, see The ServerException Class.
The GeniClient class provides stubs for executing Geni operations. A given client object connects to one server. To connect to multiple servers, create multiple GeniClient objects. The Geni protocol uses an HTTPS connection, and the client's side of the connection uses his private key. Generally, this private key must match the public key that is containing in the GID that the client is providing for those functions that take a GID.
Create a new GID. For MAs and SAs that are physically located on the registry, this allows a owner/operator/PI to create a new GID and have it signed by his respective authority.
Delete a slice.
Retrieve a credential for an object. If cred==None, then the behavior reverts to get_self_credential()
Retrieve the GID for an object. This function looks up a record in the registry and returns the GID of the record if it exists. TODO: Is this function needed? It's a shortcut for Resolve()
Get_self_credential a degenerate version of get_credential used by a client to get his initial credential when he doesn't have one. This is the same as get_credential(..., cred=None,...). The registry ensures that the client is the principal that is named by (type, name) by comparing the public key in the record's GID to the private key used to encrypt the client-side of the HTTPS connection. Thus it is impossible for one principal to retrieve another principal's credential without having the appropriate private key.
Retrieve a ticket. This operation is currently implemented on the registry (see SFA, engineering decisions), and is not implemented on components. The ticket is filled in with information from the PLC database. This information includes resources, and attributes such as user keys and initscripts.
List the records in an authority. The objectGID in the supplied credential should name the authority that will be listed.
List the slices on a component.
Redeem a ticket. This operation is currently implemented on the component. The ticket is submitted to the node manager, and the slice is instantiated or updated as appropriate. TODO: This operation should return a sliver credential and indicate whether or not the component will accept only sliver credentials, or will accept both sliver and slice credentials.
Register an object with the registry. In addition to being stored in the Geni database, the appropriate records will also be created in the PLC databases. The geni_info and/or pl_info fields must in the record must be filled out correctly depending on the type of record that is being registered. TODO: The geni_info member of the record should be parsed and the pl_info adjusted as necessary (add/remove users from a slice, etc)
Remove an object from the registry. If the object represents a PLC object, then the PLC records will also be removed.
Reset a slice.
Resolve an object in the registry. A given HRN may have multiple records associated with it, and therefore multiple records may be returned. The caller should check the type fields of the records to find the one that he is interested in.
Start a slice.
Stop a slice.
Update an object in the registry. Currently, this only updates the PLC information associated with the record. The Geni fields (name, type, GID) are fixed. The record is expected to have the pl_info field filled in with the data that should be updated. TODO: The geni_info member of the record should be parsed and the pl_info adjusted as necessary (add/remove users from a slice, etc)
GeniTransport A transport for XMLRPC that works on top of HTTPS
ServerException, ExceptionUnmarshaller Used to convert server exception strings back to an exception. from usenet, Raghuram Devarakonda