from sfa.rspecs.rspec_version import BaseVersion from sfa.rspecs.rspec_elements import RSpecElement, RSpecElements class PGv2Ad(PGv2): enabled = True type = 'ProtoGENI' content_type = 'ad' version = '2' schema = 'http://www.protogeni.net/resources/rspec/2/ad.xsd' namespace = 'http://www.protogeni.net/resources/rspec/2' extensions = { 'flack': "http://www.protogeni.net/resources/rspec/ext/flack/1", 'planetlab': "http://www.planet-lab.org/resources/sfa/ext/planetlab/1", } template = '' class PGv2Request(PGv2): enabled = True type = 'ProtoGENI' content_type = 'request' version = '2' schema = 'http://www.protogeni.net/resources/rspec/2/request.xsd' namespace = 'http://www.protogeni.net/resources/rspec/2' extensions = { 'flack': "http://www.protogeni.net/resources/rspec/ext/flack/1", 'planetlab': "http://www.planet-lab.org/resources/sfa/ext/planetlab/1", } template = '' class PGv2Manifest(PGv2): enabled = True type = 'ProtoGENI' content_type = 'manifest' version = '2' schema = 'http://www.protogeni.net/resources/rspec/2/manifest.xsd' namespace = 'http://www.protogeni.net/resources/rspec/2' extensions = { 'flack': "http://www.protogeni.net/resources/rspec/ext/flack/1", 'planetlab': "http://www.planet-lab.org/resources/sfa/ext/planetlab/1", } template = '' class PGv2(BaseVersion): 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'), ] 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)