From: Tony Mack Date: Wed, 16 Apr 2014 23:53:21 +0000 (-0400) Subject: update user account across deployments when user record is updated X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=d4a6429c5fad57465e10d7d2d6ae5bb5abf1aa47;p=plstackapi.git update user account across deployments when user record is updated --- diff --git a/planetstack/observer/steps/sync_user_deployments.py b/planetstack/observer/steps/sync_user_deployments.py index cbbcb17..7110a0b 100644 --- a/planetstack/observer/steps/sync_user_deployments.py +++ b/planetstack/observer/steps/sync_user_deployments.py @@ -29,7 +29,6 @@ class SyncUserDeployments(OpenStackSyncStep): for user_deployment in UserDeployments.objects.all(): user_deploy_lookup[user_deployment.user].append(user_deployment.deployment) - user_deployments = [] all_deployments = Deployment.objects.filter() for user in User.objects.all(): if user.is_admin: @@ -45,13 +44,14 @@ class SyncUserDeployments(OpenStackSyncStep): expected_deployment not in user_deploy_lookup[user]: # add new record ud = UserDeployments(user=user, deployment=expected_deployment) - user_deployments.append(ud) + ud.save() + #user_deployments.append(ud) #else: # # update existing record # ud = UserDeployments.objects.get(user=user, deployment=expected_deployment) # user_deployments.append(ud) - return user_deployments + return UserDeployments.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) def sync_record(self, user_deployment): logger.info("sync'ing user %s at deployment %s" % (user_deployment.user, user_deployment.deployment.name)) diff --git a/planetstack/observer/steps/sync_users.py b/planetstack/observer/steps/sync_users.py index 2550104..71f9c0f 100644 --- a/planetstack/observer/steps/sync_users.py +++ b/planetstack/observer/steps/sync_users.py @@ -4,7 +4,7 @@ import hashlib from django.db.models import F, Q from planetstack.config import Config from observer.openstacksyncstep import OpenStackSyncStep -from core.models.user import User +from core.models.user import User, UserDeployments class SyncUsers(OpenStackSyncStep): provides=[User] @@ -14,5 +14,7 @@ class SyncUsers(OpenStackSyncStep): return User.objects.filter(Q(enacted__lt=F('updated')) | Q(enacted=None)) def sync_record(self, user): - #user.save() - pass + for user_deployment in UserDeployments.objects.filter(user=user): + # bump the 'updated' field so user account are updated across + # deployments. + user_deployment.save()