From 865f54ab670bd1564cc0b89d9e8ff39af90b7573 Mon Sep 17 00:00:00 2001 From: Jan Dittberner Date: Fri, 30 May 2014 18:39:51 +0200 Subject: [PATCH] use primitive fields instead of models for tasks - modify osusers.tasks and osusers.models to avoid serialization of full models for celery tasks and use the required fields only --- gnuviechadmin/osusers/models.py | 16 +++++++++++----- gnuviechadmin/osusers/tasks.py | 10 +++++----- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/gnuviechadmin/osusers/models.py b/gnuviechadmin/osusers/models.py index ef1287a..c6206b7 100644 --- a/gnuviechadmin/osusers/models.py +++ b/gnuviechadmin/osusers/models.py @@ -53,7 +53,7 @@ class Group(TimeStampedModel, models.Model): def save(self, *args, **kwargs): super(Group, self).save(*args, **kwargs) - create_ldap_group.delay(self) + create_ldap_group.delay(self.groupname, self.gid, self.descr) return self def delete(self, *args, **kwargs): @@ -94,7 +94,7 @@ class UserManager(models.Manager): password = generate_password() homedir = os.path.join(settings.OSUSER_HOME_BASEPATH, username) group = Group.objects.create(groupname=username, gid=gid) - create_ldap_group.delay(group) + create_ldap_group.delay(group.groupname, group.gid, group.descr) user = self.create(username=username, group=group, uid=uid, homedir=homedir, shell=settings.OSUSER_DEFAULT_SHELL) @@ -126,10 +126,16 @@ class User(TimeStampedModel, models.Model): return '{0} ({1})'.format(self.username, self.uid) def set_password(self, password): - create_ldap_user.delay(self, password) + create_ldap_user.delay( + self.username, self.uid, self.group.id, self.gecos, self.homedir, + self.shell, password + ) def save(self, *args, **kwargs): - create_ldap_user.delay(self, password=None) + create_ldap_user.delay( + self.username, self.uid, self.group.id, self.gecos, self.homedir, + self.shell, password=None + ) return super(User, self).save(*args, **kwargs) def delete(self, *args, **kwargs): @@ -137,7 +143,7 @@ class User(TimeStampedModel, models.Model): ag.group for ag in AdditionalGroup.objects.filter(user=self) ]: remove_ldap_user_from_group.delay(self.username, group.groupname) - delete_ldap_user.delay(self) + delete_ldap_user.delay(self.username) delete_ldap_group_if_empty.delay(self.group.groupname) self.group.delete() super(User, self).delete(*args, **kwargs) diff --git a/gnuviechadmin/osusers/tasks.py b/gnuviechadmin/osusers/tasks.py index 2cf9349..049eb65 100644 --- a/gnuviechadmin/osusers/tasks.py +++ b/gnuviechadmin/osusers/tasks.py @@ -14,13 +14,13 @@ class LdapRouter(object): @shared_task -def create_ldap_group(group): - return group.groupname +def create_ldap_group(groupname, gid, descr): + pass @shared_task -def create_ldap_user(user, password): - return user.username +def create_ldap_user(username, uid, gid, gecos, homedir, shell, password): + pass @shared_task @@ -34,7 +34,7 @@ def remove_ldap_user_from_group(username, groupname): @shared_task -def delete_ldap_user(user): +def delete_ldap_user(username): pass