From: Tony Mack Date: Tue, 20 Mar 2012 00:07:50 +0000 (-0400) Subject: updated update() X-Git-Tag: sfa-2.1-4~1 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=ccea6e4b01ec9fcf3028450c15891eba7ee66e8e;p=sfa.git updated update() --- diff --git a/sfa/openstack/nova_driver.py b/sfa/openstack/nova_driver.py index 9ad1ce1d..7dee9797 100644 --- a/sfa/openstack/nova_driver.py +++ b/sfa/openstack/nova_driver.py @@ -114,18 +114,28 @@ class NovaDriver (Driver): ########## # xxx actually old_sfa_record comes filled with plc stuff as well in the original code def update (self, old_sfa_record, new_sfa_record, hrn, new_key): - pointer = old_sfa_record['pointer'] - type = old_sfa_record['type'] - + type = new_sfa_record['type'] + # new_key implemented for users only if new_key and type not in [ 'user' ]: raise UnknownSfaType(type) elif type == "slice": - # can update description, researchers and PI - pass + # can update project manager and description + name = Xrn(hrn).get_leaf() + researchers = sfa_record.get('researchers', []) + pis = sfa_record.get('pis', []) + project_manager = None + description = sfa_record.get('description', None) + if pis: + project_manager = Xrn(pis[0], 'user').get_leaf() + elif researchers: + project_manager = Xrn(researchers[0], 'user').get_leaf() + self.shell.auth_manager.modify_project(name, project_manager, description) + elif type == "user": - # can update slices, keys and roles + # can techinally update access_key and secret_key, + # but that is not in our scope, so we do nothing. pass return True