support for --researchers none so one can clean the set of users in a slice - mostly...
authorThierry Parmentelat <thierry.parmentelat@inria.fr>
Mon, 28 Apr 2014 16:17:47 +0000 (18:17 +0200)
committerThierry Parmentelat <thierry.parmentelat@inria.fr>
Mon, 28 Apr 2014 16:17:47 +0000 (18:17 +0200)
sfa/client/common.py
sfa/client/sfi.py

index b2e2fde..fb0fbcd 100644 (file)
@@ -3,7 +3,13 @@
 def optparse_listvalue_callback(option, opt, value, parser):
     former=getattr(parser.values,option.dest)
     if not former: former=[]
-    setattr(parser.values, option.dest, former+value.split(','))
+    # support for using e.g. sfi update -t slice -x the.slice.hrn -r none
+    # instead of -r '' which is painful and does not pass well through ssh
+    if value.lower()=='none':
+        newvalue=former
+    else:
+        newvalue=former+value.split(',')
+    setattr(parser.values, option.dest, newvalue)
 
 def optparse_dictvalue_callback (option, option_string, value, parser):
     try:
index 5500c96..2ce796b 100644 (file)
@@ -203,7 +203,7 @@ def load_record_from_opts(options):
         record_dict['keys'] = [pubkey]
     if hasattr(options, 'slices') and options.slices:
         record_dict['slices'] = options.slices
-    if hasattr(options, 'researchers') and options.researchers:
+    if hasattr(options, 'researchers') and options.researchers is not None:
         record_dict['researcher'] = options.researchers
     if hasattr(options, 'email') and options.email:
         record_dict['email'] = options.email
@@ -422,7 +422,7 @@ class Sfi:
             parser.add_option('-s', '--slices', dest='slices', metavar='<slices>', help='Set/replace slice xrns',
                               default='', type="str", action='callback', callback=optparse_listvalue_callback)
             parser.add_option('-r', '--researchers', dest='researchers', metavar='<researchers>', 
-                              help='Set/replace slice researchers', default='', type="str", action='callback', 
+                              help='Set/replace slice researchers - use -r none to reset', default='', type="str", action='callback', 
                               callback=optparse_listvalue_callback)
             parser.add_option('-p', '--pis', dest='pis', metavar='<PIs>', help='Set/replace Principal Investigators/Project Managers',
                               default='', type="str", action='callback', callback=optparse_listvalue_callback)