X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Fplc%2Fpldriver.py;h=49908ba87a292ad4cd14ee3ba45657f2f245c54a;hb=2a47b9c79b0a6996f61eb70606be88f54cc4a398;hp=07273caa22d6450369268fcd745e3447d491fcfd;hpb=3469e7fb150342f02487ab723c88e8eb72de5c8e;p=sfa.git diff --git a/sfa/plc/pldriver.py b/sfa/plc/pldriver.py index 07273caa..49908ba8 100644 --- a/sfa/plc/pldriver.py +++ b/sfa/plc/pldriver.py @@ -540,7 +540,12 @@ class PlDriver (Driver): logger.debug ("del_target_id = %s (type=%s)"%(target_id,type(target_id))) self.shell.DeletePersonFromSlice (target_id, subject_id) elif subject_type == 'authority' and target_type == 'user' and relation_name == 'pi': - logger.log ("WARNING: XXX todo pldriver.update_relation not implemented for the 'pi' relationship") + # due to the plcapi limitations this means essentially adding pi role to all people in the list + # it's tricky to remove any pi role here, although it might be desirable + persons = self.shell.GetPersons (target_ids) + for person in persons: + if 'pi' not in person['roles']: + self.shell.AddRoleToPerson('pi',person['person_id']) else: logger.info('unexpected relation %s to maintain, %s -> %s'%(relation_name,subject_type,target_type))