ORCA XMLRPC Controller with native ORCA and GENI AM API

Overview

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

Prerequisites

Enabling SSL

You must configure the Tomcat container running the SM actor (with XMLRPC controller in it) to support SSL.

Running controller plugins

Once the container is configured and running, login to ORCA portal of the container you just deployed (typically http://host.with.sm: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 interface

These can be exercised using the Omni tool.

Visit this page for more documentation on using Omni to create slice requests. Note that you must acquire a private key and a certificate signed either by ProtoGENI/Emulab or GPO in order to be able to create slices. Typically the GENI xmlrpc interface can be accessed on https://host.with.sm:11443/orca/xmlrpc,

Using native ORCA interface

The native ORCA XMLRPC interface can be exercised using Python scripts shipped with ORCA source distribution (primarily as a testing tool) as well as using Flukes GUI targeted at experimenters. The Python scripts are described below.

Prior to using the scripts you must obtain a private key and a certificate signed either by ProtoGENI/Emulab, GPO or BEN (note that BEN certificate will not work for using omni). From Emulab and GPO you will get a single file with .pem extension that contains your private key and a public key certificate signed by Emulab or GPO. This file should be passed both as a '-c' and a '-p' option to the python scripts below. From BEN you will get two files - username.crt (your certificate) and username.key (your private key). The .crt file should be passed in with the '-c' option and the private key with the '-p' option.

  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 https://hostname:11443/orca/xmlrpc -c /path/to/your/certificate -p /path/to/your/privateKey
    
  3. To create a clice, run the 'createSlice' script. The script needs the name of the file containing resource request in NDL. A number of examples are available in the regression test suite under orca/trunk/network/src/test/resources/orca/network. The response to the script will look approximately as shown (UUIDs and Reservation IDs will be different.
    $ python createSlice.py -s https://hostname:11443/orca/xmlrpc -k ~/.ssh/id_dsa.pub -i some-slice-name-no-spaces -r /path/to/request/file/in/NDL  -c /path/to/your/certificate -p /path/to/your/privateKey
    ...
    [   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 slice, run the 'sliceStatus' script (use the same slice name as used in the createSlice step)
    $ python sliceStatus.py -s https://hostname:11443/orca/xmlrpc -i some-slice-name-no-spaces  -c /path/to/your/certificate -p /path/to/your/privateKey
    
  5. To delete the slice, run the 'deleteSlice' script.
    $ python deleteSlice.py -s https://hostname:11443/orca/xmlrpc -i some-slice-name-no-spaces  -c /path/to/your/certificate -p /path/to/your/privateKey
    
  6. All scripts accept '-h' option to display help with parameters.