From: Mohamed Larabi Date: Wed, 19 Jun 2013 09:17:58 +0000 (+0200) Subject: sfaadmin.py now handles extra testbed-dependent info for 'register' and 'update' X-Git-Tag: sfa-2.1-27~65 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=c552a4c294e8d1070a1703f434fc08a27628aa23;p=sfa.git sfaadmin.py now handles extra testbed-dependent info for 'register' and 'update' --- diff --git a/sfa/client/sfaadmin.py b/sfa/client/sfaadmin.py index 52778381..9dd40f87 100755 --- a/sfa/client/sfaadmin.py +++ b/sfa/client/sfaadmin.py @@ -15,7 +15,7 @@ from sfa.trust.certificate import convert_public_key from sfa.client.candidates import Candidates -from sfa.client.common import optparse_listvalue_callback, terminal_render, filter_records +from sfa.client.common import optparse_listvalue_callback, optparse_dictvalue_callback, terminal_render, filter_records pprinter = PrettyPrinter(indent=4) @@ -84,7 +84,7 @@ class RegistryCommands(Commands): def _record_dict(self, xrn=None, type=None, url=None, description=None, email='', key=None, - slices=[], researchers=[], pis=[]): + slices=[], researchers=[], pis=[], extras={}): record_dict = {} if xrn: if type: @@ -112,6 +112,8 @@ class RegistryCommands(Commands): record_dict['email'] = email if pis: record_dict['pi'] = pis + if extras: + record_dict.update(extras) return record_dict @@ -200,11 +202,13 @@ Users having a GID/PubKey correpondence NOT OK: %s and are: \n%s\n\n"%(len(NOKEY @args('-p', '--pis', dest='pis', metavar='', help='Set/replace Principal Investigators/Project Managers', default='', type="str", action='callback', callback=optparse_listvalue_callback) + @args('-X','--extra',dest='extras',default={},type='str',metavar="", action="callback", callback=optparse_dictvalue_callback, nargs=1, help="set extra/testbed-dependent flags, e.g. --extra enabled=true") + def register(self, xrn, type=None, url=None, description=None, key=None, slices='', - pis='', researchers='',email=''): + pis='', researchers='',email='', extras={}): """Create a new Registry record""" record_dict = self._record_dict(xrn=xrn, type=type, url=url, key=key, - slices=slices, researchers=researchers, email=email, pis=pis) + slices=slices, researchers=researchers, email=email, pis=pis, extras=extras) self.api.manager.Register(self.api, record_dict) @@ -222,12 +226,13 @@ Users having a GID/PubKey correpondence NOT OK: %s and are: \n%s\n\n"%(len(NOKEY @args('-p', '--pis', dest='pis', metavar='', help='Set/replace Principal Investigators/Project Managers', default='', type="str", action='callback', callback=optparse_listvalue_callback) + @args('-X','--extra',dest='extras',default={},type='str',metavar="", action="callback", callback=optparse_dictvalue_callback, nargs=1, help="set extra/testbed-dependent flags, e.g. --extra enabled=true") def update(self, xrn, type=None, url=None, description=None, key=None, slices='', - pis='', researchers=''): + pis='', researchers='', extras={}): """Update an existing Registry record""" print 'incoming PIS',pis record_dict = self._record_dict(xrn=xrn, type=type, url=url, description=description, - key=key, slices=slices, researchers=researchers, pis=pis) + key=key, slices=slices, researchers=researchers, pis=pis, extras=extras) self.api.manager.Update(self.api, record_dict) @args('-x', '--xrn', dest='xrn', metavar='', help='object hrn/urn (mandatory)')