From 784aca93e2d2ee60a3e8805b39c58bbe0e76bb8c Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Sat, 12 Sep 2015 00:43:19 +0200 Subject: [PATCH 1/3] import-wcs-roles: import roles .emails and .emails_to_members fields (#8217) As we are moving from and w.c.s. role master to an authentic as role master, we must first import as much data from w.c.s. roles as possible into authentic. --- .../authentic2/management/commands/import-wcs-roles.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/hobo/agent/authentic2/management/commands/import-wcs-roles.py b/hobo/agent/authentic2/management/commands/import-wcs-roles.py index ba3e8d8..3299e77 100644 --- a/hobo/agent/authentic2/management/commands/import-wcs-roles.py +++ b/hobo/agent/authentic2/management/commands/import-wcs-roles.py @@ -84,6 +84,15 @@ class WcsRoleImporter(object): if role.name != role_tpl.name: role.name = role_tpl.name role.save() + # update emails and emails_to_members in RA + if role.emails: + ra, created = RoleAttribute.objects.get_or_create( + role=role, name='emails', kind='json', + defaults={'value': json.dumps(role.emails)) + ra, created = RoleAttribute.objects.get_or_create( + role=role, name='emails_to_members', kind='json', + defaults={'value': json.dumps(role.emails_to_members)) + def delete_dead_roles(self): '''Deletes service roles whose id is not in self.seen_ids''' @@ -104,8 +113,10 @@ class WcsRoleImporter(object): response = requests.get(signed_url, verify=app_settings.A2_VERIFY_SSL) if response.status_code == 200: for role in response.json()['data']: - yield Role(name=role['text'], external_id=str(role['slug']), + role = Role(name=role['text'], external_id=str(role['slug']), slug=str(role['slug'])) + role.emails = role['emails'] + role.emails_to_members = role['emails_to_members'] else: self.logger.warn('failed to get roles for %s (response: %s)', self.wcs_url, response.status_code) -- 2.1.4