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
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)
#
#
-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):
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):
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)