160 likes | 304 Views
Omni: a command line GENI resource reservation tool. Niky Riga, Sarah Edwards GENI Project Office 13 March, 2012. What is Omni?. Omni: Resource Reservation tool. A command line experimenter tool Create slices and slivers using the GENI AM API
E N D
Omni:a command line GENI resource reservation tool Niky Riga, Sarah Edwards GENI Project Office 13 March, 2012
Omni: Resource Reservation tool • A command line experimenter tool • Create slices and slivers using the GENI AM API • Written in and scriptable from Python • Use existing user accounts • ProtoGENI (incl. GPO issued) • PlanetLab • Works with aggregates that implement the GENI AM API • ProtoGENI, PlanetLab, OpenFlow, … $ omni.py createsliver aliceslice myRSpec.xml INFO:omni:Loading config file omni_config INFO:omni:Using control framework pgeni INFO:omni:Slice urn:publicid:IDN+pgeni.gpolab. expires within 1 day on 2011-07-07 INFO:omni:Creating sliver(s) from rspec file INFO:omni:Writing result of createsliver for INFO:omni:Writing to ‘aliceslice-manifest-rspe INFO:omni: ----------------------------------- INFO:omni: Completed createsliver: Options as run: aggregate: https://www.emulab. framework: pgeni native: True Args: createsliver aliceslice myRSpec.xml Result Summary: Slice urn:publicid:IDN+pgeni Reserved resources on https://www.emulab.net/p Saved createsliver results to aliceslice-man INFO:omni: =================================== http://trac.gpolab.bbn.com/gcf/wiki/Omni
Omni Command Workflow Create Slice Create Sliver Cleanup Repeat for each aggregate listresources listmyslices createsliver sliverstatus deletesliver renewsliver createslice getversion renewslice Repeat for each aggregate Legend: AM API command
Omni Commands • omni.pygetversion • omni.pycreatesliceslicename • omni.pyrenewsliceslicenamedate • omni.pylistmyslicesusername • omni.pycreatesliverslicenamereqRSpec • omni.pysliverstatusslicename • omni.pylistresources[slicename] • omni.pydeletesliverslicename
Other Omni command line arguments -c omni_configto specify an omni_config -f plcto use a different framework -t GENI 3to specify the version of the Rspec -V 2 to specify the version of the AM API ProtoGENI and PLC now both support AM API v2. When running against an AM API v2 aggregate, include both: -V 2 -t GENI 3
Getting Help • omni.py–h Lists all commands and their arguments Lists all command line options Lists Omni version Lists url to find out more information about Omni • Omni Troubleshooting page: http://trac.gpolab.bbn.com/gcf/wiki/OmniTroubleShoot • Omni Configuration instructions:http://trac.gpolab.bbn.com/gcf/wiki/OmniConfigure • Submitting a bug report: • Send e-mail to help@geni.net or omni-users@geni.net • Include: • Exact command run and output of command (if possible, run with --debug) • The omni_config you are using • The request Rspec used to create your sliver
Where to use Omni • Use at aggregates in the GENI Meso-scale • Manyof these aggregates only trust GPO credentials • In particular, this includes OpenFlow aggregates
OpenFlowMesoscale Overview OpenFlowMesoscale deployment : • is a prototype GENI infrastructure • spans multiple sites connected over Layer 2 • 2 backbone, 7 regionals, 8 campuses • is open to experimenters that want to gain early access to a Layer 2 infrastructure that combines multiple aggregates. • includes : • OpenFlowaggregates • Private PlanetLab aggregates (MyPLC) • ProtoGeni aggregates
Where are the GENI meso-scale resources? 10 OpenFlow AM (2 backbones (NLR, I2) + 8 campuses) 8 MyPLCAM - Clemson, GaTech, GPO, Indiana, Rutgers, Stanford, Wisconsin, Washington 2 ProtoGENI AM (GPO, Utah)
When to use Omni • Any time a command line tool is preferable • Scripting • Determine ssh command to login to your resource • readyToLogin.py script is very helpful for this • Also useful for tool development and testing • AM API acceptance tests use omni scripting • Could use omni scripting to write simple experimenter tools
Scripting Omni • You can write custom Python scripts • Call existing Omni functions • Easily create scripts which take the same arguments as Omni • Parse the Output • Example: examples/readyToLogin.py • Calls sliverstatus • Parses output of sliverstatus • Determines ssh command to log into node • More examples distributed with Omni http://trac.gpolab.bbn.com/gcf/wiki/OmniScriptingWithOptions and http://trac.gpolab.bbn.com/gcf/wiki/OmniScriptingExpiration
Want to try Omni? • Tutorial: Experimenter Workflow and Example Topologies • After this session at 10:00amin Pacific/Palisades Room • See Omni and Flack in action • Experimenter Coding Sprint • Thurs at 1:30pmin Pacific/Palisades Room • Get help getting started with a tool or an experiment • Experienced members of the GENI community on hand • Try it at Home • HelloGENI tutorials at: http://groups.geni.net/geni/wiki/HelloGENI http://groups.geni.net/geni/wiki/GENIExperimenter • Configuring Omni: http://trac.gpolab.bbn.com/gcf/wiki/OmniConfigure • Get help: help@geni.net or omni-users@geni.net