Version 2 (modified by ibaldin, 8 years ago)

--

ORCA XMLRPC Controller with GENI and ProtoGENI AM API

Overview

ORCA standard binary package configured and deployed with a Service Manager actor presents GENI AM API and ProtoGENI AM API. Once the ORCA container is up and Service Manager Actor is operational, you can start the XMLRPC controller plugin and then manipulate ORCA using those two interfaces.

Running controller plugins

Login to ORCA portal of the container you just deployed (typically http://hostname:11080/orca), go to the 'User' tab, then click on 'Start Controller'. Select 'XMLRPC Controller' from the menu and click 'Create'.

Using GENI AM API controller plugin

This plugin exports a GENI AM API-compliant XMLRPC API that can be exercised using Python scripts shipped with ORCA source distribution.

  1. Open a terminal and navigate to the directory, $ORCA_HOME/controllers/xmlrpc/resources/scripts, which has simple python client scripts that invoke methods to list resources, create slivers, check sliver status, delete slivers etc.
  2. To list the available resources, run the following command. This should output the available resources in the form of abstract NDL description of the Eucalyptus substrate.
    $ python ListResources.py -s http://hostname:11080/orca/xmlrpc 
    
  3. To create a sliver, run the 'createSliver' script. The script needs the name of the file containing resource request in NDL. A number of examples are available under orca/network/trunk/src/main/resources/orca/network. The response to the script will look approximately as shown (UUIDs and Reservation IDs will be different.
    $ python createSliver.py -s http://hostname:11080/orca/xmlrpc -k ~/.ssh/id_dsa.pub -i some-slice-name-no-spaces -r /path/to/request/file/in/NDL
    ...
    [   Slice UID: 05d30971-2b1c-4a52-817c-bc192a878a8b | Reservation UID: 5063cd58-75cf-4c58-8824-cf86d329b9d9 | Resource Type: unc.vm | Resource Units: 1 ] 
    [   Slice UID: 05d30971-2b1c-4a52-817c-bc192a878a8b | Reservation UID: 7c1185e0-337b-490d-92f2-119d7f96a367 | Resource Type: unc.vm | Resource Units: 1 ] 
    [   Slice UID: 05d30971-2b1c-4a52-817c-bc192a878a8b | Reservation UID: b9550c8e-de60-4504-8eb2-563d96f18c35 | Resource Type: uncEuca.vlan | Resource Units: 1 ] 
    [   Slice UID: 05d30971-2b1c-4a52-817c-bc192a878a8b | Reservation UID: 4f0ddc63-6e1a-4b55-8547-c2522abd7be1 | Resource Type: uncEuca.vlan | Resource Units: 1 ] 
    [   Slice UID: 05d30971-2b1c-4a52-817c-bc192a878a8b | Reservation UID: c7816bf2-0555-4e59-8502-6ed203dede9d | Resource Type: unc.vm | Resource Units: 1 ] 
    [   Slice UID: 05d30971-2b1c-4a52-817c-bc192a878a8b | Reservation UID: 33f84b75-0874-444c-9809-a017b799a868 | Resource Type: uncEuca.vlan | Resource Units: 1 ]
    ...
    
  4. To check the status of the sliver, run the 'sliverStatus' script (use the same slice name as used in the createSliver step)
    $ python sliverStatus.py -s http://hostname:11080/orca/xmlrpc -i some-slice-name-no-spaces
    
  5. To delete the sliver, run the 'deleteSliver' script.
    $ python deleteSliver.py -s http://hostname:11080/orca/xmlrpc -u some-slice-name-no-spaces
    

Using ProtoGENI AM API

The same controller also presents the ProtoGENI AM XMLRPC API. Those can be exercised using the Omni tool. Using Omni requires enabling SSL support in Tomcat.

You must first create a ProtoGENI slice using omni tool, and then use the omni tool to create a sliver in ORCA (really, a slice at this point) in native mode with -a option pointing to (note the URL difference) https://hostname:11443/orca/xmlrpc.

Use ProtoGENI RSpec v2 with omni. ORCA XMLRPC controller relies on NDL-OWL format converter to convert requests from RSpec v2 to NDL-OWL.