#!/usr/bin/python
import sys
import copy
+from pprint import pformat
from sfa.generic import Generic
from optparse import OptionParser
-
+from pprint import PrettyPrinter
from sfa.util.xrn import Xrn
+from sfa.storage.record import SfaRecord
+from sfa.client.sfi import save_records_to_file
+pprinter = PrettyPrinter(indent=4)
+
def args(*args, **kwargs):
def _decorator(func):
def __init__(self, *args, **kwds):
self.api= Generic.the_flavour().make_api(interface='registry')
- def version(self):
- pass
+ def version(self):
+ version = self.api.manager.GetVersion(self.api, {})
+ pprinter.pprint(version)
@args('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn')
@args('-t', '--type', dest='type', metavar='<type>', help='object type', default=None)
if not type or record['type'] == type:
print "%s (%s)" % (record['hrn'], record['type'])
- def show(self, xrn, type=None, full=True):
- records = self.api.manager.Resolve(self.api, xrn, type, full)
+
+ @args('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn')
+ @args('-t', '--type', dest='type', metavar='<type>', help='object type', default=None)
+ @args('-o', '--outfile', dest='outfile', metavar='<outfile>', help='save record to file')
+ @args('-f', '--format', dest='format', metavar='<display>', type='choice',
+ choices=('text', 'xml', 'summary'), help='display record in different formats')
+ def show(self, xrn, type=None, format=None, outfile=None):
+ records = self.api.manager.Resolve(self.api, xrn, type, True)
+ for record in records:
+ sfa_record = SfaRecord(dict=record)
+ sfa_record.dump(format)
+ if outfile:
+ save_records_to_file(outfile, records)
def register(self, record):
pass
def credential(self, xrn):
pass
+ def gid(self, xrn):
+ pass
class CerficiateCommands(Commands):
def export(self, xrn):
pass
-
def display(self, xrn):
pass
+
def nuke(self):
pass
self.api= Generic.the_flavour().make_api(interface='aggregate')
def version(self):
- pass
+ version = self.api.manager.GetVersion(self.api, {})
+ pprinter.pprint(version)
def slices(self):
- pass
+ print self.api.manager.ListSlices(self.api, [], {})
+ @args('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn')
def status(self, xrn):
- pass
+ urn = Xrn(xrn, 'slice').get_urn()
+ status = self.api.manager.SliverStatus(self.api, urn, [], {})
+ pprinter.pprint(status)
def resources(self, xrn):
pass
print command.__doc__
parser.print_help()
#raise
+ raise
except Exception:
print "Command failed, please check log for more info"
raise