applications: create roles in instance OU (#76273) #71

Merged
smihai merged 1 commits from wip/76273-applification-roles-in-ou into main 2023-10-03 10:24:30 +02:00
Owner
No description provided.
fpeters added 1 commit 2023-09-06 20:59:07 +02:00
gitea/hobo/pipeline/head This commit looks good Details
f17b36ace1
applications: create roles in instance OU (#76273)
smihai force-pushed wip/76273-applification-roles-in-ou from f17b36ace1 to be9b199a07 2023-09-21 10:28:51 +02:00 Compare
smihai changed title from WIP: applications: create roles in instance OU (#76273) to applications: create roles in instance OU (#76273) 2023-09-21 10:34:38 +02:00
Owner

J'ai rajouté le test pour couvrir le code.

J'ai rajouté le test pour couvrir le code.
bdauvergne approved these changes 2023-09-21 14:09:23 +02:00
fpeters reviewed 2023-09-21 14:23:27 +02:00
@ -459,12 +459,17 @@ class Version(models.Model):
return
roles_api_url = urllib.parse.urljoin(service['url'], 'api/roles/?update_or_create=slug')
provision_api_url = urllib.parse.urljoin(service['url'], 'api/provision/')
ou_slug_variable = Variable.objects.filter(name='ou-slug').first()
Author
Owner

Attention ça passe à côté du cas où l'installation se fait sur l'OU par défaut d'un déploiement multi-collectivités; i.e. il faudrait quand il y a des collectivités (mais pas de variable ou-slug), utiliser "default".

(je pense).

Attention ça passe à côté du cas où l'installation se fait sur l'OU par défaut d'un déploiement multi-collectivités; i.e. il faudrait quand il y a des collectivités (mais pas de variable ou-slug), utiliser "default". (je pense).
Owner

Attention ça passe à côté du cas où l'installation se fait sur l'OU par défaut d'un déploiement multi-collectivités; i.e. il faudrait quand il y a des collectivités (mais pas de variable ou-slug), utiliser "default".

En mode multi-collectivité il y a toujours la variable ou-slug de définie j'ai l'impression.
Lorsqu'il s'agit de l'instance principale la variable est lié aux services déployés.

> Attention ça passe à côté du cas où l'installation se fait sur l'OU par défaut d'un déploiement multi-collectivités; i.e. il faudrait quand il y a des collectivités (mais pas de variable ou-slug), utiliser "default". > En mode multi-collectivité il y a toujours la variable `ou-slug` de définie j'ai l'impression. Lorsqu'il s'agit de l'instance principale la variable est lié aux services déployés.
Author
Owner

Ah oui mais ça fait moche je trouve d'attraper une variable qui ne correspond pas à l'instance en cours et d'ensuite "rattraper" les choses dans la boucle; je trouverais plus simple à comprendre le déroulé qui concentrerait ça en amont de la boucle, avec commentaire donc pour rappeler la situation.

        ou_slug_variable = Variable.objects.filter(name='ou-slug').first()
        role_ou = None
        if ou_slug_variable:
            roles_api_url += '&update_or_create=ou' 
            if ou_slug_variable.service:  # main instance (variable attached to the Hobo instances)
                 role_ou = 'default'
           else:
                 role_ou = ou_slug_variable.value
...
...
            if role_ou:
                  role_info['ou'] = role_ou
Ah oui mais ça fait moche je trouve d'attraper une variable qui ne correspond pas à l'instance en cours et d'ensuite "rattraper" les choses dans la boucle; je trouverais plus simple à comprendre le déroulé qui concentrerait ça en amont de la boucle, avec commentaire donc pour rappeler la situation. ``` ou_slug_variable = Variable.objects.filter(name='ou-slug').first() role_ou = None if ou_slug_variable: roles_api_url += '&update_or_create=ou' if ou_slug_variable.service: # main instance (variable attached to the Hobo instances) role_ou = 'default' else: role_ou = ou_slug_variable.value ... ... if role_ou: role_info['ou'] = role_ou ```
bdauvergne marked this conversation as resolved
Author
Owner

Parce que c'est ma PR je ne peux pas lui demander des changements. (mais je les demande ici).

Parce que c'est ma PR je ne peux pas lui demander des changements. (mais je les demande ici).
smihai force-pushed wip/76273-applification-roles-in-ou from be9b199a07 to bbaf00e0fc 2023-09-22 10:50:15 +02:00 Compare
fpeters reviewed 2023-09-22 10:51:54 +02:00
@ -461,1 +461,4 @@
provision_api_url = urllib.parse.urljoin(service['url'], 'api/provision/')
ou_slug_variable = Variable.objects.filter(name='ou-slug').first()
if ou_slug_variable:
roles_api_url += '&update_or_create=ou'
Author
Owner

Il faut aussi passer update_or_create dans le cas de l'instance principale.

Il faut aussi passer update_or_create dans le cas de l'instance principale.
Owner

Il faut aussi passer update_or_create dans le cas de l'instance principale.

Sur l'instance principale la variable existe et donc update_or_create sera transmis. Ou je rate quelque chose.

> Il faut aussi passer update_or_create dans le cas de l'instance principale. Sur l'instance principale la variable existe et donc `update_or_create` sera transmis. Ou je rate quelque chose.
Author
Owner

C'était le même commentaire que le précédent (sur ou_slug_variable pas défini sur l'instance principale) (il ne l'est pas mais on choppe la variable posée sur un des hobo secondaires, j'ai compris)

C'était le même commentaire que le précédent (sur ou_slug_variable pas défini sur l'instance principale) (il ne l'est pas mais on choppe la variable posée sur un des hobo secondaires, j'ai compris)
bdauvergne marked this conversation as resolved
smihai force-pushed wip/76273-applification-roles-in-ou from bbaf00e0fc to ddc91fd335 2023-09-22 11:44:08 +02:00 Compare
bdauvergne approved these changes 2023-09-25 15:29:14 +02:00
bdauvergne left a comment
Owner

Ok.

Ok.
smihai force-pushed wip/76273-applification-roles-in-ou from ddc91fd335 to 9d0c00e9c9 2023-10-02 19:57:22 +02:00 Compare
Owner

J'ai poussé une nouvelle modification pour pouvoir envoyer à authentic update_or_create=slug&update_or_create=ou car sinon seul update_or_create=ou était envoyé et l'appel échouait car seul le filtre par ou était appliqué.

J'ai poussé une nouvelle modification pour pouvoir envoyer à authentic `update_or_create=slug&update_or_create=ou` car sinon seul `update_or_create=ou` était envoyé et l'appel échouait car seul le filtre par ou était appliqué.
smihai requested review from bdauvergne 2023-10-03 09:35:07 +02:00
bdauvergne approved these changes 2023-10-03 10:13:36 +02:00
@ -54,3 +54,3 @@
url = urllib.parse.urlunparse(('', '', path, params, query, fragment))
query_params = dict(urllib.parse.parse_qsl(query))
query_params = dict(urllib.parse.parse_qs(query))
Owner

parse_qs renvoie déjà un dict.

parse_qs renvoie déjà un dict.
Owner

parse_qs renvoie déjà un dict.

Yep, retiré le dict.

> parse_qs renvoie déjà un dict. Yep, retiré le `dict`.
smihai marked this conversation as resolved
smihai force-pushed wip/76273-applification-roles-in-ou from 9d0c00e9c9 to 56af8ec645 2023-10-03 10:18:58 +02:00 Compare
smihai merged commit b1fca9c6e9 into main 2023-10-03 10:24:30 +02:00
smihai deleted branch wip/76273-applification-roles-in-ou 2023-10-03 10:24:30 +02:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No Assignees
3 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: entrouvert/hobo#71
No description provided.