X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=sfa%2Frspecs%2Felements%2Fversions%2Fpgv2Services.py;h=cfe9ba2b14f19656a8ae79724a81b0fe42e6b7b4;hb=f6ceca6a9f9cb1cb63e20817641adf16beaaffb1;hp=5cdf22cfdf349fe82b470a4e37d558b18d92002e;hpb=1797053da9abae56a22655efe188ccb3e4bbcf61;p=sfa.git diff --git a/sfa/rspecs/elements/versions/pgv2Services.py b/sfa/rspecs/elements/versions/pgv2Services.py index 5cdf22cf..cfe9ba2b 100644 --- a/sfa/rspecs/elements/versions/pgv2Services.py +++ b/sfa/rspecs/elements/versions/pgv2Services.py @@ -23,6 +23,16 @@ class PGv2Services: elif isinstance(child, list): for obj in child: service_elem.add_instance(name, obj, fields) + + # add ssh_users + if service['services_user']: + for ssh_user in service['services_user']: + ssh_user_elem = service_elem.add_element('{%s}services_user' % xml.namespaces['ssh-user'], + login=ssh_user['login'], + user_urn=ssh_user['user_urn']) + for key in ssh_user['keys']: + pkey_elem = ssh_user_elem.add_element('{%s}public_key' % xml.namespaces['ssh-user']) + pkey_elem.element.text=key @staticmethod def get_services(xml): @@ -38,6 +48,13 @@ class PGv2Services: # get login login_elems = services_elem.xpath('./default:login | ./login') service['login'] = [login_elem.get_instance(Login) for login_elem in login_elems] + + ssh_user_elems = services_elem.xpath('./ssh-user:service_user | ./service_user') + services_user = [] + for ssh_user_elem in ssh_user_elems: + services_user = ssh_user_elem.get_instance(None, fields=['login', 'user_urn']) + service['services_user'] = services_user + services.append(service) return services