Revision e336910f snf-astakos-app/astakos/im/management/commands/quota.py
b/snf-astakos-app/astakos/im/management/commands/quota.py | ||
---|---|---|
35 | 35 |
from django.core.management.base import CommandError |
36 | 36 |
|
37 | 37 |
from astakos.im.models import AstakosUser |
38 |
from astakos.im.quotas import set_user_quota, list_user_quotas, add_base_quota |
|
38 |
from astakos.im.quotas import ( |
|
39 |
qh_sync_users, list_user_quotas, add_base_quota) |
|
39 | 40 |
from astakos.im.functions import get_user_by_uuid |
40 | 41 |
from astakos.im.management.commands._common import is_uuid, is_email |
41 | 42 |
from snf_django.lib.db.transaction import commit_on_success_strict |
... | ... | |
104 | 105 |
else: |
105 | 106 |
users = AstakosUser.objects.verified() |
106 | 107 |
|
107 |
try: |
|
108 |
qh_limits, qh_quotas, astakos_i, diff_q = list_user_quotas(users) |
|
109 |
except BaseException as e: |
|
110 |
logger.exception(e) |
|
111 |
raise CommandError("Failed to compute quota.") |
|
108 |
if list_only: |
|
109 |
qh_quotas, astakos_i = list_user_quotas(users) |
|
112 | 110 |
|
113 |
info = {} |
|
114 |
for user in users: |
|
115 |
info[user.uuid] = user.email |
|
111 |
info = {}
|
|
112 |
for user in users:
|
|
113 |
info[user.uuid] = user.email
|
|
116 | 114 |
|
117 |
if list_only: |
|
118 | 115 |
print_data, labels = show_quotas(qh_quotas, astakos_i, info) |
119 | 116 |
utils.pprint_table(self.stdout, print_data, labels, |
120 | 117 |
output_format) |
121 | 118 |
|
122 |
else: |
|
119 |
elif verify or sync: |
|
120 |
qh_limits, diff_q = qh_sync_users(users, sync=sync, diff_only=True) |
|
123 | 121 |
if verify: |
124 | 122 |
self.print_verify(qh_limits, diff_q) |
125 | 123 |
if sync: |
126 |
try: |
|
127 |
set_user_quota(diff_q) |
|
128 |
except BaseException as e: |
|
129 |
logger.exception(e) |
|
130 |
raise CommandError("Failed to sync quota.") |
|
131 | 124 |
self.print_sync(diff_q) |
132 | 125 |
|
133 | 126 |
def get_user(self, user_ident): |
Also available in: Unified diff