From 7878b50329e23b4579cfe4dfa49ab6e8488ea681 Mon Sep 17 00:00:00 2001 From: Tony Mack Date: Sat, 29 Oct 2011 10:41:47 -0400 Subject: [PATCH] initial checkin --- sfa/client/sfiAddLinks.py | 45 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100755 sfa/client/sfiAddLinks.py diff --git a/sfa/client/sfiAddLinks.py b/sfa/client/sfiAddLinks.py new file mode 100755 index 00000000..f5b28888 --- /dev/null +++ b/sfa/client/sfiAddLinks.py @@ -0,0 +1,45 @@ +#! /usr/bin/env python + +import sys +from sfa.client.sfi_commands import Commands +from sfa.rspecs.rspec import RSpec +from sfa.rspecs.version_manager import VersionManager + +command = Commands(usage="%prog [options] node1 node2...", + description="Add links to the RSpec. " + + "This command reads in an RSpec and outputs a modified " + + "RSpec. Use this to add links to your slivers") +command.add_linkfile_option() +command.prep() + +if not command.opts.linkfile: + print "Missing link list -- exiting" + command.parser.print_help() + sys.exit(1) + +if command.opts.infile: + infile=file(command.opts.infile) +else: + infile=sys.stdin +if command.opts.outfile: + outfile=file(command.opts.outfile,"w") +else: + outfile=sys.stdout +ad_rspec = RSpec(infile) +links = file(command.opts.linkfile).read().split('\n') +link_tuples = map(lambda x: tuple(x.split()), links) + +version_manager = VersionManager() +try: + 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) + request_rspec.version.merge(ad_rspec) + request_rspec.version.add_link_requests(link_tuples) +except: + print >> sys.stderr, "FAILED: %s" % links + raise + sys.exit(1) +print >>outfile, request_rspec.toxml() +sys.exit(0) -- 2.43.0