X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fclient%2FsfiAddAttribute.py;h=0242a130b5f13174ebfb3d641a51a438a1bb2328;hb=1c494e1843d857dbc63e46274c205293129b96d3;hp=33b94a3aa4a844c901c0901c7aa39f715e711816;hpb=b625e2bd933f5e2a4faf4513c1be0069d88e7521;p=sfa.git diff --git a/sfa/client/sfiAddAttribute.py b/sfa/client/sfiAddAttribute.py index 33b94a3a..0242a130 100755 --- a/sfa/client/sfiAddAttribute.py +++ b/sfa/client/sfiAddAttribute.py @@ -2,6 +2,8 @@ import sys from sfa.util.rspecHelper import RSpec, Commands +from sfa.client.sfi_commands import Commands +from sfa.rspecs.rspec_parser import parse_rspec command = Commands(usage="%prog [options] [node1 node2...]", description="Add sliver attributes to the RSpec. " + @@ -15,22 +17,29 @@ command.add_nodefile_option() command.add_attribute_options() command.prep() -attrs = command.get_attribute_dict() -for name in attrs: - for value in attrs[name]: - if not command.nodes: - try: - command.rspec.add_default_sliver_attribute(name, value) - except: - print >> sys.stderr, "FAILED: on all nodes: %s=%s" % (name, value) - else: - for node in command.nodes: +if command.opts.infile: + attrs = command.get_attribute_dict() + rspec = parse_rspec(command.opts.infile) + nodes = [] + if command.opts.nodefile: + f = open(command.opts.nodefile, "r") + nodes = f.read().split() + f.close() + + + for name in attrs: + print >> sys.stderr, name, attrs[name] + for value in attrs[name]: + if not nodes: try: - command.rspec.add_sliver_attribute(node, name, value) + rspec.add_default_sliver_attribute(name, value) except: - print >> sys.stderr, "FAILED: on node %s: %s=%s" % (node, name, value) - -print command.rspec - + print >> sys.stderr, "FAILED: on all nodes: %s=%s" % (name, value) + else: + for node in nodes: + try: + rspec.add_sliver_attribute(node, name, value) + except: + print >> sys.stderr, "FAILED: on node %s: %s=%s" % (node, name, value) - + print rspec.toxml()