Omni: a command line GENI resource reservation tool Niky Riga, Sarah Edwards GENI Project Office 13 March, 2012 Sponsored by the National Science Foundation WHAT IS OMNI? Sponsored by the National Science Foundation GEC 13: March 13, 2012 2 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 Sponsored by the National Science Foundation GEC 13: March 13, 2012 3 Omni Command Workflow Create Slice Create Sliver Cleanup Repeat for each aggregate getversion Repeat for each aggregate createslice listresources renewslice createsliver deletesliver sliverstatus listmyslices renewsliver Sponsored by the National Science Foundation GEC 13: March 13, 2012 Legend: AM API command 4 omni.py getversion Sponsored by the National Science Foundation GEC 13: March 13, 2012 5 Omni Commands • • • • • • • • omni.py omni.py omni.py omni.py omni.py omni.py omni.py omni.py getversion createslice slicename renewslice slicename date listmyslices username createsliver slicename reqRSpec sliverstatus slicename listresources [slicename] deletesliver slicename Sponsored by the National Science Foundation GEC 13: March 13, 2012 6 Other Omni command line arguments -c -f -t -V omni_config to specify an omni_config plc to use a different framework GENI 3 to specify the version of the Rspec 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 Sponsored by the National Science Foundation GEC 13: March 13, 2012 7 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 Sponsored by the National Science Foundation GEC 13: March 13, 2012 8 WHERE & WHEN TO USE OMNI Sponsored by the National Science Foundation GEC 13: March 13, 2012 9 Where to use Omni • Use at aggregates in the GENI Meso-scale – Many of these aggregates only trust GPO credentials – In particular, this includes OpenFlow aggregates Sponsored by the National Science Foundation GEC 13: March 13, 2012 10 OpenFlow Mesoscale Overview OpenFlow Mesoscale 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 : – OpenFlow aggregates – Private PlanetLab aggregates (MyPLC) – ProtoGeni aggregates Sponsored by the National Science Foundation GEC 13: March 13, 2012 11 Where are the GENI meso-scale resources? 10 OpenFlow AM (2 backbones (NLR, I2) + 8 campuses) 8 MyPLC AM - Clemson, GaTech, GPO, Indiana, Rutgers, Stanford, Wisconsin, Washington 2 ProtoGENI AM (GPO, Utah) Sponsored by the National Science Foundation GEC 13: March 13, 2012 12 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 Sponsored by the National Science Foundation GEC 13: March 13, 2012 13 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 Sponsored by the National Science Foundation GEC 13: March 13, 2012 14 WANT TO TRY OMNI? Sponsored by the National Science Foundation GEC 13: March 13, 2012 15 Want to try Omni? • Tutorial: Experimenter Workflow and Example Topologies – After this session at 10:00am in Pacific/Palisades Room – See Omni and Flack in action • Experimenter Coding Sprint – Thurs at 1:30pm in 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 Sponsored by the National Science Foundation GEC 13: March 13, 2012 16