== ORBIT API == ORBIT support services have web based XML interfaces. They all use the same framework and, therefore, have like syntax. The services are accessed using either of the following schemes: {{{ http://:5012//?<1st arg>=&<2nd_arg>= For instance, to turn on node1-1 using the CMC (from the console of one of the sandboxes or the grid), you would issue the following: wget -O - "http://cmc:5012/cmc/nodeSetOn?nodes=[1,1]" }}} The services are location aware and will manipulate the resources for that specific location. For instance, querying the CMC to turn on node1-1 from the console on sb1 will turn on node1-1 on sb1 and not any other resource. Also, it is impossible for users in one location to issue commands for another. For example, it is impossible to turn on nodes on the grid from the console of sb1. One of the obvious advantages of this is experiment scripts/applications need only mention the service name to be portable. Below is a list of available services and their corresponding arguments. == Chassis Manager Controller (CMC) == Services and arguments {{{ Controls nodes through their attached CMs Switch on a node at a specific coordinate Switch on a specified set of nodes Switch on nodes for a specified interface Switch all nodes on Switch on a node at a specific coordinate Switch off hard a node at a specific coordinate Switch all nodes off Switch Off Hard a specified set of nodes Switch off soft a node at a specific coordinate Switch all nodes off Switch Off Soft a specified set of nodes Reset a node at a specific coordinate Reset all nodes Reset a specified set of nodes Identify a node at a specific coordinate Identify all nodes Identify a specified set of nodes UpdateEnable a node at a specific coordinate Update Enable a specified set of nodes UpdateDisable a node at a specific coordinate Update Disable a specified set of nodes Host Enroll a node at a specific coordinate Host Enroll all nodes Host Enroll a specified set of nodes Return the status of a node at a specific coordinate Set Inactive a Node from the Testbed Set Inactive a specified set of nodes Set Active a Node from the Testbed Set Active a specified set of nodes Returns the status of the entire Testbed Get List of all Active Nodes from the Testbed Get all Nodes for a specified domain Get List of all Nodes in the Testbed Get all nodes for a specified interface }}} Command redirection to other resources. {{{ http://:5012//?=&<1st_arg>=&<2nd_arg>= Currently the valid domain name scheme is .orbit-lab.org, where subdomain-name = {grid,sb1,sb2,sb3,sb4,sb5,sb6,sb7,sb8,sb9}. For instance, to turn on node1-1.sb9.orbit-lab.org through node1-5.sb9.orbit-lab.org from an internal machine (i.e. internal1, internal2, internal3, internal4), you would issue the following: wget -O - "http://cmc:5012/cmc/nodeSetOn?domain=sb8.orbit-lab.org&nodes=[1,1..5]" It should be noted that most users will not need to specify the domain. This is only for internal development use and will not work from any of the consoles. }}} Access Control Policy. {{{ 1.) Access is granted to ON (on, allOn, nodeSetOn), OFF (off, offHard, allOffHard, nodeSetOffHard, offSoft, nodeSetOffSoft, allOffSoft) and RESET (reset, nodeSetReset, allReset) services if you are in the same subdomain as the resource you are trying to control. 2.) Access is granted to all services if you are on the internal subnet (10.0.0.0). The domain name needs to be specified in this case 3.) Access is granted to STATUS (nodeStatus, allStatus) services from everywhere. The domain name needs to be specified in this case. }}} == Frisbee == {{{ Serve node images via a frisbee server Get the port number of a frisbee server serving a specified image Stop serving a specified image Returns the status of either a specific daemon, or all of them }}} == PXE == {{{ Serve node images via a pxe server Configure PXE to boot a node with a specific ip address into a specifif image Configure PXE to boot a node into the image on its disk Configure PXE to boot all nodes into the image on their disks Returns a list of IP addresses and their associated boot image }}} == OML Collection Service == {{{ Interface to OML collection server Start a collection server. The config information is expected to be in the body. Stop a specific collection service Return the log file of the named service Returning the status of the service }}}