Statistics
| Branch: | Tag: | Revision:

root / snf-astakos-app / astakos / im / management / commands / cleanup-full.py @ def409e0

History | View | Annotate | Download (2.3 kB)

1 5e1ea6f7 Giorgos Korfiatis
# Copyright 2012, 2013 GRNET S.A. All rights reserved.
2 a1d12d1d Sofia Papagiannaki
#
3 a1d12d1d Sofia Papagiannaki
# Redistribution and use in source and binary forms, with or
4 a1d12d1d Sofia Papagiannaki
# without modification, are permitted provided that the following
5 a1d12d1d Sofia Papagiannaki
# conditions are met:
6 a1d12d1d Sofia Papagiannaki
#
7 a1d12d1d Sofia Papagiannaki
#   1. Redistributions of source code must retain the above
8 a1d12d1d Sofia Papagiannaki
#      copyright notice, this list of conditions and the following
9 a1d12d1d Sofia Papagiannaki
#      disclaimer.
10 a1d12d1d Sofia Papagiannaki
#
11 a1d12d1d Sofia Papagiannaki
#   2. Redistributions in binary form must reproduce the above
12 a1d12d1d Sofia Papagiannaki
#      copyright notice, this list of conditions and the following
13 a1d12d1d Sofia Papagiannaki
#      disclaimer in the documentation and/or other materials
14 a1d12d1d Sofia Papagiannaki
#      provided with the distribution.
15 a1d12d1d Sofia Papagiannaki
#
16 a1d12d1d Sofia Papagiannaki
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
17 a1d12d1d Sofia Papagiannaki
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 a1d12d1d Sofia Papagiannaki
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
19 a1d12d1d Sofia Papagiannaki
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
20 a1d12d1d Sofia Papagiannaki
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21 a1d12d1d Sofia Papagiannaki
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22 a1d12d1d Sofia Papagiannaki
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
23 a1d12d1d Sofia Papagiannaki
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
24 a1d12d1d Sofia Papagiannaki
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
25 a1d12d1d Sofia Papagiannaki
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
26 a1d12d1d Sofia Papagiannaki
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
27 a1d12d1d Sofia Papagiannaki
# POSSIBILITY OF SUCH DAMAGE.
28 a1d12d1d Sofia Papagiannaki
#
29 a1d12d1d Sofia Papagiannaki
# The views and conclusions contained in the software and
30 a1d12d1d Sofia Papagiannaki
# documentation are those of the authors and should not be
31 a1d12d1d Sofia Papagiannaki
# interpreted as representing official policies, either expressed
32 a1d12d1d Sofia Papagiannaki
# or implied, of GRNET S.A.
33 a1d12d1d Sofia Papagiannaki
34 a1d12d1d Sofia Papagiannaki
35 a1d12d1d Sofia Papagiannaki
from django.core.management.base import NoArgsCommand
36 a1d12d1d Sofia Papagiannaki
from django.core.management import call_command
37 a1d12d1d Sofia Papagiannaki
from django.utils.importlib import import_module
38 a1d12d1d Sofia Papagiannaki
from django.conf import settings
39 a1d12d1d Sofia Papagiannaki
40 a1d12d1d Sofia Papagiannaki
from astakos.im.models import SessionCatalog
41 a1d12d1d Sofia Papagiannaki
42 5e1ea6f7 Giorgos Korfiatis
43 a1d12d1d Sofia Papagiannaki
class Command(NoArgsCommand):
44 5e1ea6f7 Giorgos Korfiatis
    help = "Cleanup sessions and session catalog"
45 5e1ea6f7 Giorgos Korfiatis
46 a1d12d1d Sofia Papagiannaki
    def handle_noargs(self, **options):
47 d9a7f0bb Giorgos Korfiatis
        self.stderr.write('Cleanup sessions ...\n')
48 a1d12d1d Sofia Papagiannaki
        call_command('cleanup')
49 4548db7b Sofia Papagiannaki
50 d9a7f0bb Giorgos Korfiatis
        self.stderr.write('Cleanup session catalog ...\n')
51 a1d12d1d Sofia Papagiannaki
        engine = import_module(settings.SESSION_ENGINE)
52 a1d12d1d Sofia Papagiannaki
        store = engine.SessionStore()
53 5e1ea6f7 Giorgos Korfiatis
        tbd = (entry for entry in SessionCatalog.objects.all()
54 5e1ea6f7 Giorgos Korfiatis
               if not store.exists(entry.session_key))
55 a1d12d1d Sofia Papagiannaki
        for entry in tbd:
56 4548db7b Sofia Papagiannaki
            entry.delete()