1 from sfa.rspecs.versions.pgv2 import PGv2
2 from sfa.rspecs.elements.v3.node import Node
8 schema = 'http://www.geni.net/resources/rspec/3/ad.xsd'
9 namespace = 'http://www.geni.net/resources/rspec/3'
11 'flack': "http://www.protogeni.net/resources/rspec/ext/flack/1",
12 'planetlab': "http://www.planet-lab.org/resources/sfa/ext/planetlab/1",
13 'plos': "http://www.planet-lab.org/resources/sfa/ext/plos/1",
15 namespaces = dict(extensions.items() + [('default', namespace)])
19 class GENIv3Ad(GENIv3):
22 schema = 'http://www.geni.net/resources/rspec/3/ad.xsd'
23 template = """<rspec type="advertisement" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.geni.net/resources/rspec/3" xmlns:plos="http://www.planet-lab.org/resources/sfa/ext/plos/1" xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1" xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1" xmlns:opstate="http://www.geni.net/resources/rspec/ext/opstate/1" 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 http://www.planet-lab.org/resources/sfa/ext/plos/1 http://www.planet-lab.org/resources/sfa/ext/plos/1/plos.xsd http://www.geni.net/resources/rspec/ext/opstate/1 http://www.protogeni.net/resources/rspec/ext/opstate/1/ad.xsd">
24 <opstate:rspec_opstate aggregate_manager_id="urn:publicid:IDN+plc+authority+cm" start="geni_notready">
25 <opstate:sliver_type name="plab-vserver" />
26 <opstate:sliver_type name="plos-pc" />
27 <opstate:state name="geni_notready">
28 <opstate:action name="geni_start" next="geni_configuring">
29 <opstate:description>Boot the node</opstate:description>
31 <opstate:description>VMs begin powered down or inactive. They
32 must be explicitly booted before use.</opstate:description>
34 <opstate:state name="geni_configuring">
35 <opstate:wait type="geni_success" next="geni_ready" />
36 <opstate:wait type="geni_failure" next="geni_failed" />
37 <opstate:description>Booting takes a significant amount of time, so it
38 happens asynchronously while the node is in this
39 state.</opstate:description>
41 <opstate:state name="geni_ready">
42 <opstate:description>The node is up and ready to use.</opstate:description>
44 <opstate:state name="geni_failed">
45 <opstate:description>The node has failed and requires administrator
46 intervention before it can be used. Please contact support
47 for assistance.</opstate:description>
49 </opstate:rspec_opstate>
52 class GENIv3Request(GENIv3):
54 content_type = 'request'
55 schema = 'http://www.geni.net/resources/rspec/3/request.xsd'
56 template = '<rspec type="request" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.geni.net/resources/rspec/3" xmlns:plos="http://www.planet-lab.org/resources/sfa/ext/plos/1" xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1" xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1" xsi:schemaLocation="http://www.geni.net/resources/rspec/3 http://www.geni.net/resources/rspec/3/request.xsd http://www.planet-lab.org/resources/sfa/ext/planetlab/1 http://www.planet-lab.org/resources/sfa/ext/planetlab/1/planetlab.xsd http://www.planet-lab.org/resources/sfa/ext/plos/1 http://www.planet-lab.org/resources/sfa/ext/plos/1/plos.xsd"/>'
58 class GENIv2Manifest(GENIv3):
60 content_type = 'manifest'
61 schema = 'http://www.geni.net/resources/rspec/3/manifest.xsd'
62 template = '<rspec type="manifest" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.geni.net/resources/rspec/3" xmlns:plos="http://www.planet-lab.org/resources/sfa/ext/plos/1" xmlns:flack="http://www.protogeni.net/resources/rspec/ext/flack/1" xmlns:planetlab="http://www.planet-lab.org/resources/sfa/ext/planetlab/1" xmlns:ssh-user="http://www.geni.net/resources/rspec/ext/user/1" 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 http://www.planet-lab.org/resources/sfa/ext/plos/1 http://www.planet-lab.org/resources/sfa/ext/plos/1/plos.xsd http://www.geni.net/resources/rspec/ext/user/1 http://www.geni.net/resources/rspec/ext/user/1/manifest.xsd"/>'
65 def add_nodes(self, nodes, check_for_dupes=False):
66 return Node.add_nodes(self.xml, nodes)
68 def get_nodes(self, filter=None):
69 return Node.get_nodes(self.xml, filter)