Projet

Général

Profil

0001-import-wcs-roles-import-roles-.emails-and-.emails_to.patch

Benjamin Dauvergne, 15 septembre 2015 10:43

Télécharger (2,64 ko)

Voir les différences:

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.
 .../management/commands/import-wcs-roles.py         | 21 +++++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)
hobo/agent/authentic2/management/commands/import-wcs-roles.py
84 84
            if role.name != role_tpl.name:
85 85
                role.name = role_tpl.name
86 86
                role.save()
87
        # update emails and emails_to_members in RA
88
        if role.emails:
89
            ra, created = RoleAttribute.objects.get_or_create(
90
                role=role, name='emails', kind='json',
91
                defaults={'value': json.dumps(role.emails)})
92
            if ra.value != json.dumps(role.emails):
93
                ra.value = json.dumps(role.emails)
94
                ra.save()
95
        ra, created = RoleAttribute.objects.get_or_create(
96
            role=role, name='emails_to_members', kind='json',
97
            defaults={'value': json.dumps(role.emails_to_members)})
98
        if ra.value != json.dumps(role.emails_to_members):
99
            ra.value = json.dumps(role.emails_to_members)
100
            ra.save()
87 101

  
88 102
    def delete_dead_roles(self):
89 103
        '''Deletes service roles whose id is not in self.seen_ids'''
......
104 118
        response = requests.get(signed_url, verify=app_settings.A2_VERIFY_SSL)
105 119
        if response.status_code == 200:
106 120
            for role in response.json()['data']:
107
                yield Role(name=role['text'], external_id=str(role['slug']),
108
                           slug=str(role['slug']))
121
                role = Role(name=role['text'], external_id=str(role['slug']),
122
                            slug=str(role['slug']))
123
                role.description = role.get('details', u'')
124
                role.emails = role.get('emails', [])
125
                role.emails_to_members = role.get('emails_to_members', False)
109 126
        else:
110 127
            self.logger.warn('failed to get roles for %s (response: %s)',
111 128
                             self.wcs_url, response.status_code)
112
-