X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=cmdline%2Fsfi.py;h=4573d7ffe17cd73758a6a04f335bf72e450f68c9;hb=06ebe34f23829d711f9ad73ff078dbbe39509977;hp=f9e53a26ec6eb1f3affa2e8f1fa9fb2aeff8287f;hpb=bbf7ca80d86c5b760b06381d780858ef0a9546e0;p=sfa.git diff --git a/cmdline/sfi.py b/cmdline/sfi.py index f9e53a26..4573d7ff 100755 --- a/cmdline/sfi.py +++ b/cmdline/sfi.py @@ -7,11 +7,11 @@ import sys import os, os.path import tempfile from optparse import OptionParser -from util.cert import Keypair, Certificate -from util.credential import Credential -from util.geniclient import GeniClient -from util.gid import create_uuid -from util.record import GeniRecord +from geni.util.cert import Keypair, Certificate +from geni.util.credential import Credential +from geni.util.geniclient import GeniClient +from geni.util.gid import create_uuid +from geni.util.record import GeniRecord sfi_dir = os.path.expanduser("~/.sfi/") slicemgr = None @@ -406,29 +406,33 @@ def update(opts, args): def nodes(opts, args): global slicemgr user_cred = get_user_cred() - if (len(args) == 0): + if not opts.format: context = None else: - context = args[0] - result = slicemgr.list_nodes(user_cred, context) - display_rspec(opts.format, result) + context = opts.format + results = slicemgr.list_nodes(user_cred, context) + if opts.format in ['rspec']: + display_rspec(results) + else: + display_list(results) if (opts.file is not None): - save_rspec_to_file(opts.file, result) + rspec = slicemgr.list_nodes(user_cred, 'rspec') + save_rspec_to_file(rspec, opts.file) return # list instantiated slices def slices(opts, args): global slicemgr user_cred = get_user_cred() - result = slicemgr.list_slices(user_cred) - display_rspec(opts.format, results) + results = slicemgr.list_slices(user_cred) + display_list(results) return # show rspec for named slice def resources(opts, args): global slicemgr slice_cred = get_slice_cred(args[0]) - result = slicemgr.get_slice_resources(slice_cred, args[0]) + result = slicemgr.list_resources(slice_cred, args[0]) display_rspec(opts.format, result) if (opts.file is not None): save_rspec_to_file(opts.file, result) @@ -474,12 +478,23 @@ def reset(opts, args): # # -def display_rspec(format, rspec): - print "display rspec" +def display_rspec(rspec): + print rspec return -def save_rspec_to_file(file, rspec): - print "save rspec" +def display_list(results): + for result in results: + print result + +def save_rspec_to_file(rspec, filename): + if not filename.startswith(os.sep): + filename = sfi_dir + filename + if not filename.endswith(".rspec"): + filename = filename + ".rspec" + + f = open(filename, 'w') + f.write(rspec) + f.close() return def display_records(recordList): @@ -487,7 +502,9 @@ def display_records(recordList): display_record(record) def display_record(record): - record.dump(False) + #record.dump(False) + info = record.getdict() + print "%s (%s)" % (info['hrn'], info['type']) return def filter_records(type, records): @@ -507,6 +524,8 @@ def save_records_to_file(filename, recordList): index = index + 1 def save_record_to_file(filename, record): + if not filename.startswith(os.sep): + filename = sfi_dir + filename print "saving record", record.name, "to file", filename str = record.save_to_string() file(filename, "w").write(str)