From af81f9e278ebfb25a7675629aa23c3b2cf7f79db Mon Sep 17 00:00:00 2001 From: Mohamed Larabi Date: Wed, 19 Jun 2013 11:26:26 +0200 Subject: [PATCH] sfaadmin.py now handles extra testbed-dependent info for 'register' and 'update' --- sfa/client/sfaadmin.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/sfa/client/sfaadmin.py b/sfa/client/sfaadmin.py index de247bdd..169bfede 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,12 @@ 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 +225,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)') -- 2.47.0