From fdc6e5bdb5692e292c90f8444c615cbf0899803f Mon Sep 17 00:00:00 2001 From: smbaker Date: Mon, 10 Oct 2011 16:04:30 -0700 Subject: [PATCH] add output option to sliverstatus --- sfa/client/sfi.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) mode change 100755 => 100644 sfa/client/sfi.py diff --git a/sfa/client/sfi.py b/sfa/client/sfi.py old mode 100755 new mode 100644 index 3aaae801..72a6f86e --- a/sfa/client/sfi.py +++ b/sfa/client/sfi.py @@ -12,6 +12,7 @@ import random import datetime import zlib import codecs +import pickle from lxml import etree from StringIO import StringIO from types import StringTypes, ListType @@ -80,6 +81,17 @@ def filter_records(type, records): # save methods +def save_variable_to_file(var, filename, format="text"): + f = open(filename, "w") + if format == "text": + f.write(str(var)) + elif format == "pickled": + f.write(pickle.dumps(var)) + else: + # this should never happen + print "unknown output format", format + + def save_rspec_to_file(rspec, filename): if not filename.endswith(".rspec"): filename = filename + ".rspec" @@ -257,6 +269,13 @@ class Sfi: help="output file format ([xml]|xmllist|hrnlist)", default="xml", choices=("xml", "xmllist", "hrnlist")) + if command in ("status"): + parser.add_option("-o", "--output", dest="file", + help="output dictionary to file", metavar="FILE", default=None) + parser.add_option("-F", "--fileformat", dest="fileformat", type="choice", + help="output file format ([text]|pickled)", default="text", + choices=("text","pickled")) + if command in ("delegate"): parser.add_option("-u", "--user", action="store_true", dest="delegate_user", default=False, @@ -1156,7 +1175,10 @@ class Sfi: call_args = [slice_urn, creds] if self.server_supports_call_id_arg(server): call_args.append(unique_call_id()) - print server.SliverStatus(*call_args) + result = server.SliverStatus(*call_args) + print result + if opts.file: + save_variable_to_file(result, opts.file, opts.fileformat) def shutdown(self, opts, args): -- 2.45.2