From c2214e1fb856235c2fe7d9601c08a7bc10599c13 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Wed, 28 Sep 2011 09:39:58 +0100 Subject: [PATCH] Handle Expired API keys correctly --- app/eve_api/app_defines.py | 3 +++ app/eve_api/tasks/account.py | 6 ++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/eve_api/app_defines.py b/app/eve_api/app_defines.py index 73f85ba..7bb6ebe 100644 --- a/app/eve_api/app_defines.py +++ b/app/eve_api/app_defines.py @@ -7,6 +7,8 @@ API_STATUS_OK = 1 API_STATUS_AUTH_ERROR = 2 API_STATUS_OTHER_ERROR = 3 API_STATUS_ACC_EXPIRED = 4 +API_STATUS_KEY_EXPIRED = 5 + # This tuple is used to assemble the choices list for the field. API_STATUS_CHOICES = ( (API_STATUS_PENDING, 'Unknown'), @@ -14,6 +16,7 @@ API_STATUS_CHOICES = ( (API_STATUS_AUTH_ERROR, 'Auth Error'), (API_STATUS_OTHER_ERROR, 'Other Error'), (API_STATUS_ACC_EXPIRED, 'Account Expired'), + (API_STATUS_KEY_EXPIRED, 'Key Expired'), ) API_KEYTYPE_UNKNOWN = 0 diff --git a/app/eve_api/tasks/account.py b/app/eve_api/tasks/account.py index 88a3437..7929b62 100644 --- a/app/eve_api/tasks/account.py +++ b/app/eve_api/tasks/account.py @@ -38,9 +38,9 @@ def queue_apikey_updates(update_delay=86400, batch_size=50): log.info("Updating APIs older than %s" % (datetime.now() - delta)) if gargoyle.is_active('eve-cak'): - accounts = EVEAccount.objects.filter(api_last_updated__lt=(datetime.now() - delta)).exclude(api_status=API_STATUS_ACC_EXPIRED).exclude(api_status=API_STATUS_AUTH_ERROR).order_by('api_last_updated')[:batch_size] + accounts = EVEAccount.objects.filter(api_last_updated__lt=(datetime.now() - delta)).exclude(api_status__in=[API_STATUS_ACC_EXPIRED, API_STATUS_KEY_EXPIRED, API_STATUS_AUTH_ERROR]).order_by('api_last_updated')[:batch_size] else: - accounts = EVEAccount.objects.filter(api_last_updated__lt=(datetime.now() - delta)).exclude(api_status=API_STATUS_ACC_EXPIRED).exclude(api_status=API_STATUS_AUTH_ERROR).exclude(api_keytype__gt=2).order_by('api_last_updated')[:batch_size] + accounts = EVEAccount.objects.filter(api_last_updated__lt=(datetime.now() - delta)).exclude(api_status__in=[API_STATUS_ACC_EXPIRED, API_STATUS_KEY_EXPIRED, API_STATUS_AUTH_ERROR]).exclude(api_keytype__gt=2).order_by('api_last_updated')[:batch_size] log.info("%s account(s) to update" % accounts.count()) for acc in accounts: log.debug("Queueing UserID %s for update" % acc.pk) @@ -145,6 +145,8 @@ def import_apikey_func(api_userid, api_key, user=None, force_cache=False, log=lo account.api_status = API_STATUS_AUTH_ERROR elif error == '211': account.api_status = API_STATUS_ACC_EXPIRED + elif error in ['222', '223']: + account.api_status = API_STATUS_KEY_EXPIRED else: account.api_status = API_STATUS_OTHER_ERROR