Projet

Général

Profil

Development #8440

Ajouter le provisionning des utilisateurs

Ajouté par Benjamin Dauvergne il y a plus de 8 ans. Mis à jour il y a plus de 8 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Catégorie:
agent
Version cible:
-
Début:
30 septembre 2015
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:

Description

Je commence par définir cela au niveau des applications Django, les tests sont plus simples. Ensuite construira la version w.c.s. dessus, mais j'entrevois déjà quelques difficultés en plus pour les doublons.


Fichiers

0001-agent-common-prepare-for-user-provisionning-8440.patch (2,51 ko) 0001-agent-common-prepare-for-user-provisionning-8440.patch Benjamin Dauvergne, 30 septembre 2015 18:06
0002-agent-authentic2-make-objects-homogenous-in-a-provis.patch (7,93 ko) 0002-agent-authentic2-make-objects-homogenous-in-a-provis.patch Benjamin Dauvergne, 30 septembre 2015 18:06
0003-agent-common-add-user-provisionning-and-tests-for-co.patch (13,1 ko) 0003-agent-common-add-user-provisionning-and-tests-for-co.patch Benjamin Dauvergne, 30 septembre 2015 18:06
0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patch (4,26 ko) 0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patch Benjamin Dauvergne, 05 octobre 2015 16:33
0001-agent-common-prepare-for-user-provisionning-8440.patch (2,51 ko) 0001-agent-common-prepare-for-user-provisionning-8440.patch Benjamin Dauvergne, 06 octobre 2015 15:38
0002-agent-authentic2-make-objects-homogenous-in-a-provis.patch (9,69 ko) 0002-agent-authentic2-make-objects-homogenous-in-a-provis.patch Benjamin Dauvergne, 06 octobre 2015 15:38
0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patch (11,6 ko) 0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patch Benjamin Dauvergne, 06 octobre 2015 15:38
0003-agent-common-add-user-provisionning-and-tests-for-co.patch (13,1 ko) 0003-agent-common-add-user-provisionning-and-tests-for-co.patch Benjamin Dauvergne, 06 octobre 2015 15:38
0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patch (11,6 ko) 0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patch Benjamin Dauvergne, 12 octobre 2015 22:37
0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patch (12,6 ko) 0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patch Benjamin Dauvergne, 13 octobre 2015 11:02
0003-agent-common-add-user-provisionning-and-tests-for-co.patch (12,5 ko) 0003-agent-common-add-user-provisionning-and-tests-for-co.patch Benjamin Dauvergne, 13 octobre 2015 11:47

Demandes liées

Lié à w.c.s. - Bug #8444: Ajouter le provisionning des utilisateurs dans hobo_notifyFermé30 septembre 2015

Actions

Révisions associées

Révision fc559843 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 8 ans

agent/common: prepare for user provisionning (#8440)

We factorize the processing of notifications between a part agnostic to
the type objects and another which is specific, here process_notification()
and provision_role().

Révision 6c29ea93 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 8 ans

agent/authentic2: make objects homogenous in a provisionning message (#8440)

In order to support 'full' provisionning of different kinds of objects,
we impose that in the same message all objects are of the same type.

Révision af772167 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 8 ans

agent/common: add user provisionning and tests for common agent (#8440)

Révision 0304bc16 (diff)
Ajouté par Benjamin Dauvergne il y a plus de 8 ans

agent/authentic2: add hooks on signals to provision users (#8440)

Signals intercepted:
- post_save and post_delete on User
- m2m_changed on Role.members.through

Historique

#4

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Statut changé de Nouveau à En cours
#5

Mis à jour par Frédéric Péters il y a plus de 8 ans

Après avoir installé les patchs (ici et côté wcs), j'ai fait une modif à un utilisateur existant et semblerait-il qu'il a passé un full=True dedans :

[2015-10-12 19:11:23,768: ERROR/MainProcess] Task hobo-notify[f7dc7420-e762-4218-857d-e99ce5228caf] raised unexpected: RuntimeError('command "/home/fred/src/eo/venv/bin/python /home/fred/src/eo/fargo/manage.py hobo_notify -" failed: '' 'Traceback (most recent call last):
  File "/home/fred/src/eo/fargo/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/fred/src/eo/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/fred/src/eo/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/fred/src/eo/venv/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/home/fred/src/eo/venv/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute 
    output = self.handle(*args, **options)
  File "/home/fred/src/eo/hobo/hobo/agent/common/management/commands/hobo_notify.py", line 46, in handle
    self.process_notification(tenant, notification)
  File "/home/fred/src/eo/hobo/hobo/agent/common/management/commands/hobo_notify.py", line 160, in process_notification
    getattr(cls, 'provision_' + object_type)(issuer, action, notification['objects']['data'], full=full)
  File "/home/fred/src/eo/hobo/hobo/agent/common/management/commands/hobo_notify.py", line 79, in provision_user
    assert not full  # provisionning all users is dangerous, we prefer deprovision
AssertionError
#6

Mis à jour par Frédéric Péters il y a plus de 8 ans

Il doit y avoir un truc que je comprends très mal, ou les patchs 3 et 4 viennent de dimensions différentes :

Patch 0004, dans le signal authentic :

+def provision_user(sender, instance, **kwargs):
+    notify_agents({
+        '@type': 'provision',
+        'issuer': unicode(get_entity_id()),
+        'audience': get_audience(instance),
+        'full': True,

mais avec un seul utilisateur, et derrière, patch 0003, dans l'agent il y a le "assert not full".

#7

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

J'ai réussi à écrire le même bug dans le test et dans le code, patch corrigé.

#8

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Fichier 0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patch ajouté

Encore des corrections, et ajout d'un test de deprovisionning des utilisateurs.

#9

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Lié à Bug #8444: Ajouter le provisionning des utilisateurs dans hobo_notify ajouté
#10

Mis à jour par Frédéric Péters il y a plus de 8 ans

Il y a un toujours un '@type': 'instance' que wcs vit de la même manière.

#12

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Fichier 0004-agent-authentic2-add-hooks-on-signals-to-provision-u.patch supprimé
#13

Mis à jour par Frédéric Péters il y a plus de 8 ans

RuntimeError: command "/home/fred/src/eo/venv/bin/python /home/fred/src/eo/combo/manage.py hobo_notify -" failed: '' 'Traceback (most recent call last):
  File "/home/fred/src/eo/combo/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/home/fred/src/eo/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 385, in execute_from_command_line
    utility.execute()
  File "/home/fred/src/eo/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/home/fred/src/eo/venv/local/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
    self.execute(*args, **options.__dict__) 
  File "/home/fred/src/eo/venv/local/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
    output = self.handle(*args, **options)
  File "/home/fred/src/eo/hobo/hobo/agent/common/management/commands/hobo_notify.py", line 46, in handle
    self.process_notification(tenant, notification)
  File "/home/fred/src/eo/hobo/hobo/agent/common/management/commands/hobo_notify.py", line 160, in process_notification
    getattr(cls, 'provision_' + object_type)(issuer, action, notification['objects']['data'], full=full)
  File "/home/fred/src/eo/hobo/hobo/agent/common/management/commands/hobo_notify.py", line 85, in provision_user
    assert cls.check_valid_user(o)
AssertionError
#14

Mis à jour par Frédéric Péters il y a plus de 8 ans

(il y a seulement l'attribut uuid qui est passé)

#15

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

Correction au patch 3, ne valide que la présence du champ uuid dans agent/common/../hobo_notify.py et mise en cohérence du test.

#16

Mis à jour par Frédéric Péters il y a plus de 8 ans

Ça marche, la même modification est nécessaire côté wcs.

#17

Mis à jour par Frédéric Péters il y a plus de 8 ans

Ok pour moi pour pousser hobo et wcs, et qu'on se coordonne ensuite rapidement pour tagger des deux côtés et passer en paires vers la recette puis la prod.

#18

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Statut changé de En cours à Résolu (à déployer)
#19

Mis à jour par Benjamin Dauvergne il y a plus de 8 ans

  • Statut changé de Résolu (à déployer) à Fermé

Formats disponibles : Atom PDF