diff options
Diffstat (limited to 'servo/management')
-rw-r--r-- | servo/management/commands/checkescalations.py | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/servo/management/commands/checkescalations.py b/servo/management/commands/checkescalations.py index 488bda9..a4dfd5f 100644 --- a/servo/management/commands/checkescalations.py +++ b/servo/management/commands/checkescalations.py @@ -4,6 +4,8 @@ from django.db.models import Q from django.utils import timezone from django.core.management.base import BaseCommand, CommandError +from servo.lib.utils import empty +from servo.exceptions import ConfigurationError from servo.models import Configuration, Note, User, Escalation @@ -11,16 +13,22 @@ class Command(BaseCommand): help = "Check updates for open escalations" def handle(self, *args, **options): + # get local user to create notes as uid = Configuration.conf('imap_act') - - if uid in [None, '']: - return + + if empty(uid): + raise ConfigurationError('Incoming message user not defined') user = User.objects.get(pk=uid) tz = timezone.get_current_timezone() for i in Escalation.objects.exclude(Q(escalation_id='') | Q(status='C')): - i.gsx_account.connect(i.created_by) + # connect per-user since the escalations can be under different ship-tos + try: + i.gsx_account.connect(i.created_by) + except Exception: + continue # skip auth errors so we don't get stuck + r = i.get_escalation().lookup() aware = timezone.make_aware(r.lastModifiedTimestamp, tz) |