diff --git a/eve_api/tasks.py b/eve_api/tasks.py index 3a2cf0c..fe67ece 100644 --- a/eve_api/tasks.py +++ b/eve_api/tasks.py @@ -30,8 +30,14 @@ def queue_apikey_updates(update_delay=86400, batch_size=50): @task(ignore_result=True) def import_apikey(api_userid, api_key, user=None, force_cache=False): + import_apikey_func(api_userid, api_key, user, force_cache): - log = import_apikey.get_logger('import_apikey') +@task() +def import_apikey_result(api_userid, api_key, user=None, force_cache=False): + return import_apikey_func(api_userid, api_key, user, force_cache) + +def import_apikey_func(api_userid, api_key, user=None, force_cache=False): + log = import_apikey.get_logger('import_apikey_result') log.info('Importing %s/%s' % (api_userid, api_key)) acc = import_eve_account(api_key, api_userid, force_cache=force_cache) log.debug('Completed') @@ -59,6 +65,8 @@ def import_apikey(api_userid, api_key, user=None, force_cache=False): if acc.user: update_user_access.delay(user=acc.user.id) + return acc + @task(ignore_result=True) def import_alliance_details(): diff --git a/sso/views.py b/sso/views.py index eab2c92..93766d8 100644 --- a/sso/views.py +++ b/sso/views.py @@ -104,14 +104,13 @@ def eveapi_refresh(request, userid=0): pass else: if acc.user == request.user or request.user.is_superuser: - task = import_apikey.delay(api_key=acc.api_key, api_userid=acc.api_user_id, force_cache=True, user=request.user.id) + task = import_apikey_result.delay(api_key=acc.api_key, api_userid=acc.api_user_id, force_cache=True, user=request.user.id) if request.is_ajax(): try: - task.wait(30) + acc = task.wait(30) except celery.exceptions.TimeoutError: - pass - acc = EVEAccount.objects.get(id=userid) + acc = EVEAccount.objects.get(id=userid) return HttpResponse(serializers.serialize('json', [acc]), mimetype='application/javascript') else: messages.add_message(request, messages.INFO,"Key %s has been queued to be refreshed from the API" % acc.api_user_id)