wiki:GIR3.2_GushProto

Version 25 (modified by lnevers@bbn.com, 12 years ago) (diff)

--

GUSH Evaluation

GENI User Shell (GUSH) provides an execution management system that allows users to describe an experiment that the GUSH tool uses to locate, and prepare resources. The GUSH software can be checked out from the GUSH SVN Repository using username guest and password is provided out of band. This GUSH evaluation started with the existing check out of the tools and updated to software revision 159, 160 and 161.

Evaluation Time Frame: September 21, 2011 through the end of October 2011.

Gush Findings

Attempts to get sliver details for rspec 0.2 version failed, this was addressed by making changes to the gush parsing, waiting on feature check into repository.

Attempts to start the Nebula client failed with a java exception, which turned out to be missing files that were added in svn version 160. Nebula is part of the GUSH repository but is built separately. Also Nebula documentation is still under construction.

Gush How-to

Using and existing GUSH install at revision 142 updated to the latest revision 161, if first time install follow the instructions at the Using Gush wiki page.

 $ cd gush/trunk; svn update
 $ make clean
 (cd api && make clean)
 make[1]: Entering directory `/home/lnevers/gush/trunk/api'
 rm -f *.o libgushapi.a api-test
 make[1]: Leaving directory `/home/lnevers/gush/trunk/api'
 rm -f gush client gush-source.tar gush-bin.tar *.o \
        terminal_parser.c terminal_parser.h terminal_lexer.c terminal_lexer.log
 $ make all
 <<< lots of output deleted>>

Gush configuration

The configuration for each aggregate is manual and there is some naming inconsistencies which can cause problems. Following is a table which maps the directory.xml setting to the omni settings for each supported aggregate:

User can now start the GUSH application by selecting Gush=>Start Gush

Aggregate Name (directory.xml) resource_manager type (omni_config) aggregate type ( handle-geni.py) framework (-f)( handle-geni.py) AGGREGATE_URL (-a)
PlanetLab "geni-plc" sfa plc http://www.planet-lab.org:12346
Emulab "geni-pg" pg pg https://www.emulab.net/protogeni/xmlrpc/am

Coordinating these across configurations and commands, because it is crucial in order to get gush working. Configuration examples for PlanetLab and ProtoGENI, are capture in the subsequent sections.

Gush How-to with PlanetLab

First par of the evaluation focused on GUSH and PlanetLab resources. Using the following configuration files:

directory.xml:

<?xml version="1.0" encoding="UTF-8"?>
<gush>
    <resource_manager type="geni-plc">
      <port_map slice="bbn_gusheval" port="61414"/>
    </resource_manager>
</gush>

omni_config:

[omni]
users = lnevers

[plc]
type=sfa
authority=plc.bbn
user=plc.bbn.lnevers
cert=~/.gcf/plc.bbn.lnevers.gid
key=~/.gcf/lnevers.pkey
registry=http://www.planet-lab.org:12345
slicemgr=http://www.planet-lab.org:12347

[lnevers]
urn = urn:publicid:IDN+emulab.net+user+lnevers
keys=~/.ssh/id_rsa.pub

Started the gush tool:

 $ ./gush -P 15555
 gush> Gush has learned about the slice bbn_gusheval.
 Updated information on the slice bbn_gusheval is available.
 connect slice bbn_gusheval
 Found 4 hosts
 Initiated connections to 4 of 4 hosts.
 bbn_gusheval@plnode-03.gpolab.bbn.com:61414 has joined the mesh.
 bbn_gusheval@mtuplanetlab2.cs.mtu.edu:61414 has joined the mesh.
 bbn_gusheval@plnode-04.gpolab.bbn.com:61414 has joined the mesh.
 bbn_gusheval@miranda.planetlab.cs.umd.edu:61414 has joined the mesh.
 gush> info mesh
 Mesh:
 bbn_gusheval@plnode-03.gpolab.bbn.com:61414: connected; (fds=6,6 last_heard=1318877196)
 bbn_gusheval@plnode-04.gpolab.bbn.com:61414: connected; (fds=7,7 last_heard=1318877201)
 bbn_gusheval@mtuplanetlab2.cs.mtu.edu:61414: connected; (fds=9,9 last_heard=1318877197)
 bbn_gusheval@miranda.planetlab.cs.umd.edu:61414: connected; (fds=12,12 last_heard=1318877222)
 Summary: 4 mesh members; 0 nodes connecting.

Gush How-to with ProtoGENI

Second part of the evaluation focused on GUSH and ProtoGENI resources. Using the following omni_config:

<?xml version="1.0" encoding="UTF-8"?>
<gush>
  <resource_manager type="geni-pg">
     <port_map slice="lnevers02" port="61600"/>
    </resource_manager>
</gush>

and the following directory.xml:

[omni]
users = lnevers

[lnevers]
urn = urn:publicid:IDN+emulab.net+user+lnevers
keys=~/.ssh/id_rsa.pub

[pg]
type=pg
ch = https://www.emulab.net:443/protogeni/xmlrpc/ch
sa = https://www.emulab.net:443/protogeni/xmlrpc/sa
cert = ~/.ssl/protogeni/encrypted-cleartext.pem
key = ~/.ssl/protogeni/encrypted-cleartext.pem

Was able to connect to each of the hosts in the slice named lnevers02. Note lnevers02 used respec v0.2 resources. Gush also supports V0.1 and V2.0 rspec formats.

$ ./gush -P 15555
gush> Gush has learned about the slice lnevers02.
Updated information on the slice lnevers02 is available.
gush> connect lnevers@pc151.emulab.net
Connecting to host lnevers@pc151.emulab.net:61600.
gush> connect lnevers@pc96.emulab.net
Connecting to host lnevers@pc96.emulab.net:61600.
gush> info mesh
Mesh:
lnevers@pc151.emulab.net:61600: bootstrapping; (fds=-1,-1 last_heard=0)
lnevers@pc96.emulab.net:61600: bootstrapping; (fds=-1,-1 last_heard=0)
Summary: 0 mesh members; 2 nodes connecting.

Nebula How-to with PlanetLab

The GUSH tools includes a GUI named Nebula with is part of the gush repository, but must be compiled separately at this time. Once compiled, attempts to start the Nebula client initially failed with a java exception, which was due to missing files, an updated to revision 160 resolved this issue. The Nebula client is invoked as follows:

$ cd trunk/nebula
$ sh ./run

User must define the location of the gush software by choosing Edit=>Preferences, the preferences dialog also allows setting the location of the SSH private key:


Email us with any questions and feedback on this page!

Attachments (9)

Download all attachments as: .zip