wiki:GENIExperimenter/ExperimentExample-gcf2

Version 15 (modified by lnevers@bbn.com, 7 years ago) (diff)

--

GENI Experiment Example 1

This page uses gcf 2.0 or higher to demonstrate a GENI Experiment. If you are using gcf 1.6.2 or earlier, see the Experiment Example using gcf 1.X tools. The Omni that comes with gcf 2.0,uses the [ http://groups.geni.net/geni/wiki/GAPI_AM_API_V2 AM API V2] as a default version, for more details see the Omni Update to V2.0 page.

This page illustrates an operational example for the Omni How-to page capturing the actions required to run an experiment using multiple resource aggregates and with user credentials from the GPO ProtoGENI Clearinghouse pgeni.gpolab.bbn.com. Details on how credentials are set up can be found in the GENI Credentials section of the main Omni How-To page. In this experiment, a total of 4 nodes are requested, with 2 nodes from the Emulab (PG) aggregate and 2 nodes from the PlanetLab (PL) aggregate.

This page does not cover the installation of the Omni client, as it is well documented.

Omni Configuration

If you haven't already configured Omni, please follow these configuration instructions.

The Omni client, is a very simple tool that communicates with Aggregate Managers(AMs) using the GENI AM API. In order to specify which AM you would like to talk to, you will have to use the -a option of Omni. If you automatically configured Omni then your configuration file contains nicknames for addressing most of GENI AMs. If you manually configured your Omni, them make sure that you added the nicknames from the omni_config.sample file that is under the gcf directory. In these examples we will only refer to AMs by their nicknames. If you want to get the full URL please refer to the Omni configuration file used. If you are having problems following these instructions please contact us.

List available resources

When your Omni is configured with your GENI credentials, you can get a list of available resources from the 2 aggregates.

Getting a list of resources from the Emulab ProtoGENI aggregate in GENI v3 RSpec format:

$ omni.py -o -a pg-utah listresources 
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Saving output to a file.
INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
INFO:omni:Listed resources on 1 out of 1 possible aggregates.
INFO:omni:Writing to 'rspec-www-emulab-net-protogeniv2.xml'
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed listresources:

  Options as run:
		aggregate: ['pg-utah']
		framework: pg
		getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
		output: True
		rspectype: ('GENI', '3')

  Args: listresources

  Result Summary: Queried resources from 1 of 1 aggregate(s).
Wrote rspecs from 1 aggregate(s) to 1 file(s)
Saved listresources RSpec at 'unspecified_AM_URN' to file rspec-www-emulab-net-protogeniv2.xml;  
INFO:omni: ============================================================

The resulting file (named rspec-www-emulab-net-protogeniv2.xml as the output describes) looks like this in part:

<?xml version="1.0" ?>
  <!-- Resources at AM:
        URN: unspecified_AM_URN
        URL: https://www.emulab.net/protogeni/xmlrpc/am/2.0
 -->
  <rspec expires="2012-09-18T13:52:09Z" generated="2012-09-18T13:52:09Z" type="advertisement" 
   xmlns="http://www.geni.net/resources/rspec/3" 
   xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1" 
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
   xsi:schemaLocation="http://www.geni.net/resources/rspec/3 
   http://www.geni.net/resources/rspec/3/ad.xsd 
   http://www.protogeni.net/resources/rspec/ext/emulab/1 
   http://www.protogeni.net/resources/rspec/ext/emulab/1/ptop_extension.xsd 
   http://hpn.east.isi.edu/rspec/ext/stitch/0.1/ 
   http://hpn.east.isi.edu/rspec/ext/stitch/0.1/stitch-schema.xsd 
   http://www.geni.net/resources/rspec/ext/shared-vlan/1 
   http://www.geni.net/resources/rspec/ext/shared-vlan/1/ad.xsd ">    

Getting a list of resources from the PlanetLab Princeton aggregate in GENI v3 RSpec format:

$ omni.py -o -a plc listresources
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Saving output to a file.
INFO:omni:Substituting AM nickname plc with URL https://www.planet-lab.org:12346, URN unspecified_AM_URN
INFO:omni:Listed resources on 1 out of 1 possible aggregates.
INFO:omni:Writing to 'rspec-www-planet-lab-org.xml'
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed listresources:

  Options as run:
		aggregate: ['plc']
		framework: pg
		getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
		output: True
		rspectype: ('geni', '3')

  Args: listresources

  Result Summary: Queried resources from 1 of 1 aggregate(s).
Wrote rspecs from 1 aggregate(s) to 1 file(s)
Saved listresources RSpec at 'unspecified_AM_URN' to file rspec-www-planet-lab-org.xml;  
INFO:omni: ============================================================

This output file (rspec-www-planet-lab-org.xml) begins:

<?xml version="1.0" ?>
  <!-- Resources at AM:
        URN: unspecified_AM_URN
        URL: https://www.planet-lab.org:12346
 -->
  <rspec expires="2012-09-18T14:56:25Z" generated="2012-09-18T13:56:25Z" type="advertisement" 
  xmlns="http://www.geni.net/resources/rspec/3" 
  xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1" 
  xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.geni.net/resources/rspec/3 
  http://www.geni.net/resources/rspec/3/ad.xsd 
  http://www.planet-lab.org/resources/sfa/ext/planetlab/1 
  http://www.planet-lab.org/resources/sfa/ext/planetlab/1/planetlab.xsd">    
  

You may use the output of these two listresources commands to generate RSpecs to request resources.

If you are planning to use meso-scale MyPLC resources, you can query a MyPLC installation to get a list of available resources. Note that your Omni request must specify the AM API version (-V 1) and the RSpec version (-t ProtoGENI 2) options:

$ omni.py -o -a pl-gpo listresources -V 1 -t ProtoGENI 2
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Saving output to a file.
INFO:omni:Substituting AM nickname pl-gpo with URL http://myplc.gpolab.bbn.com:12346/, URN unspecified_AM_URN
INFO:omni:Listed resources on 1 out of 1 possible aggregates.
INFO:omni:Writing to 'rspec-myplc-gpolab-bbn-com-12346-.xml'
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed listresources:

  Options as run:
		aggregate: ['pl-gpo']
		api_version: 1
		framework: pg
		getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
		output: True
		rspectype: ('ProtoGENI', '2')

  Args: listresources

  Result Summary: Queried resources from 1 of 1 aggregate(s).
Wrote rspecs from 1 aggregate(s) to 1 file(s)
Saved listresources RSpec at 'unspecified_AM_URN' to file rspec-myplc-gpolab-bbn-com-12346-.xml;  
INFO:omni: ============================================================

Create a slice

If you have an account with GPO's Clearinghouse then your slice will be created in the pgeni.gpolab.bbn.com namespace. For this example a slice named lnevers-2slice is created; you should choose a slice name that is meaningful to you. To avoid confusion, avoid creating a slice with the same name as your username (ie if your username is lnevers, don't name your slice lnevers too).

$  omni.py createslice lnevers-2slice
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Created slice with Name lnevers-2slice, URN urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice, Expiration 2012-09-19 16:05:56+00:00
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed createslice:

  Options as run:
		framework: pg
		getversionCacheName: /home/lnevers/.gcf/get_version_cache.json

  Args: createslice lnevers-2slice

  Result Summary: Created slice with Name lnevers-2slice, URN urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice, Expiration 2012-09-19 16:05:56+00:00
 
INFO:omni: ============================================================

Renew your slice

Note in the above output that our new slice expires soon. Any resources that you will reserve as part of your slice can not last longer than your slice, and will go away when the reservation expires. For your experiment be sure to renew your slice for the duration of your experiment. Here we extend the slice lifetime:

$ omni.py renewslice lnevers-2slice 2012-09-24
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni.protogeni:Requesting new slice expiration '2012-09-24T00:00:00'
INFO:omni:Slice lnevers-2slice now expires at 2012-09-24 00:00:00 UTC
INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice expires on 2012-09-24 00:00:00 UTC
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed renewslice:

  Options as run:
		framework: pg
		getversionCacheName: /home/lnevers/.gcf/get_version_cache.json

  Args: renewslice lnevers-2slice 2012-09-24

  Result Summary: Slice lnevers-2slice now expires at 2012-09-24 00:00:00 UTC
Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice expires on 2012-09-24 00:00:00 UTC 
INFO:omni: ============================================================

Add Emulab PG resources to your slice

To request two Emulab ProtoGENI nodes, the following RSpec named emulab.rspec was used for this example; your RSpec will be specific to your experiment requirements:

<?xml version="1.0" ?>
<!-- Resources at AM:
        URN: unspecified_AM_URN
        URL: https://www.emulab.net/protogeni/xmlrpc/am/2.0
 -->
<rspec type="request" 
        xmlns="http://www.geni.net/resources/rspec/3" 
        xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1" 
        xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://www.geni.net/resources/rspec/3 
        http://www.geni.net/resources/rspec/3/request.xsd">

  <node client_id="geni1" exclusive="true">
    <sliver_type name="raw-pc" />
  </node>
  <node client_id="geni2" exclusive="true">
    <sliver_type name="raw-pc" />
  </node>
</rspec>

To request two ProtoGENI nodes, a sliver was created within the Emulab ProtoGENI aggregate with the RSpec above using the following command. Note the use of the -o argument, which saves the manifest RSpec to a file. The manifest contains your new host's IP address and login information.

$ omni.py -a pg-utah createsliver lnevers-2slice emulab.rspec -o
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice expires on 2012-09-24 00:00:00 UTC
INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
INFO:omni:Creating sliver(s) from rspec file emulab.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice
INFO:omni:Got return from CreateSliver for slice lnevers-2slice at https://www.emulab.net/protogeni/xmlrpc/am/2.0:
INFO:omni:Writing to 'lnevers-2slice-manifest-rspec-www-emulab-net-protogeniv2.xml'
INFO:omni:Wrote result of createsliver for slice: lnevers-2slice at AM: https://www.emulab.net/protogeni/xmlrpc/am/2.0 to file lnevers-2slice-manifest-rspec-www-emulab-net-protogeniv2.xml
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed createsliver:

  Options as run:
		aggregate: ['pg-utah']
		framework: pg
		getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
		output: True

  Args: createsliver lnevers-2slice emulab.rspec

  Result Summary: Got Reserved resources RSpec from www-emulab-net-protogeniv2
   Saved createsliver results to lnevers-2slice-manifest-rspec-www-emulab-net-protogeniv2.xml.  
INFO:omni: ============================================================

The manifest RSpec lnevers-2slice-manifest-rspec-www-emulab-net-protogeniv2.xml- the result of your reservation - looks like this:

<?xml version="1.0" ?>
  <!-- Reserved resources for:
        Slice: lnevers-1slice
        at AM:
        URN: unspecified_AM_URN
        URL: https://www.emulab.net/protogeni/xmlrpc/am/2.0
 -->
  <rspec type="manifest" xmlns="http://www.geni.net/resources/rspec/3" 
  xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1" 
  xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.geni.net/resources/rspec/3 
  http://www.geni.net/resources/rspec/3/manifest.xsd">    

    <node client_id="geni1" component_id="urn:publicid:IDN+emulab.net+node+pc304" 
     component_manager_id="urn:publicid:IDN+emulab.net+authority+cm" exclusive="true" 
     sliver_id="urn:publicid:IDN+emulab.net+sliver+91197">    
     
    <sliver_type name="raw-pc"/>    
      <rs:vnode name="pc304" xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1"/>    
      <host name="geni1.lnevers-2slice.pgeni-gpolab-bbn-com.emulab.net"/>    
        <services>      
        <login authentication="ssh-keys" hostname="pc304.emulab.net" port="22" username="lnevers"/>    
        </services>  
      </node>
  
    <node client_id="geni2" component_id="urn:publicid:IDN+emulab.net+node+pc315" 
     component_manager_id="urn:publicid:IDN+emulab.net+authority+cm" exclusive="true" 
     sliver_id="urn:publicid:IDN+emulab.net+sliver+91198">    
        <sliver_type name="raw-pc"/>    
      <rs:vnode name="pc315" xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1"/>    
      <host name="geni2.lnevers-2slice.pgeni-gpolab-bbn-com.emulab.net"/>    
        <services>      
        <login authentication="ssh-keys" hostname="pc315.emulab.net" port="22" username="lnevers"/>    
        </services>
      </node>  
</rspec>

Add PlanetLab resources to GPO PG slice

To request three PlanetLab nodes, the following RSpec named planet.rspec was used for this example; your RSpec will be specific to your experiment requirements.

This example uses ProtoGENI V2 RSpec format, to generate the ProtoGENI V2 request from the Advertisement:

  • Change the RSpec headers to specify that this is a request, using the headers shown below
  • Pull out only the nodes you wish to reserve - ensure they say available now="true"
  • For each node
    • Add an attribute client_id with a nickname
    • Remove the available sub-element
    • Add the sub-element <sliver_type name="plab-vnode"/>
<?xml version="1.0" ?>
<!-- Resources at AM:
        URN: unspecified_AM_URN
        URL: http://www.planet-lab.org:12346
 -->
<rspec type="request" 
        xmlns="http://www.geni.net/resources/rspec/3" 
        xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1" 
        xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://www.geni.net/resources/rspec/3 
        http://www.geni.net/resources/rspec/3/request.xsd">  

   <node component_id="urn:publicid:IDN+plc:mit+node+planetlab4.csail.mit.edu" 
        component_manager_id="urn:publicid:IDN+plc+authority+cm" 
        component_name="planetlab4.csail.mit.edu" exclusive="false" client_id="mitpl4">    
            <hardware_type name="plab-pc"/>
            <hardware_type name="pc"/>
            <location country="unknown" latitude="42.363" longitude="-71.0926"/>
            <sliver_type name="plab-vnode"/>    
   </node>
 
   <node component_id="urn:publicid:IDN+plc:bbn+node+plnode-03.gpolab.bbn.com"
    component_manager_id="urn:publicid:IDN+plc+authority+am"
    component_name="plnode-03.gpolab.bbn.com" exclusive="false" 
    client_id="gpopl3">    
      <hardware_type name="plab-pc"/>    
      <hardware_type name="pc"/>    
      <location country="us" latitude="42.3907" longitude="-71.1478"/>    
      <sliver_type name="plab-vnode"/>    
   </node>  

</rspec>

To request the two PlanetLab nodes, a sliver was created within PlanetLab with the RSpec above using the following command:

$ omni.py -a plc createsliver lnevers-2slice planetlab.rspec -o
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice expires on 2012-09-24 00:00:00 UTC
INFO:omni:Substituting AM nickname plc with URL https://www.planet-lab.org:12346, URN unspecified_AM_URN
INFO:omni:Substituting AM nickname plc with URL https://www.planet-lab.org:12346, URN unspecified_AM_URN
INFO:omni:Creating sliver(s) from rspec file planetlab.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice
INFO:omni:Got return from CreateSliver for slice lnevers-2slice at https://www.planet-lab.org:12346:
INFO:omni:Writing to 'lnevers-2slice-manifest-rspec-www-planet-lab-org.xml'
INFO:omni:Wrote result of createsliver for slice: lnevers-2slice at AM: https://www.planet-lab.org:12346 to file lnevers-2slice-manifest-rspec-www-planet-lab-org.xml
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed createsliver:

  Options as run:
		aggregate: ['plc']
		framework: pg
		getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
		output: True

  Args: createsliver lnevers-2slice planetlab.rspec

  Result Summary: Got Reserved resources RSpec from www-planet-lab-org
   Saved createsliver results to lnevers-2slice-manifest-rspec-www-planet-lab-org.xml.  
INFO:omni: ============================================================

The resulting manifest RSpec lnevers-2slice-manifest-rspec-www-planet-lab-org.xml is this:

<?xml version="1.0" ?>
  <!-- Reserved resources for:
        Slice: lnevers-1slice
        at AM:
        URN: unspecified_AM_URN
        URL: https://www.planet-lab.org:12346
 -->
  <rspec expires="2012-10-02T10:21:35Z" generated="2012-09-18T14:21:41Z" type="manifest" 
  xmlns="http://www.protogeni.net/resources/rspec/2" 
  xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1" 
  xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1" 
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
  xsi:schemaLocation="http://www.protogeni.net/resources/rspec/2 
  http://www.protogeni.net/resources/rspec/2/manifest.xsd 
  http://www.planet-lab.org/resources/sfa/ext/planetlab/1 
  http://www.planet-lab.org/resources/sfa/ext/planetlab/1/planetlab.xsd">  

    <node client_id="mitpl4" component_id="urn:publicid:IDN+plc:mit+node+planetlab4.csail.mit.edu" 
     component_manager_id="urn:publicid:IDN+plc+authority+cm" component_name="planetlab4.csail.mit.edu" 
     exclusive="false" sliver_id="urn:publicid:IDN+plc:pgeni.gpolab.bbn.com+slice+lnevers-2slice-363">    
        <hardware_type name="plab-pc"/>    
        <hardware_type name="pc"/>    
        <location country="unknown" latitude="42.363" longitude="-71.0926"/>    
        <interface client_id="363:426" component_id="urn:publicid:IDN+plc+interface+node363:eth0"/>    
        <services>      
            <login authentication="ssh-keys" hostname="planetlab4.csail.mit.edu" port="22" 
            username="pgenigpolabbbncom_lnevers2slice"/>      
        </services>    
        <sliver_type name="plab-vserver"/>    
    </node>  
    <node client_id="gpopl3" component_id="urn:publicid:IDN+plc:bbn+node+plnode-03.gpolab.bbn.com" 
    component_manager_id="urn:publicid:IDN+plc+authority+cm" component_name="plnode-03.gpolab.bbn.com" 
    exclusive="false" sliver_id="urn:publicid:IDN+plc:pgeni.gpolab.bbn.com+slice+lnevers-2slice-13627">    
        <hardware_type name="plab-pc"/>    
        <hardware_type name="pc"/>    
        <location country="unknown" latitude="42.3907" longitude="-71.1478"/>    
        <interface client_id="13627:2918" component_id="urn:publicid:IDN+plc+interface+node13627:eth0"/>    
        <services>      
            <login authentication="ssh-keys" hostname="plnode-03.gpolab.bbn.com" port="22" 
            username="pgenigpolabbbncom_lnevers2slice"/>      
        </services>    
        <sliver_type name="plab-vserver"/>    
    </node>  

</rspec>

Note that your login for your nodes is available by running listresources or by running the readyToLogin.py script, see this section for details.

As part of the createsliver operation for PL nodes, Omni uploads the user SSH keys based on the [users] section of the omni_config. If you have problems in setting up your slice, contact us at help@geni.net.

Checking sliver resource status

Once you have requested the resources you may check the sliver status for PG and PL nodes. As you review the results, note the expiration time to make sure that it meets your experiment running time requirement. To get sliverstatus for the example experiment on this page the following command was issued for the PG resources:

$ omni.py -a plc sliverstatus lnevers-2slice -o
$ omni.py -a pg-utah sliverstatus lnevers-2slice -o    

Review the output file and check for the "geni_status" to be "ready" to verify that the requested compute resources are ready for use. A lot of very useful information is reported for the sliverstatus output including which hosts are assigned to you and for how long. For PlanetLab, notice the value in the 'pl_login' field, which is the login to be used to access the nodes. For a slice across multiple aggregates, you should pay close attention to the expiration time for each aggregate sliver (pg_expires & pl_expires). Note that slice expiration time is also available in the output of many commands.

Also note that by using the aggregates option in your omni_config, you can configure Omni to talk to all the aggregates in your experiment, and only those aggregates. Then sliverstatus will get full status for you in a single call.

Find Slivers and List Resources in your Slice

If at any point you forget what you have reserved in your slice, or lose the manifest RSpec that you saved earlier, you can retrieve it. By calling listresources with your slice name as an argument, you get your manifest RSpec again.

Run:

$ omni.py -a pg-utah -o listresources lnevers-2slice
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Saving output to a file.
INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice expires on 2012-09-24 00:00:00 UTC
INFO:omni:Gathering resources reserved for slice lnevers-2slice.
INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
INFO:omni:Listed resources on 1 out of 1 possible aggregates.
INFO:omni:Writing to 'lnevers-2slice-manifest-rspec-www-emulab-net-protogeniv2.xml'
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed listresources:

  Options as run:
		aggregate: ['pg-utah']
		framework: pg
		getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
		output: True

  Args: listresources lnevers-2slice

  Result Summary: Queried resources for slice lnevers-2slice from 1 of 1 aggregate(s).
Wrote rspecs from 1 aggregate(s) to 1 file(s)
Saved listresources RSpec at 'unspecified_AM_URN' to file lnevers-2slice-manifest-rspec-www-emulab-net-protogeniv2.xml;  
INFO:omni: ============================================================

The result will be a file (lnevers-2slice-manifest-rspec-www-emulab-net-protogeniv2.xml) of the resources in your slice at that aggregate.

You may also check for the sliver status and the login information with the gcf readiToLogin.py script. This is the login information for the PG Emulab sliver:

$  ./examples/readyToLogin.py -a pg-utah lnevers-2slice   
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN

 .....
================================================================================
SSH CONFIGURATION INFO for User lnevers
================================================================================
 
Host geni1
  Port 22
  HostName pc304.emulab.net
  User lnevers 
  IdentityFile /home/lnevers/.ssh/id_rsa 

Host geni2
  Port 22
  HostName pc315.emulab.net
  User lnevers 
  IdentityFile /home/lnevers/.ssh/id_rsa 

================================================================================
LOGIN INFO for AM: https://www.emulab.net/protogeni/xmlrpc/am/2.0
================================================================================

geni1's geni_status is: ready (am_status:ready) 
User lnevers logins to geni1 using:
	xterm -e ssh -i /home/lnevers/.ssh/id_rsa lnevers@pc304.emulab.net &

geni2's geni_status is: ready (am_status:ready) 
User lnevers logins to geni2 using:
	xterm -e ssh -i /home/lnevers/.ssh/id_rsa lnevers@pc315.emulab.net &

This is the login information for the PlanetLab nodes:

$ ./examples/readyToLogin.py -a plc lnevers-2slice 
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Substituting AM nickname plc with URL https://www.planet-lab.org:12346, URN unspecified_AM_URN

 ....

================================================================================
SSH CONFIGURATION INFO for User pgenigpolabbbncom_lnevers2slice
================================================================================
 
Host planetlab4.csail.mit.edu
  Port 22
  HostName planetlab4.csail.mit.edu
  User pgenigpolabbbncom_lnevers2slice 
  IdentityFile /home/lnevers/.ssh/id_rsa 

Host plnode-03.gpolab.bbn.com
  Port 22
  HostName plnode-03.gpolab.bbn.com
  User pgenigpolabbbncom_lnevers2slice 
  IdentityFile /home/lnevers/.ssh/id_rsa 

================================================================================
LOGIN INFO for AM: https://www.planet-lab.org:12346
================================================================================

planetlab4.csail.mit.edu's geni_status is: ready (am_status:boot) 
User pgenigpolabbbncom_lnevers2slice logins to planetlab4.csail.mit.edu using:
	xterm -e ssh -i /home/lnevers/.ssh/id_rsa pgenigpolabbbncom_lnevers2slice@planetlab4.csail.mit.edu &


plnode-03.gpolab.bbn.com's geni_status is: ready (am_status:boot) 
User pgenigpolabbbncom_lnevers2slice logins to plnode-03.gpolab.bbn.com using:
	xterm -e ssh -i /home/lnevers/.ssh/id_rsa pgenigpolabbbncom_lnevers2slice@plnode-03.gpolab.bbn.com &

Verify Resources and Run your Experiment

Once you have the sliverstatus, you have enough information to access the hosts allocated for your experiment. Simply SSH into one of the hosts and ping any of the other hosts in your experiment. Notice that the pl_login is being used to get access. Now verify that there is connectivity between your allocated resources. In this example experiment, one of the PlanetLab resources allocated is used to ping a ProtoGENI resource that is also part of the experiment:

$ ssh pgenigpolabbbncom_lneversslice@plnode-03.gpolab.bbn.com
Last login: Tue Sep 18 09:44:25 2012 from arendia.gpolab.bbn.com
[pgenigpolabbbncom_lneversslice@plnode-03 ~]$ ping pc315.emulab.net -c 3
PING pc315.emulab.net (155.98.39.3) 56(84) bytes of data.
64 bytes from pc315.emulab.net (155.98.39.115): icmp_seq=1 ttl=44 time=116 ms
64 bytes from pc315.emulab.net (155.98.39.115): icmp_seq=2 ttl=44 time=116 ms
64 bytes from pc315.emulab.net (155.98.39.115): icmp_seq=3 ttl=44 time=116 ms

--- pc203.emulab.net ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 116.385/116.595/116.997/0.398 ms
[pgenigpolabbbncom_lneversslice@plnode-03 ~]$ 

Once you have verified connectivity between these hosts that have been allocated to you, you may start your experiment.

Delete sliver resources

When the experiment is completed you should release the resources by deleting the resource sliver for each of the Resource Aggregates used in the Experiment. In the example experiment used in this page, the ProtoGENI sliver was deleted as follows:

$ omni.py -a pg-utah deletesliver lnevers-2slice
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice expires on 2012-09-24 00:00:00 UTC
INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
INFO:omni:Deleted sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice on unspecified_AM_URN at https://www.emulab.net/protogeni/xmlrpc/am/2.0
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed deletesliver:

  Options as run:
		aggregate: ['pg-utah']
		framework: pg
		getversionCacheName: /home/lnevers/.gcf/get_version_cache.json

  Args: deletesliver lnevers-2slice

  Result Summary: Deleted sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice on unspecified_AM_URN at https://www.emulab.net/protogeni/xmlrpc/am/2.0 
INFO:omni: ============================================================

Also the PlanetLab sliver is deleted as follows:

$ omni.py -a plc deletesliver lnevers-2slice
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice expires on 2012-09-24 00:00:00 UTC
INFO:omni:Substituting AM nickname plc with URL https://www.planet-lab.org:12346, URN unspecified_AM_URN
INFO:omni:Deleted sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice on unspecified_AM_URN at https://www.planet-lab.org:12346
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed deletesliver:

  Options as run:
		aggregate: ['plc']
		framework: pg
		getversionCacheName: /home/lnevers/.gcf/get_version_cache.json

  Args: deletesliver lnevers-2slice

  Result Summary: Deleted sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice on unspecified_AM_URN at https://www.planet-lab.org:12346 
INFO:omni: ============================================================

List your Slices

You are responsible for remembering your slices, and what resources you have.

If, as here, you use Protogeni as your Clearinghouse, you can use an Omni command to listmyslices. Then for each, you can use listresources to see what you have reserved at various aggregates.

For example:

$ omni.py listmyslices lnevers
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:User 'lnevers' has slice(s): 
	urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice
	urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-2slice
	urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-exp1
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed listmyslices:

  Options as run:
		framework: pg
		getversionCacheName: /home/lnevers/.gcf/get_version_cache.json

  Args: listmyslices lnevers
  Result Summary: Found 3 slice(s) for user 'lnevers'.
 
INFO:omni: ============================================================

The listmyslices output shows that the user lnevers has 3 slices. We now request to see what resources are associated with one of the slices at PlanetLab:

$ omni.py -f pg -a plc listresources lnevers-exp1
INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
INFO:omni:Using control framework pg
INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-exp1 expires on 2012-09-19 15:52:04 UTC
INFO:omni:Gathering resources reserved for slice lnevers-exp1.
INFO:omni:Substituting AM nickname plc with URL https://www.planet-lab.org:12346, URN unspecified_AM_URN
INFO:omni:Listed resources on 1 out of 1 possible aggregates.
INFO:omni:<?xml version="1.0" ?>
INFO:omni:  <!-- Reserved resources for:
	Slice: lnevers-exp1
	at AM:
	URN: unspecified_AM_URN
	URL: https://www.planet-lab.org:12346
 -->
INFO:omni:  <rspec expires="2012-10-02T10:57:30Z" generated="2012-09-18T14:59:36Z" type="manifest" 
xmlns="http://www.geni.net/resources/rspec/3" xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1" 
xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/manifest.xsd 
http://www.planet-lab.org/resources/sfa/ext/planetlab/1 http://www.planet-lab.org/resources/sfa/ext/planetlab/1/planetlab.xsd">    

      <node client_id="mynode" component_id="urn:publicid:IDN+plc:bu+node+planetlab-02.bu.edu" 
      component_manager_id="urn:publicid:IDN+plc+authority+cm" 
      component_name="planetlab-02.bu.edu" exclusive="false" sliver_id="urn:publicid:IDN+plc:pgeni.gpolab.bbn.com+slice+lnevers-exp1-10815">        
            <hardware_type name="plab-pc"/>        
            <hardware_type name="pc"/>        
            <location country="unknown" latitude="42.35" longitude="-71.1"/>        
            <interface client_id="10815:1605" component_id="urn:publicid:IDN+plc+interface+node10815:eth0"/>        
            <services>            
                  <login authentication="ssh-keys" hostname="planetlab-02.bu.edu" port="22" username="pgenigpolabbbncom_lneversexp1"/>            
            </services>        
            <sliver_type name="plab-vserver"/>        
      </node>    
</rspec>
INFO:omni: ------------------------------------------------------------
INFO:omni: Completed listresources:
  Options as run:
		aggregate: ['plc']
		framework: pg
		getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
		rspectype: ('geni', '3')

  Args: listresources lnevers-exp1
  Result Summary: Queried resources for slice lnevers-exp1 from 1 of 1 aggregate(s).
 
INFO:omni: ============================================================

The results above show that the returned RSpec contains 1 node that is part of the sliver at PlanetLab

Happy Experimenting!


Email help@geni.net for GENI support or email me with feedback on this page!

Attachments (1)

Download all attachments as: .zip