From: Sofia Papagiannaki Date: Wed, 28 Nov 2012 16:14:57 +0000 (+0200) Subject: Provide management command for cleaning up both inactive sessions and session catalog... X-Git-Url: https://code.grnet.gr/git/astakos/commitdiff_plain/a1d12d1de28f01e19919595be2fe756bc506d2a8 Provide management command for cleaning up both inactive sessions and session catalog entries --- diff --git a/snf-astakos-app/astakos/im/management/commands/full-cleanup.py b/snf-astakos-app/astakos/im/management/commands/full-cleanup.py new file mode 100644 index 0000000..96d4a72 --- /dev/null +++ b/snf-astakos-app/astakos/im/management/commands/full-cleanup.py @@ -0,0 +1,53 @@ +# Copyright 2012 GRNET S.A. All rights reserved. +# +# Redistribution and use in source and binary forms, with or +# without modification, are permitted provided that the following +# conditions are met: +# +# 1. Redistributions of source code must retain the above +# copyright notice, this list of conditions and the following +# disclaimer. +# +# 2. Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials +# provided with the distribution. +# +# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS +# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF +# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED +# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +# POSSIBILITY OF SUCH DAMAGE. +# +# The views and conclusions contained in the software and +# documentation are those of the authors and should not be +# interpreted as representing official policies, either expressed +# or implied, of GRNET S.A. + + +from django.core.management.base import NoArgsCommand +from django.core.management import call_command +from django.utils.importlib import import_module +from django.conf import settings + +from astakos.im.models import SessionCatalog + +class Command(NoArgsCommand): + def handle_noargs(self, **options): + self.stdout.write('Cleanup sessions ...\n') + call_command('cleanup') + + self.stdout.write('Cleanup session catalog ...\n') + engine = import_module(settings.SESSION_ENGINE) + store = engine.SessionStore() + tbd = (entry for entry in SessionCatalog.objects.all() \ + if not store.exists(entry.session_key)) + for entry in tbd: + entry.delete() \ No newline at end of file diff --git a/snf-astakos-app/astakos/im/models.py b/snf-astakos-app/astakos/im/models.py index 87f3b2d..995c69d 100644 --- a/snf-astakos-app/astakos/im/models.py +++ b/snf-astakos-app/astakos/im/models.py @@ -197,7 +197,6 @@ class AstakosUser(User): for k in keys: s = engine.SessionStore(k) s.flush() -# q.all().delete() def __unicode__(self): return self.username