implement more methods
[sfa.git] / sfa / clientbin / sfaadmin.py
index 0102e49..df3c1d4 100755 (executable)
@@ -49,7 +49,7 @@ class RegistryCommands(Commands):
     @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') 
+          choices=('text', 'xml', 'simple'), 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:
@@ -64,15 +64,20 @@ class RegistryCommands(Commands):
     def update(self, record):
         pass
         
-    def remove(self, xrn):            
-        pass
+    @args('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn') 
+    @args('-t', '--type', dest='type', metavar='<type>', help='object type', default=None) 
+    def remove(self, xrn, type=None):
+        xrn = Xrn(xrn, type)
+        self.api.manager.Remove(self.api, xrn)            
 
-    def credential(self, xrn):
-        pass
-
-    def gid(self, xrn):
-        pass
 
+    @args('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn') 
+    @args('-t', '--type', dest='type', metavar='<type>', help='object type', default=None) 
+    def credential(self, xrn, type=None):
+        cred = self.api.manager.GetCredential(self.api, xrn, type, self.api.hrn)
+        print cred
+    
+    
 class CerficiateCommands(Commands):
     
     def import_records(self, xrn):
@@ -105,32 +110,48 @@ class AggregateCommands(Commands):
         status = self.api.manager.SliverStatus(self.api, urn, [], {})
         pprinter.pprint(status)
  
-    def resources(self, xrn):
-        pass
-
+    @args('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn', default=None)
+    @args('-r', '--rspec-version', dest='rspec_version', metavar='<rspec_version>', 
+          default='GENI', help='version/format of the resulting rspec response')  
+    def resources(self, xrn=None, rspec_version='GENI'):
+        options = {'geni_rspec_version': rspec_version}
+        if xrn:
+            options['geni_slice_urn'] = xrn
+        resources = self.api.manager.ListResources(self.api, [], options)
+        pprinter.pprint(resources)
+        
+    @args('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn', default=None)
+    @args('-r', '--rspec', dest='rspec', metavar='<rspec>', help='rspec file')  
     def create(self, xrn, rspec):
         pass
 
+    @args('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn', default=None)
     def delete(self, xrn):
-        pass 
-    
+        self.api.manager.DeleteSliver(self.api, xrn, [], {})
+    @args('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn', default=None)
     def start(self, xrn):
-        pass
+        self.api.manager.start_slice(self.api, xrn, [])
 
+    @args('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn', default=None)
     def stop(self, xrn):
-        pass      
+        self.api.manager.stop_slice(self.api, xrn, [])      
 
+    @args('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn', default=None)
     def reset(self, xrn):
-        pass
+        self.api.manager.reset_slice(self.api, xrn)
+
 
-    def ticket(self):
+    @args('-x', '--xrn', dest='xrn', metavar='<xrn>', help='object hrn/urn', default=None)
+    @args('-r', '--rspec', dest='rspec', metavar='<rspec>', help='request rspec', default=None)
+    def ticket(self, xrn, rspec):
         pass
 
 
 class SliceManagerCommands(AggregateCommands):
     
     def __init__(self, *args, **kwds):
-        self.api= Generic().make_api(interface='slicemgr')
+        self.api= Generic.the_flavour().make_api(interface='slicemgr')
 
 
 CATEGORIES = {'registry': RegistryCommands,