import sys
from sfa.client.sfi_commands import Commands
-from sfa.rspecs.rspec_parser import parse_rspec
+from sfa.rspecs.rspec import RSpec
+from sfa.rspecs.version_manager import VersionManager
command = Commands(usage="%prog [options] node1 node2...",
description="Add slivers to the RSpec. " +
outfile=file(command.opts.outfile,"w")
else:
outfile=sys.stdout
-
-rspec = parse_rspec(infile)
+ad_rspec = RSpec(infile)
nodes = file(command.opts.nodefile).read().split()
+version_manager = VersionManager()
try:
- if rspec.version['type'].lower() == 'protogeni':
- rspec.xml.set('type', 'request')
- rspec.remove_element('available')
+ type = ad_rspec.version.type
+ version_num = ad_rspec.version.version
+ request_version = version_manager._get_version(type, version_num, 'request')
+ request_rspec = RSpec(version=request_version)
slivers = [{'hostname': node} for node in nodes]
- rspec.add_slivers(slivers)
+ request_rspec.version.merge(ad_rspec)
+ request_rspec.version.add_slivers(slivers)
except:
print >> sys.stderr, "FAILED: %s" % nodes
+ raise
sys.exit(1)
-print >>outfile, rspec.toxml()
+print >>outfile, request_rspec.toxml()
sys.exit(0)