initial checkin of new rspec version implementation
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Thu, 1 Sep 2011 20:46:02 +0000 (16:46 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Thu, 1 Sep 2011 20:46:02 +0000 (16:46 -0400)
sfa/rspecs/versions/__init__.py [new file with mode: 0644]
sfa/rspecs/versions/pgv2.py [new file with mode: 0644]
sfa/rspecs/versions/sfav1.py [new file with mode: 0644]

diff --git a/sfa/rspecs/versions/__init__.py b/sfa/rspecs/versions/__init__.py
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/sfa/rspecs/versions/pgv2.py b/sfa/rspecs/versions/pgv2.py
new file mode 100644 (file)
index 0000000..9504d3a
--- /dev/null
@@ -0,0 +1,32 @@
+from sfa.rspecs.rspec_elements import RSpecElement, RSpecElements
+
+class PGv2:
+    format = 'ProtoGENI'
+    type = '*'
+    version = '2'
+    schema = 'http://www.protogeni.net/resources/rspec/2/ad.xsd' 
+    namespaces = { 
+        'default' : 'http://www.protogeni.net/resources/rspec/2',
+        'flack': "http://www.protogeni.net/resources/rspec/ext/flack/1",
+        'planetlab': "http://www.planet-lab.org/resources/sfa/ext/planetlab/1", 
+    }
+    elements = [
+        RSpecElement(RSpecElements.NETWORK, 'network', '//default:node[@component_manager_id][1]'),
+        RSpecElement(RSpecElements.NODE, 'node', '//default:node | //node'),
+        RSpecElement(RSpecElements.SLIVER, 'sliver', '//default:node/default:sliver_type | //node/sliver_type'),
+    ]
+
+
+class PGv2Ad(PGv2):
+    schema = 'http://www.protogeni.net/resources/rspec/2/ad.xsd'
+
+class PGv2Manifest(PGv2):
+    schema = 'http://www.protogeni.net/resources/rspec/2/manifest.xsd'
+
+if __name__ == '__main__':
+    from sfa.rspecs.rspec import RSpec
+    from sfa.rspecs.rspec_elements import *
+    r = RSpec('/tmp/pg.rspec')
+    r.load_rspec_elements(PGv2.elements)
+    r.namespaces = PGv2.namespaces
+    print r.get(RSpecElements.NODE)
diff --git a/sfa/rspecs/versions/sfav1.py b/sfa/rspecs/versions/sfav1.py
new file mode 100644 (file)
index 0000000..05538cc
--- /dev/null
@@ -0,0 +1,21 @@
+from sfa.rspecs.rspec_elements import RSpecElement, RSpecElements
+
+class SFAv1:
+    format = 'SFA'
+    type = '*'
+    version = '1'
+    schema = None
+    namespaces = {}
+    elements = [
+        RSpecElement(RSpecElements.NETWORK, 'network', '//network'),
+        RSpecElement(RSpecElements.NODE, 'node', '//node'),
+        RSpecElement(RSpecElements.SLIVER, 'sliver', '//node/sliver'),
+    ] 
+
+
+if __name__ == '__main__':
+    from sfa.rspecs.rspec import RSpec
+    from sfa.rspecs.rspec_elements import *
+    r = RSpec('/tmp/resources.rspec')
+    r.load_rspec_elements(SFAv1.elements)
+    print r.get(RSpecElements.NODE)