Changes between Initial Version and Version 1 of GENIExperimenter/ExperimentExample-gcf2


Ignore:
Timestamp:
09/18/12 10:18:36 (12 years ago)
Author:
lnevers@bbn.com
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • GENIExperimenter/ExperimentExample-gcf2

    v1 v1  
     1[[PageOutline]]
     2
     3= GENI Experiment Example 1 =
     4
     5This page uses gcf 2.0 or higher to demonstrate a GENI Experiment. If you are using gcf 1.6.2 or earlier, see the [http://groups.geni.net/geni/wiki/GENIExperimenter/ExperimentExample Experiment Example] using gcf 1.X tools.
     6
     7This page illustrates an operational example for the [wiki:HowToUseOmni 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 [wiki:HowToUseOmni#a1.GetGENICredentials GENI Credentials] section of the main [wiki:HowToUseOmni Omni How-To] page. In this experiment, a total of 5 nodes are requested, with 2 nodes from the Emulab (PG) aggregate and 3 nodes from the !PlanetLab (PL) aggregate.   
     8
     9This page does not cover the installation of the Omni client, as it is well [http://trac.gpolab.bbn.com/gcf/wiki/Omni documented].
     10
     11== Omni Configuration ==
     12
     13If you haven't already configured Omni, please follow [http://trac.gpolab.bbn.com/gcf/wiki/OmniConfigure these configuration instructions].
     14
     15The Omni client, is a very simple tool that communicates with Aggregate Managers(AMs) using the [wiki:GeniApi 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 [attachment:omni_config Omni configuration file] used.  If you are having problems following these instructions please [mailto:help@geni.net contact us].
     16
     17== List available resources ==
     18
     19With your Omni is configured with your GENI credentials, you can get a list of available resources from each of the other 2 aggregates.
     20
     21
     22Getting a list of resources from the Emulab ProtoGENI aggregate in GENI v3 RSpec format:
     23
     24{{{
     25$ omni.py -o -a pg-utah listresources -t GENI 3
     26INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
     27INFO:omni:Using control framework pg
     28INFO:omni:Saving output to a file.
     29INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
     30INFO:omni:Listed resources on 1 out of 1 possible aggregates.
     31INFO:omni:Writing to 'rspec-www-emulab-net-protogeniv2.xml'
     32INFO:omni: ------------------------------------------------------------
     33INFO:omni: Completed listresources:
     34
     35  Options as run:
     36                aggregate: ['pg-utah']
     37                framework: pg
     38                getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
     39                output: True
     40                rspectype: ('GENI', '3')
     41
     42  Args: listresources
     43
     44  Result Summary: Queried resources from 1 of 1 aggregate(s).
     45Wrote rspecs from 1 aggregate(s) to 1 file(s)
     46Saved listresources RSpec at 'unspecified_AM_URN' to file rspec-www-emulab-net-protogeniv2.xml; 
     47INFO:omni: ============================================================
     48}}}
     49
     50The resulting file (named ''rspec-www-emulab-net-protogeniv2.xml'' as the output describes) looks like this in part:
     51{{{
     52#!xml
     53<?xml version="1.0" ?>
     54  <!-- Resources at AM:
     55        URN: unspecified_AM_URN
     56        URL: https://www.emulab.net/protogeni/xmlrpc/am/2.0
     57 -->
     58  <rspec expires="2012-09-18T13:52:09Z" generated="2012-09-18T13:52:09Z" type="advertisement"
     59   xmlns="http://www.geni.net/resources/rspec/3"
     60   xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
     61   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     62   xsi:schemaLocation="http://www.geni.net/resources/rspec/3
     63   http://www.geni.net/resources/rspec/3/ad.xsd
     64   http://www.protogeni.net/resources/rspec/ext/emulab/1
     65   http://www.protogeni.net/resources/rspec/ext/emulab/1/ptop_extension.xsd
     66   http://hpn.east.isi.edu/rspec/ext/stitch/0.1/
     67   http://hpn.east.isi.edu/rspec/ext/stitch/0.1/stitch-schema.xsd
     68   http://www.geni.net/resources/rspec/ext/shared-vlan/1
     69   http://www.geni.net/resources/rspec/ext/shared-vlan/1/ad.xsd ">   
     70}}}
     71
     72Getting a list of resources from the !PlanetLab Princeton aggregate in GENI v3 RSpec format:
     73{{{
     74$ omni.py -o -a plc -t geni 3 listresources
     75INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
     76INFO:omni:Using control framework pg
     77INFO:omni:Saving output to a file.
     78INFO:omni:Substituting AM nickname plc with URL https://www.planet-lab.org:12346, URN unspecified_AM_URN
     79INFO:omni:Listed resources on 1 out of 1 possible aggregates.
     80INFO:omni:Writing to 'rspec-www-planet-lab-org.xml'
     81INFO:omni: ------------------------------------------------------------
     82INFO:omni: Completed listresources:
     83
     84  Options as run:
     85                aggregate: ['plc']
     86                framework: pg
     87                getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
     88                output: True
     89                rspectype: ('geni', '3')
     90
     91  Args: listresources
     92
     93  Result Summary: Queried resources from 1 of 1 aggregate(s).
     94Wrote rspecs from 1 aggregate(s) to 1 file(s)
     95Saved listresources RSpec at 'unspecified_AM_URN' to file rspec-www-planet-lab-org.xml; 
     96INFO:omni: ============================================================
     97
     98}}}
     99
     100This output file (''rspec-www-planet-lab-org.xml'') begins:
     101{{{
     102#!xml
     103<?xml version="1.0" ?>
     104  <!-- Resources at AM:
     105        URN: unspecified_AM_URN
     106        URL: https://www.planet-lab.org:12346
     107 -->
     108  <rspec expires="2012-09-18T14:56:25Z" generated="2012-09-18T13:56:25Z" type="advertisement"
     109  xmlns="http://www.geni.net/resources/rspec/3"
     110  xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1"
     111  xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1"
     112  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     113  xsi:schemaLocation="http://www.geni.net/resources/rspec/3
     114  http://www.geni.net/resources/rspec/3/ad.xsd
     115  http://www.planet-lab.org/resources/sfa/ext/planetlab/1
     116  http://www.planet-lab.org/resources/sfa/ext/planetlab/1/planetlab.xsd">   
     117 
     118}}}
     119
     120You may use the output of these two ''listresources'' commands to generate RSpecs to request resources.
     121
     122If you are planning to use MyPLC resources, you may query a MyPLC installation to get a list of available resources as follows:
     123{{{
     124$ omni.py -o -a pl-gpo listresources -V 1 -t ProtoGENI 2
     125INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
     126INFO:omni:Using control framework pg
     127INFO:omni:Saving output to a file.
     128INFO:omni:Substituting AM nickname pl-gpo with URL http://myplc.gpolab.bbn.com:12346/, URN unspecified_AM_URN
     129INFO:omni:Listed resources on 1 out of 1 possible aggregates.
     130INFO:omni:Writing to 'rspec-myplc-gpolab-bbn-com-12346-.xml'
     131INFO:omni: ------------------------------------------------------------
     132INFO:omni: Completed listresources:
     133
     134  Options as run:
     135                aggregate: ['pl-gpo']
     136                api_version: 1
     137                framework: pg
     138                getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
     139                output: True
     140                rspectype: ('ProtoGENI', '2')
     141
     142  Args: listresources
     143
     144  Result Summary: Queried resources from 1 of 1 aggregate(s).
     145Wrote rspecs from 1 aggregate(s) to 1 file(s)
     146Saved listresources RSpec at 'unspecified_AM_URN' to file rspec-myplc-gpolab-bbn-com-12346-.xml; 
     147INFO:omni: ============================================================
     148}}}
     149
     150== Create a slice ==
     151
     152If 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-1slice'' 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).
     153
     154{{{
     155$  omni.py createslice lnevers-1slice
     156INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
     157INFO:omni:Using control framework pg
     158INFO:omni:Created slice with Name lnevers-1slice, URN urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice, Expiration 2012-09-19 15:05:33+00:00
     159INFO:omni: ------------------------------------------------------------
     160INFO:omni: Completed createslice:
     161
     162  Options as run:
     163                framework: pg
     164                getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
     165
     166  Args: createslice lnevers-1slice
     167
     168  Result Summary: Created slice with Name lnevers-1slice, URN urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice, Expiration 2012-09-19 15:05:33+00:00
     169INFO:omni: ============================================================
     170}}}
     171
     172== Renew your slice ==
     173
     174Note 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 only slightly extend the slice lifetime.
     175
     176{{{
     177$ omni.py renewslice lnevers-1slice 2012-09-24
     178INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
     179INFO:omni:Using control framework pg
     180INFO:omni.protogeni:Requesting new slice expiration '2012-09-24T00:00:00'
     181INFO:omni:Slice lnevers-1slice now expires at 2012-09-24 00:00:00 UTC
     182INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice expires on 2012-09-24 00:00:00 UTC
     183INFO:omni: ------------------------------------------------------------
     184INFO:omni: Completed renewslice:
     185
     186  Options as run:
     187                framework: pg
     188                getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
     189
     190  Args: renewslice lnevers-1slice 2012-09-24
     191
     192  Result Summary: Slice lnevers-1slice now expires at 2012-09-24 00:00:00 UTC
     193Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice expires on 2012-09-24 00:00:00 UTC
     194INFO:omni: ============================================================
     195}}}
     196
     197== Add Emulab PG resources to your slice ==
     198
     199To 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:
     200
     201{{{
     202#!xml
     203<?xml version="1.0" ?>
     204<!-- Resources at AM:
     205        URN: unspecified_AM_URN
     206        URL: https://www.emulab.net/protogeni/xmlrpc/am/2.0
     207 -->
     208<rspec type="request"
     209        xmlns="http://www.geni.net/resources/rspec/3"
     210        xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1"
     211        xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1"
     212        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     213        xsi:schemaLocation="http://www.geni.net/resources/rspec/3
     214        http://www.geni.net/resources/rspec/3/request.xsd">
     215
     216  <node client_id="geni1" exclusive="true">
     217    <sliver_type name="raw-pc" />
     218  </node>
     219  <node client_id="geni2" exclusive="true">
     220    <sliver_type name="raw-pc" />
     221  </node>
     222</rspec>
     223
     224}}}
     225
     226To 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.
     227{{{
     228$ omni.py -a pg-utah createsliver lnevers-1slice emulab.rspec -o
     229INFO:omni:Loading config file /home/lnevers/.gcf/omni_config
     230INFO:omni:Using control framework pg
     231INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice expires on 2012-09-24 00:00:00 UTC
     232INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
     233INFO:omni:Substituting AM nickname pg-utah with URL https://www.emulab.net/protogeni/xmlrpc/am/2.0, URN unspecified_AM_URN
     234INFO:omni:Creating sliver(s) from rspec file emulab.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice
     235INFO:omni:Got return from CreateSliver for slice lnevers-1slice at https://www.emulab.net/protogeni/xmlrpc/am/2.0:
     236INFO:omni:Writing to 'lnevers-1slice-manifest-rspec-www-emulab-net-protogeniv2.xml'
     237INFO:omni:Wrote result of createsliver for slice: lnevers-1slice at AM: https://www.emulab.net/protogeni/xmlrpc/am/2.0
     238to file lnevers-1slice-manifest-rspec-www-emulab-net-protogeniv2.xml
     239INFO:omni: ------------------------------------------------------------
     240INFO:omni: Completed createsliver:
     241
     242  Options as run:
     243                aggregate: ['pg-utah']
     244                framework: pg
     245                getversionCacheName: /home/lnevers/.gcf/get_version_cache.json
     246                output: True
     247
     248  Args: createsliver lnevers-1slice emulab.rspec
     249
     250  Result Summary: Got Reserved resources RSpec from www-emulab-net-protogeniv2
     251   Saved createsliver results to lnevers-1slice-manifest-rspec-www-emulab-net-protogeniv2.xml. 
     252INFO:omni: ============================================================
     253
     254}}}
     255
     256The manifest RSpec ''lnevers-1slice-manifest-rspec-www-emulab-net-protogeniv2.xml''- the result of your reservation - looks like this:
     257{{{
     258#!xml
     259<?xml version="1.0" ?>
     260  <!-- Reserved resources for:
     261        Slice: lnevers-1slice
     262        at AM:
     263        URN: unspecified_AM_URN
     264        URL: https://www.emulab.net/protogeni/xmlrpc/am/2.0
     265 -->
     266  <rspec type="manifest" xmlns="http://www.geni.net/resources/rspec/3"
     267  xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1"
     268  xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1"
     269  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     270  xsi:schemaLocation="http://www.geni.net/resources/rspec/3
     271  http://www.geni.net/resources/rspec/3/manifest.xsd">   
     272
     273    <node client_id="geni1" component_id="urn:publicid:IDN+emulab.net+node+pc505"
     274    component_manager_id="urn:publicid:IDN+emulab.net+authority+cm" exclusive="true"
     275    sliver_id="urn:publicid:IDN+emulab.net+sliver+91194">
     276   
     277      <sliver_type name="raw-pc"/>   
     278      <rs:vnode name="pc505" xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1"/>   
     279      <host name="geni1.lnevers-1slice.pgeni-gpolab-bbn-com.emulab.net"/>    <services>     
     280      <login authentication="ssh-keys" hostname="pc505.emulab.net" port="22" username="lnevers"/>   
     281      </services>  </node> 
     282   
     283    <node client_id="geni2" component_id="urn:publicid:IDN+emulab.net+node+pc484"
     284    component_manager_id="urn:publicid:IDN+emulab.net+authority+cm" exclusive="true"
     285    sliver_id="urn:publicid:IDN+emulab.net+sliver+91195">
     286   
     287      <sliver_type name="raw-pc"/>   
     288      <rs:vnode name="pc484" xmlns:rs="http://www.protogeni.net/resources/rspec/ext/emulab/1"/>   
     289      <host name="geni2.lnevers-1slice.pgeni-gpolab-bbn-com.emulab.net"/>    <services>     
     290      <login authentication="ssh-keys" hostname="pc484.emulab.net" port="22" username="lnevers"/>   
     291      </services>  </node> 
     292</rspec>
     293
     294}}}
     295
     296== Add PlanetLab resources to GPO PG slice ==
     297
     298To request three PlanetLab nodes, the following RSpec named planet.rspec was used for this example; your RSpec will be specific to your experiment requirements.
     299
     300This example uses ProtoGENI V2 RSpec format, to generate the ProtoGENI V2 request from the Advertisement:
     301 * Change the RSpec headers to specify that this is a request, using the headers shown below
     302 * Pull out only the nodes you wish to reserve - ensure they say {{{available now="true"}}}
     303 * For each node
     304  * Add an attribute {{{client_id}}} with a nickname
     305  * Remove the {{{available}}} sub-element
     306  * Add the sub-element {{{<sliver_type name="plab-vnode"/>}}}
     307
     308{{{
     309#!xml
     310<?xml version="1.0" ?>
     311<!-- Resources at AM:
     312        URN: unspecified_AM_URN
     313        URL: http://www.planet-lab.org:12346
     314 -->
     315<rspec type="request"
     316       xmlns="http://www.protogeni.net/resources/rspec/2"
     317       xmlns:emulab="http://www.protogeni.net/resources/rspec/ext/emulab/1"
     318       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     319       xsi:schemaLocation="http://www.protogeni.net/resources/rspec/2
     320       http://www.protogeni.net/resources/rspec/2/request.xsd
     321       http://www.protogeni.net/resources/rspec/ext/emulab/1
     322       http://www.protogeni.net/resources/rspec/ext/emulab/1/ptop_extension.xsd">
     323  <node
     324    component_id="urn:publicid:IDN+plc:rit+node+planet2.cs.rit.edu"
     325    component_manager_id="urn:publicid:IDN+plc+authority+am"
     326    component_name="planet2.cs.rit.edu" exclusive="false"
     327    client_id="ritpl2">   
     328      <hardware_type name="plab-pc"/>   
     329      <hardware_type name="pc"/>   
     330      <location country="us" latitude="43.0844" longitude="-77.6799"/>   
     331      <sliver_type name="plab-vnode"/>   
     332  </node> 
     333  <node
     334    component_id="urn:publicid:IDN+plc:williams+node+planetlab3.williams.edu"
     335    component_manager_id="urn:publicid:IDN+plc+authority+am"
     336    component_name="planetlab3.williams.edu" exclusive="false"
     337    client_id="williamspl3">   
     338      <hardware_type name="plab-pc"/>   
     339      <hardware_type name="pc"/>   
     340      <location country="us" latitude="42.71" longitude="-73.2"/>   
     341      <sliver_type name="plab-vnode"/>   
     342  </node> 
     343  <node
     344    component_id="urn:publicid:IDN+plc:bbn+node+plnode-03.gpolab.bbn.com"
     345    component_manager_id="urn:publicid:IDN+plc+authority+am"
     346    component_name="plnode-03.gpolab.bbn.com" exclusive="false"
     347    client_id="gpopl3">   
     348      <hardware_type name="plab-pc"/>   
     349      <hardware_type name="pc"/>   
     350      <location country="us" latitude="42.3907" longitude="-71.1478"/>   
     351      <sliver_type name="plab-vnode"/>   
     352  </node> 
     353</rspec>
     354}}}
     355
     356To request the three !PlanetLab nodes, a sliver was created within !PlanetLab with the RSpec above using the following command:
     357
     358{{{
     359$ omni.py -a plc -o createsliver --api-version 2  lnevers-1slice planet.rspec
     360INFO:omni:Loading config file omni_config
     361INFO:omni:Using control framework pgeni
     362INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice expires on 2012-01-30 00:00:00 UTC
     363INFO:omni:Creating sliver(s) from rspec file planet.rspec for slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice
     364INFO:omni:Writing result of createsliver for slice: lnevers-1slice at AM: http://www.planet-lab.org:12346 to file lnevers-1slice-manifest-rspec-www-planet-lab-org.xml
     365INFO:omni:Writing to 'lnevers-1slice-manifest-rspec-www-planet-lab-org.xml'
     366INFO:omni: ------------------------------------------------------------
     367INFO:omni: Completed createsliver:
     368
     369  Options as run:
     370                aggregate: http://www.planet-lab.org:12346
     371                api_version: 2
     372                framework: pgeni
     373                native: True
     374                output: True
     375
     376  Args: createsliver lnevers-1slice planet.rspec
     377
     378  Result Summary: Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice expires on 2012-01-30 00:00:00 UTC
     379Reserved resources on http://www.planet-lab.org:12346.
     380   Saved createsliver results to lnevers-1slice-manifest-rspec-www-planet-lab-org.xml. 
     381INFO:omni: ============================================================
     382}}}
     383
     384The resulting manifest RSpec ''lnevers-1slice-manifest-rspec-www-planet-lab-org.xml'' is this:
     385{{{
     386#!xml
     387<?xml version="1.0" ?>
     388<!-- Reserved resources for:
     389        Slice: lnevers-1slice
     390        At AM:
     391        URL: http://www.planet-lab.org:12346
     392 -->
     393<rspec expires="2012-01-23T13:12:32Z" generated="2012-01-09T18:12:35Z" type="manifest" xmlns="http://www.protogeni.net/resources/rspec/2" xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1" x
     394mlns: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.proto
     395geni.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"> 
     396    <node client_id="plnode-03.gpolab.bbn.com" 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
     397.bbn.com" exclusive="false" sliver_id="urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice:23324:13627:0">   
     398        <hardware_type name="plab-pc"/>   
     399        <hardware_type name="pc"/>   
     400        <location country="unknown" latitude="42.3907" longitude="-71.1478"/>   
     401        <interface client_id="13627:2918" component_id="urn:publicid:IDN+plc+interface+node13627:eth0"/>   
     402        <services>     
     403            <login authentication="ssh-keys" hostname="plnode-03.gpolab.bbn.com" port="22" username="pgenigpolabbbncom_lnevers1slice"/>     
     404        </services>   
     405        <sliver_type name="plab-vserver"/>   
     406    </node> 
     407    <node client_id="planetlab3.williams.edu" component_id="urn:publicid:IDN+plc:williams+node+planetlab3.williams.edu" component_manager_id="urn:publicid:IDN+plc+authority+cm" component_name="planetlab3.wi
     408lliams.edu" exclusive="false" sliver_id="urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice:23324:10860:0">   
     409        <hardware_type name="plab-pc"/>   
     410        <hardware_type name="pc"/>   
     411        <location country="unknown" latitude="42.71" longitude="-73.2"/>   
     412        <interface client_id="10860:1643" component_id="urn:publicid:IDN+plc+interface+node10860:eth0"/>   
     413        <services>     
     414            <login authentication="ssh-keys" hostname="planetlab3.williams.edu" port="22" username="pgenigpolabbbncom_lnevers1slice"/>     
     415        </services>   
     416        <sliver_type name="plab-vserver"/>   
     417    </node> 
     418</rspec>
     419}}}
     420
     421Note that your login for your nodes is available by running {{{sliverstatus}}}.
     422
     423As 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 [mailto:help@geni.net].
     424
     425== Checking sliver resource status ==
     426
     427Once 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:
     428
     429{{{
     430<?xml version="1.0" ?>
     431<!-- Reserved resources for:
     432        Slice: lnevers-1slice
     433        At AM:
     434        URL: http://www.planet-lab.org:12346
     435 -->
     436
     437<rspec expires="2012-01-23T13:12:32Z" generated="2012-01-09T18:12:35Z" type="manifest" xmlns="http://www.protogeni.net/resources/rspec/2" xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1" x
     438mlns: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.proto
     439geni.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"> 
     440    <node client_id="plnode-03.gpolab.bbn.com" 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
     441.bbn.com" exclusive="false" sliver_id="urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice:23324:13627:0">   
     442        <hardware_type name="plab-pc"/>   
     443        <hardware_type name="pc"/>   
     444        <location country="unknown" latitude="42.3907" longitude="-71.1478"/>   
     445        <interface client_id="13627:2918" component_id="urn:publicid:IDN+plc+interface+node13627:eth0"/>   
     446        <services>     
     447            <login authentication="ssh-keys" hostname="plnode-03.gpolab.bbn.com" port="22" username="pgenigpolabbbncom_lnevers1slice"/>     
     448        </services>   
     449$ omni.py -a pg-utah lnevers-1slice
     450INFO:omni:Loading config file omni_config
     451INFO:omni:Using control framework pgeni
     452INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice expires on 2012-01-30 00:00:00 UTC
     453INFO:omni:Status of Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice:
     454INFO:omni:Sliver status for Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice at AM URL https://www.emulab.net/protogeni/xmlrpc/am
     455INFO:omni:{'geni_resources': [{'geni_error': '',
     456                     'geni_status': 'ready',
     457                     'geni_urn': 'urn:publicid:IDN+emulab.net+sliver+68392',
     458                     'pg_manifest': {'attributes': {'component_id': 'urn:publicid:IDN+emulab.net+node+pc333',
     459                                                    'component_manager_id': 'urn:publicid:IDN+emulab.net+authority+cm',
     460                                                    'exclusive': 'true',
     461                                                    'sliver_id': 'urn:publicid:IDN+emulab.net+sliver+68392',
     462                                                    'virtual_id': 'geni1',
     463                                                    'virtualization_type': 'emulab-vnode',
     464                                                    'xmlns': 'http://www.protogeni.net/resources/rspec/2',
     465                                                    'xmlns:emulab': 'http://www.protogeni.net/resources/rspec/ext/emulab/1'},
     466                                     'children': [{'attributes': {'name': 'raw-pc'},
     467                                                   'children': [],
     468                                                   'name': 'sliver_type'},
     469                                                  {'attributes': {'name': 'pc333'},
     470                                                   'children': [],
     471                                                   'name': 'emulab:vnode'},
     472                                                  {'attributes': {'name': 'geni1.lnevers-1slice.pgeni-gpolab-bbn-com.emulab.net'},
     473                                                   'children': [],
     474                                                   'name': 'host'},
     475                                                  {'attributes': {},
     476                                                   'children': [{'attributes': {'authentication': 'ssh-keys',
     477                                                                                'hostname': 'pc333.emulab.net',
     478                                                                                'port': 22,
     479                                                                                'username': 'lnevers'},
     480                                                                 'children': [],
     481                                                                 'name': 'login'}],
     482                                                   'name': 'services'}],
     483                                     'name': 'node'},
     484                     'pg_status': 'ready'},
     485                    {'geni_error': '',
     486                     'geni_status': 'ready',
     487                     'geni_urn': 'urn:publicid:IDN+emulab.net+sliver+68393',
     488                     'pg_manifest': {'attributes': {'component_id': 'urn:publicid:IDN+emulab.net+node+pc350',
     489                                                    'component_manager_id': 'urn:publicid:IDN+emulab.net+authority+cm',
     490                                                    'exclusive': 'true',
     491                                                    'sliver_id': 'urn:publicid:IDN+emulab.net+sliver+68393',
     492                                                    'virtual_id': 'geni2',
     493                                                    'virtualization_type': 'emulab-vnode',
     494                                                    'xmlns': 'http://www.protogeni.net/resources/rspec/2',
     495                                                    'xmlns:emulab': 'http://www.protogeni.net/resources/rspec/ext/emulab/1'},
     496                                     'children': [{'attributes': {'name': 'raw-pc'},
     497                                                   'children': [],
     498                                                   'name': 'sliver_type'},
     499                                                  {'attributes': {'name': 'pc350'},
     500                                                   'children': [],
     501                                                   'name': 'emulab:vnode'},
     502                                                  {'attributes': {'name': 'geni2.lnevers-1slice.pgeni-gpolab-bbn-com.emulab.net'},
     503                                                   'children': [],
     504                                                   'name': 'host'},
     505                                                  {'attributes': {},
     506                                                   'children': [{'attributes': {'authentication': 'ssh-keys',
     507                                                                                'hostname': 'pc350.emulab.net',
     508                                                                                'port': 22,
     509                                                                                'username': 'lnevers'},
     510                                                                 'children': [],
     511                                                                 'name': 'login'}],
     512                                                   'name': 'services'}],
     513                                     'name': 'node'},
     514                     'pg_status': 'ready'}],
     515 'geni_status': 'ready',
     516 'geni_urn': 'urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice',
     517 'pg_expires': '2012-01-14 11:10:10',
     518 'pg_status': 'ready'}
     519INFO:omni: ------------------------------------------------------------
     520INFO:omni: Completed sliverstatus:
     521
     522  Options as run:
     523                aggregate: https://www.emulab.net/protogeni/xmlrpc/am
     524                framework: pgeni
     525                native: True
     526
     527  Args: sliverstatus lnevers-1slice
     528
     529  Result Summary: Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice expires on 2012-01-30 00:00:00 UTC
     530Returned status of slivers on 1 of 1 possible aggregates.
     531INFO:omni: ============================================================
     532}}}
     533
     534To check the ''sliverstatus'' for PL resources, but this time saving the status output to a file, the following command was issued:
     535
     536{{{
     537$ omni.py -a plc -o sliverstatus -t geni 3 --api-version 2 lnevers-1slice
     538INFO:omni:Loading config file omni_config
     539INFO:omni:Using control framework pgeni
     540INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice expires on 2012-01-30 00:00:00 UTC
     541INFO:omni:Status of Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice:
     542INFO:omni:Writing to 'lnevers-1slice-sliverstatus-www-planet-lab-org.json'
     543INFO:omni:Sliver status for Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice at AM URL http://www.planet-lab.org:12346
     544INFO:omni: ------------------------------------------------------------
     545INFO:omni: Completed sliverstatus:
     546
     547  Options as run:
     548                aggregate: http://www.planet-lab.org:12346
     549                api_version: 2
     550                framework: pgeni
     551                native: True
     552                output: True
     553                rspectype: ('geni', '3')
     554
     555  Args: sliverstatus lnevers-1slice
     556
     557  Result Summary: Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice expires on 2012-01-30 00:00:00 UTC
     558Saved sliverstatus on lnevers-1slice at AM http://www.planet-lab.org:12346 to file lnevers-1slice-sliverstatus-www-planet-lab-org.json.
     559Returned status of slivers on 1 of 1 possible aggregates.
     560INFO:omni: ============================================================
     561}}}
     562
     563And the saved status is:
     564{{{
     565{'geni_resources': [{'geni_error': '',
     566                     'geni_status': 'ready',
     567                     'geni_urn': 'urn:publicid:IDN+pgeni.gpolab.bbn.com+lnevers-1slice:23324:13627:0',
     568                     'pl_boot_state': 'boot',
     569                     'pl_hostname': 'plnode-03.gpolab.bbn.com',
     570                     'pl_last_contact': '2012-01-09T13:15:59Z'},
     571                    {'geni_error': '',
     572                     'geni_status': 'ready',
     573                     'geni_urn': 'urn:publicid:IDN+pgeni.gpolab.bbn.com+lnevers-1slice:23324:10860:0',
     574                     'pl_boot_state': 'boot',
     575                     'pl_hostname': 'planetlab3.williams.edu',
     576                     'pl_last_contact': '2012-01-09T13:13:23Z'}],
     577 'geni_status': 'ready',
     578 'geni_urn': 'urn:publicid:IDN+pgeni.gpolab.bbn.com+lnevers-1slice',
     579 'pl_expires': '2012-01-23T13:12:32Z',
     580 'pl_login': 'pgenigpolabbbncom_lnevers1slice'}
     581}}}
     582
     583
     584A 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.
     585
     586Also 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.
     587
     588Note that the Emulab PG aggregate limits slivers to a duration of 5 days and you may need to extend the sliver expiration.  For this example the pg_expires is ''2012-01-14 11:10:10'' while the pl_expires is ''2012-01-23T13:12:32Z''. Make sure that each expiration time meets your requirements for your experiment's duration.  If you need to extend the expiration, you can use the Omni ''renewsliver'' to extend each sliver. The following command is issued to modify the expiration time for the ProtoGENI resources:
     589
     590{{{
     591$ omni.py -a pg-utah renewsliver lnevers-1slice '2012-01-14 16:10:10'
     592INFO:omni:Loading config file omni_config
     593INFO:omni:Using control framework pgeni
     594INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice expires on 2012-01-30 00:00:00 UTC
     595INFO:omni:Renewing Sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice until 2012-01-14 16:10:10+00:00 (UTC)
     596INFO:omni:Renewed sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice at unspecified_AM_URN (https://www.emulab.net/protogeni/xmlrpc/am) until 2012-01-14T16:10:10+00:00 (UTC)
     597INFO:omni: ------------------------------------------------------------
     598INFO:omni: Completed renewsliver:
     599
     600  Options as run:
     601                aggregate: https://www.emulab.net/protogeni/xmlrpc/am
     602                framework: pgeni
     603                native: True
     604
     605  Args: renewsliver lnevers-1slice 2012-01-14 16:10:10
     606
     607  Result Summary: Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice expires on 2012-01-30 00:00:00 UTC
     608Renewed sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice at unspecified_AM_URN (https://www.emulab.net/protogeni/xmlrpc/am) until 2012-01-14T16:10:10+00:00 (UTC)
     609INFO:omni: ============================================================
     610}}}
     611
     612Check status again and you will notice that the ''pg_expires'' has been modified:
     613
     614{{{
     615$ omni.py -a pg-utah sliverstatus lnevers-1slice
     616INFO:omni:Loading config file omni_config
     617INFO:omni:Using control framework pgeni
     618
     619.....
     620 'geni_status': 'ready',
     621 'geni_urn': 'urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice',
     622 'pg_expires': '2012-01-14 09:10:10',
     623 'pg_status': 'ready'}
     624INFO:omni: ------------------------------------------------------------
     625INFO:omni: Completed sliverstatus:
     626
     627  Options as run:
     628                aggregate: https://www.emulab.net/protogeni/xmlrpc/am
     629                framework: pgeni
     630                native: True
     631
     632  Args: sliverstatus lnevers-1slice
     633
     634  Result Summary: Slice urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice expires on 2012-01-30 00:00:00 UTC
     635Returned status of slivers on 1 of 1 possible aggregates.
     636INFO:omni: ============================================================
     637}}}
     638
     639== Find Slivers and List Resources in your Slice ==
     640
     641If 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.
     642
     643Run:
     644{{{
     645$ omni.py -a pg-utah -o -t ProtoGENI 2 listresources lnevers-1slice
     646INFO:omni:Loading config file omni_config
     647INFO:omni:Using control framework pgeni
     648INFO:omni:Saving output to a file.
     649INFO:omni:Gathering resources reserved for slice lnevers-1slice.
     650INFO:omni:Listed resources on 1 out of 1 possible aggregates.
     651INFO:omni:Writing to 'lnevers-1slice-rspec-www-emulab-net-protogeni.xml'
     652INFO:omni: ------------------------------------------------------------
     653INFO:omni: Completed listresources:
     654
     655  Options as run:
     656                aggregate: https://www.emulab.net/protogeni/xmlrpc/am
     657                framework: pgeni
     658                native: True
     659                output: True
     660                rspectype: ('ProtoGENI', '2')
     661
     662  Args: listresources lnevers-1slice
     663
     664  Result Summary: Retrieved resources for slice lnevers-1slice from 1 aggregates.
     665Wrote rspecs from 1 aggregates to 1 files
     666Saved listResources RSpec at unspecified_AM_URN to file lnevers-1slice-rspec-www-emulab-net-protogeni.xml. 
     667INFO:omni: ============================================================
     668
     669}}}
     670
     671The result will be a file (''lnevers-1slice-rspec-www-emulab-net.xml'') of the resources in your slice at that aggregate.
     672
     673== Verify Resources and run your Experiment ==
     674
     675Once you have the ''sliverstatus'', you have enough information to access the hosts allocated for your experiment.  Simply [wiki:HowTo/LoginToNodes 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:
     676
     677{{{
     678$ ssh pgenigpolabbbncom_lneversslice@plnode-03.gpolab.bbn.com
     679Last login: Mon Jan 2 09:20:48 2012 from sendaria.gpolab.bbn.com
     680[pgenigpolabbbncom_lneversslice@plnode-03 ~]$ ping pc203.emulab.net -c 3
     681PING pc203.emulab.net (155.98.39.3) 56(84) bytes of data.
     68264 bytes from pc203.emulab.net (155.98.39.3): icmp_seq=1 ttl=44 time=116 ms
     68364 bytes from pc203.emulab.net (155.98.39.3): icmp_seq=2 ttl=44 time=116 ms
     68464 bytes from pc203.emulab.net (155.98.39.3): icmp_seq=3 ttl=44 time=116 ms
     685
     686--- pc203.emulab.net ping statistics ---
     6873 packets transmitted, 3 received, 0% packet loss, time 2001ms
     688rtt min/avg/max/mdev = 116.385/116.595/116.997/0.398 ms
     689[pgenigpolabbbncom_lneversslice@plnode-03 ~]$
     690}}}
     691
     692Once you have verified connectivity between these hosts that have been allocated to you, you may start your experiment.
     693
     694== Delete sliver resources ==
     695
     696When 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:
     697{{{
     698$ omni.py -a pg-utah deletesliver lnevers-1slice
     699INFO:omni:Loading config file omni_config
     700INFO:omni:Using control framework pgeni
     701INFO:omni:Deleted sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice on unspecified_AM_URN at https://www.emulab.net/protogeni/xmlrpc/am
     702INFO:omni: ------------------------------------------------------------
     703INFO:omni: Completed deletesliver:
     704
     705  Options as run:
     706                aggregate: https://www.emulab.net/protogeni/xmlrpc/am
     707                framework: pgeni
     708                native: True
     709
     710  Args: deletesliver lnevers-1slice
     711
     712  Result Summary: Deleted sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice on unspecified_AM_URN at https://www.emulab.net/protogeni/xmlrpc/am
     713INFO:omni: ============================================================
     714}}}
     715
     716Also the Planetlab sliver was deleted as follows:
     717{{{
     718
     719}}}
     720
     721== List your Slices ==
     722You are responsible for remembering your slices, and what resources you have.
     723
     724If, 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.
     725
     726For example:
     727{{{
     728$ omni.py -a plc deletesliver  -t geni 3 --api-version 2 lnevers-1slice
     729INFO:omni:Loading config file omni_config
     730INFO:omni:Using control framework pgeni
     731INFO:omni:Deleted sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice on unspecified_AM_URN at http://www.planet-lab.org:12346
     732INFO:omni: ------------------------------------------------------------
     733INFO:omni: Completed deletesliver:
     734
     735  Options as run:
     736                aggregate: http://www.planet-lab.org:12346
     737                api_version: 2
     738                framework: pgeni
     739                native: True
     740                rspectype: ('geni', '3')
     741
     742  Args: deletesliver lnevers-1slice
     743
     744  Result Summary: Deleted sliver urn:publicid:IDN+pgeni.gpolab.bbn.com+slice+lnevers-1slice on unspecified_AM_URN at http://www.planet-lab.org:12346
     745INFO:omni: ============================================================
     746}}}
     747
     748Then, to see what resources you have in this slice at Planetlab:
     749{{{
     750$ omni.py -f pgeni -a plc -t geni 3 --api-version 2 listresources lnevers-1slice
     751}}}
     752
     753The results above show that the returned RSpec contains no nodes - as expected, since we had already deleted our sliver there.
     754
     755
     756Happy Experimenting!
     757
     758----
     759{{{
     760#!html
     761Email <a href="mailto:help@geni.net"> help@geni.net </a> for GENI support or email <a href="mailto:luisa.nevers@bbn.com">me</a> with feedback on this page!
     762}}}