110 likes | 240 Views
This document provides an overview of the XML-RPC interface for the ORCA Control Framework, developed by Anirban Mandal at the Renaissance Computing Institute (RENCI). The interface facilitates experiment control tools and enables external users to discover resources, instantiate experiment slivers, check their status, renew leases, and shut down resources. The system currently supports various API-like functions while noting limitations, such as the lack of RSpec support and pending credential management features.
E N D
Experimental Control Tools for ORCA Control Framework Anirban Mandal Renaissance Computing Institute (RENCI)
Slice Manager (SM) Overview Broker ORCA Framework request Experiment control tools / Users ticket delegate XML – RPC calls redeem Authority/AM lease
XML-RPC Controller • Goal: Provide an XML-RPC interface to ORCA for experiment control tools and external users + Interoperability • Tools/users would use this interface to • discover available resources • instantiate experiment slivers • check the status of the instantiated slivers • renew the lease for existing slivers • destroy and shutdown slivers • Controller exposes a GENI-AM API like xml-rpc interface to users • Caveats • Can’t support Rspec yet • Converter from/to NDL to/from RSpec to be integrated in near future • Credential management missing, authorization is through the ORCA portal running the xml-rpc controller
Slice Manager (SM) Interface Details ORCA Framework 0. GetVersion () Experiment control tools / Users XML - RPC 1. ListResources () 2. Advertisement NDL 3. createSliver (Request NDL) 4. Manifest handle - sliceID 5. sliverStatus (sliceID) 6. Manifest sliver details and status 7. renewSliver (sliceID, time) 8. deleteSliver (sliceID) 9. ShutDown (sliceID)
Example Run – ListResources() bash-3.2$ python ListResources.py Querying ORCA xml-rpc server for available resources ... Advertisement RSpec/NDL of available resources <rdf:RDF xmlns:rdf=http://www.w3.org/1999/02/22-rdf-syntax-ns# … <rdf:Descriptionrdf:about="http://geni-orca.renci.org/owl/mass.rdf#UMass/Domain/NetworkService/1"> … <rdf:Descriptionrdf:about="http://geni-orca.renci.org/owl/ben-6509.rdf#Duke/Cisco/6509/TenGigabitEthernet/gB/1/ethernet"> … <rdf:Descriptionrdf:about="https://geni-orca.renci.org/owl/renciNet.rdf#RenciNet/Juniper/3200/GigabitEthernet/gB/1/ethernet"> … <rdf:Descriptionrdf:about="http://geni-orca.renci.org/owl/rencivmsite.rdf#RenciVMSite/Domain/SwitchingMatrix"> … </rdf:RDF>
Example Run – createSliver() bash-3.2$ python createSliver.py Contacting ORCA xml-rpc server for creating the sliver... Request NDL.. <?xml version="1.0"?> <!DOCTYPE rdf:RDF [ <!ENTITY owl "http://www.w3.org/2002/07/owl#" > … ]> <rdf:RDFxmlns="http://geni-orca.renci.org/owl/idRequest4.rdf#" … <!-- http://geni-orca.renci.org/owl/mass.rdf#UMass/Vise/Testbed --> … <!-- https://geni-orca.renci.org/owl/uncvmsite.rdf#UNC/Euca --> … </rdf:RDF> <!-- Generated by the OWL API (version 2.2.1.1101) http://owlapi.sourceforge.net --> …
Example Run – createSliver() bash-3.2$ python createSliver.py Contacting ORCA xml-rpc server for creating the sliver... Request NDL.. [Prints the request NDL here] Request id: 399422c1-99ca-4d16-8383-a5aa94dd2c50 [ Slice UID: f7ddd977-dc01-426d-9f46-f9db356ca0ee | Reservation UID: 1d12ae0d-6705-4c87-a602-83e9f74b28c2 | Resource Type: unc.vm| Resource Units: 2 ] [ Slice UID: f7ddd977-dc01-426d-9f46-f9db356ca0ee | Reservation UID: f6e545fb-82be-4b7d-ae9b-a9f7259f6202 | Resource Type: starlight.vlan| Resource Units: 1 ] [ Slice UID: f7ddd977-dc01-426d-9f46-f9db356ca0ee | Reservation UID: 7c0d95f5-0b2b-4360-8248-c3d89b662d32 | Resource Type: unc.vlan| Resource Units: 1 ] [ Slice UID: f7ddd977-dc01-426d-9f46-f9db356ca0ee | Reservation UID: 6175d86a-d074-4bf8-8b9f-3c546666db3a | Resource Type: vise.testbed| Resource Units: 1 ] [ Slice UID: f7ddd977-dc01-426d-9f46-f9db356ca0ee | Reservation UID: 7b1b8edb-eca2-4318-823f-36ad3d682256 | Resource Type: nlr.vlan| Resource Units: 1 ] [ Slice UID: f7ddd977-dc01-426d-9f46-f9db356ca0ee | Reservation UID: dcc2aeb6-8900-4e50-a788-22109d9bec48 | Resource Type: ben.vlan| Resource Units: 1 ] User uses the Slice UID to operate on the sliver
Example Run – sliverStatus() bash-3.2$ python sliverStatus.py Querying ORCA xml-rpc server for status of the sliver... ************************************************************* [ Reservation UID: 1d12ae0d-6705-4c87-a602-83e9f74b28c2 | Resource Type: unc.vm | Units: 2 | Status: Ticketed ] [ Manifest properties: Undetermined ] ************************************************************* [ Reservation UID: f6e545fb-82be-4b7d-ae9b-a9f7259f6202 | Resource Type: starlight.vlan | Units: 1 | Status: Ticketed ] [ Manifest properties: Undetermined ] ************************************************************* [ Reservation UID: 7c0d95f5-0b2b-4360-8248-c3d89b662d32 | Resource Type: unc.vlan | Units: 1 | Status: Active ] [ Manifest properties: … {unit.vlan.tag = 17} ] ************************************************************* [ Reservation UID: 6175d86a-d074-4bf8-8b9f-3c546666db3a | Resource Type: vise.testbed | Units: 1 | Status: Active ] [ Manifest properties: … ] ************************************************************* [ Reservation UID: 7b1b8edb-eca2-4318-823f-36ad3d682256 | Resource Type: nlr.vlan | Units: 1 | Status: Active ] [ Manifest properties: … ] ************************************************************* [ Reservation UID: dcc2aeb6-8900-4e50-a788-22109d9bec48 | Resource Type: ben.vlan | Units: 1 | Status: Ticketed ] [ Manifest properties: Undetermined ] Overall Sliver Status: pending
Example Run – sliverStatus() bash-3.2$ python sliverStatus.py Querying ORCA xml-rpc server for status of the sliver... ************************************************************* [ Reservation UID: 1d12ae0d-6705-4c87-a602-83e9f74b28c2 | Resource Type: unc.vm | Units: 2 | Status: Active ] … [Manifest properties here] ************************************************************* [ Reservation UID: f6e545fb-82be-4b7d-ae9b-a9f7259f6202 | Resource Type: starlight.vlan | Units: 1 | Status: Active ] … [Manifest properties here] ************************************************************* [ Reservation UID: 7c0d95f5-0b2b-4360-8248-c3d89b662d32 | Resource Type: unc.vlan | Units: 1 | Status: Active ] … [Manifest properties here] ************************************************************* [ Reservation UID: 6175d86a-d074-4bf8-8b9f-3c546666db3a | Resource Type: vise.testbed | Units: 1 | Status: Active ] … [Manifest properties here] ************************************************************* [ Reservation UID: 7b1b8edb-eca2-4318-823f-36ad3d682256 | Resource Type: nlr.vlan | Units: 1 | Status: Active ] … [Manifest properties here] ************************************************************* [ Reservation UID: dcc2aeb6-8900-4e50-a788-22109d9bec48 | Resource Type: ben.vlan | Units: 1 | Status: Active ] Overall Sliver Status: ready
Example Run – deleteSliver() bash-3.2$ python deleteSliver.py Contacting ORCA xml-rpc server to delete the sliver... True bash-3.2$ python sliverStatus.py Querying ORCA xml-rpc server for status of the sliver... ************************************************************* [ Reservation UID: 1d12ae0d-6705-4c87-a602-83e9f74b28c2 | Resource Type: unc.vm | Units: 2 | Status: CloseWait ] … ************************************************************* [ Reservation UID: dcc2aeb6-8900-4e50-a788-22109d9bec48 | Resource Type: ben.vlan | Units: 1 | Status: CloseWait ] … Overall Sliver Status: pending bash-3.2$ python sliverStatus.py Querying ORCA xml-rpc server for status of the sliver... There are no reservations in the slice with sliceId = f7ddd977-dc01-426d-9f46-f9db356ca0ee
Questions Thank you..