aboutsummaryrefslogtreecommitdiffstats
path: root/servo/management
diff options
context:
space:
mode:
Diffstat (limited to 'servo/management')
-rw-r--r--servo/management/commands/checkescalations.py16
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)