X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=sidebyside;f=sfa%2Fclient%2Fsfaadmin.py;h=9f5fa0ff14104e6b76543d497fcca92361345447;hb=ad6e6a07af006740c39cfbf091f7514dc7f8e507;hp=d676de64bbf5743acf1bdab50e06a07d68642b8a;hpb=2a1362bbbb19976af95ec5d07d5fa949085f2e27;p=sfa.git diff --git a/sfa/client/sfaadmin.py b/sfa/client/sfaadmin.py index d676de64..9f5fa0ff 100755 --- a/sfa/client/sfaadmin.py +++ b/sfa/client/sfaadmin.py @@ -177,6 +177,12 @@ class RegistryCommands(Commands): from sfa.importer import Importer importer = Importer() importer.run() + + def sync_db(self): + """Initiailize or upgrade the db""" + from sfa.storage.dbschema import DBSchema + dbschema=DBSchema() + dbschema.init_or_upgrade @args('-a', '--all', dest='all', metavar='', action='store_true', default=False, help='Remove all registry records and all files in %s area' % help_basedir) @@ -274,66 +280,81 @@ class AggregateCommands(Commands): version = self.api.manager.GetVersion(self.api, {}) pprinter.pprint(version) - def slices(self): - """List the running slices at this Aggregate""" - print self.api.manager.ListSlices(self.api, [], {}) @args('-x', '--xrn', dest='xrn', metavar='', help='object hrn/urn (mandatory)') def status(self, xrn): """Display the status of a slice or slivers""" urn = Xrn(xrn, 'slice').get_urn() - status = self.api.manager.SliverStatus(self.api, urn, [], {}) + status = self.api.manager.SliverStatus(self.api, [urn], {}, {}) pprinter.pprint(status) - @args('-x', '--xrn', dest='xrn', metavar='', help='object hrn/urn', default=None) @args('-r', '--rspec-version', dest='rspec_version', metavar='', default='GENI', help='version/format of the resulting rspec response') - def resources(self, xrn=None, rspec_version='GENI'): - """Display the available resources at an aggregate -or the resources allocated by a slice""" + def resources(self, rspec_version='GENI'): + """Display the available resources at an aggregate""" options = {'geni_rspec_version': rspec_version} if xrn: options['geni_slice_urn'] = Xrn(xrn, 'slice').get_urn() - print options - resources = self.api.manager.ListResources(self.api, [], options) + resources = self.api.manager.ListResources(self.api, {}, options) print resources - + + @args('-x', '--xrn', dest='xrn', metavar='', help='object hrn/urn', default=None) + @args('-r', '--rspec-version', dest='rspec_version', metavar='', + default='GENI', help='version/format of the resulting rspec response') + def describe(self, xrn, rspec_version='GENI'): + """Display the resources allocated by a slice or slivers""" + urn = Xrn(xrn, 'slice').get_urn() + options = {'geni_rspec_version': rspec_version} + status = self.api.manager.Describe(self.api, {}, [urn], options) + print status + @args('-x', '--xrn', dest='xrn', metavar='', help='slice hrn/urn (mandatory)') @args('-r', '--rspec', dest='rspec', metavar='', help='rspec file (mandatory)') @args('-u', '--user', dest='user', metavar='', help='hrn/urn of slice user (mandatory)') @args('-k', '--key', dest='key', metavar='', help="path to user's public key file (mandatory)") - def create(self, xrn, rspec, user, key): + def allocate(self, xrn, rspec, user, key): """Allocate slivers""" xrn = Xrn(xrn, 'slice') - slice_urn=xrn.get_urn() + urn=xrn.get_urn() rspec_string = open(rspec).read() user_xrn = Xrn(user, 'user') user_urn = user_xrn.get_urn() user_key_string = open(key).read() users = [{'urn': user_urn, 'keys': [user_key_string]}] - options={} - self.api.manager.CreateSliver(self, slice_urn, [], rspec_string, users, options) + options={'geni_users': users} + status = self.api.manager.Allocate(self.api, urn, {}, rspec_string, options) + print status + + @args('-x', '--xrn', dest='xrn', metavar='', help='slice hrn/urn (mandatory)') + def provision(self, xrns): + status = self.api.manager.Provision(self.api, [xrns], {}, {}) + print status @args('-x', '--xrn', dest='xrn', metavar='', help='slice hrn/urn (mandatory)') def delete(self, xrn): """Delete slivers""" - self.api.manager.DeleteSliver(self.api, xrn, [], {}) - + result = self.api.manager.DeleteSliver(self.api, [xrn], {}, {}) + print result + @args('-x', '--xrn', dest='xrn', metavar='', help='slice hrn/urn (mandatory)') - def start(self, xrn): + @args('-e', '--expiration', dest='expiration', metavar='', help='Expiration date (mandatory)') + def renew(self, xrn, expiration): """Start slivers""" - self.api.manager.start_slice(self.api, xrn, []) + result = self.api.manager.start_slice(self.api, xrn, {}, expiration, {}) + print result @args('-x', '--xrn', dest='xrn', metavar='', help='slice hrn/urn (mandatory)') - def stop(self, xrn): + def shutdown(self, xrn): """Stop slivers""" - self.api.manager.stop_slice(self.api, xrn, []) + result = self.api.manager.Shutdown(self.api, xrn, {}, {}) + print result @args('-x', '--xrn', dest='xrn', metavar='', help='slice hrn/urn (mandatory)') - def reset(self, xrn): + @args('-a', '--action', dest='action', metavar='', help='Action name (mandatory)') + def operation(self, xrn, action): """Reset sliver""" - self.api.manager.reset_slice(self.api, xrn) - + result = self.api.manager.PerformOperationalAction(self.api, [xrn], {}, action, {}) + print result # @args('-x', '--xrn', dest='xrn', metavar='', help='object hrn/urn', default=None) # @args('-r', '--rspec', dest='rspec', metavar='', help='request rspec', default=None) @@ -449,30 +470,3 @@ class SfaAdmin: print "Command failed, please check log for more info" raise -candidates_specs=[ -('create delete reset resources slices start status stop version', - [ ('ver','version'), - ('r',None), - ('re',None), - ('res',None), - ('rese','reset'), - ('reset','reset'), - ('reso','resources'), - ('sli','slices'), - ('st',None), - ('sta',None), - ('stop','stop'), - ('a',None), -]) -] - -def test_candidates (): - for (names, tuples) in candidates_specs: - names=names.split() - for (input,expected) in tuples: - got=Candidates(names).only_match(input) - if got==expected: print '.', - else: print 'X FAIL','names[',names,'] input',input,'expected',expected,'got',got - -if __name__ == '__main__': - test_candidates()