diff --git a/ckan/logic/action/get.py b/ckan/logic/action/get.py index d9ba90f2d9e..ee3cf12495b 100644 --- a/ckan/logic/action/get.py +++ b/ckan/logic/action/get.py @@ -484,6 +484,11 @@ def resource_show(context, data_dict): def resource_status_show(context, data_dict): + try: + import ckan.lib.celery_app as celery_app + except ImportError: + return {'message': 'queue is not installed on this instance'} + model = context['model'] id = get_or_bust(data_dict, 'id') diff --git a/ckan/model/__init__.py b/ckan/model/__init__.py index 08574c58375..5fb4f25ae38 100644 --- a/ckan/model/__init__.py +++ b/ckan/model/__init__.py @@ -83,14 +83,16 @@ def init_db(self): self.upgrade_db() ## make sure celery tables are made as celery only makes them after ## adding a task - import ckan.lib.celery_app as celery_app - import celery.db.session as celery_session - - ##This creates the database tables it is a slight hack to celery. - backend = celery_app.celery.backend - celery_result_session = backend.ResultSession() - engine = celery_result_session.bind - celery_session.ResultModelBase.metadata.create_all(engine) + try: + import ckan.lib.celery_app as celery_app + import celery.db.session as celery_session + ##This creates the database tables it is a slight hack to celery. + backend = celery_app.celery.backend + celery_result_session = backend.ResultSession() + engine = celery_result_session.bind + celery_session.ResultModelBase.metadata.create_all(engine) + except ImportError: + pass self.init_configuration_data() self.tables_created_and_initialised = True diff --git a/ckan/tests/logic/test_action.py b/ckan/tests/logic/test_action.py index 38dbf233815..7ff91a3b97c 100644 --- a/ckan/tests/logic/test_action.py +++ b/ckan/tests/logic/test_action.py @@ -2,6 +2,7 @@ import json from pprint import pprint from nose.tools import assert_equal, assert_raises +from nose.plugins.skip import SkipTest from pylons import config import ckan @@ -1014,7 +1015,11 @@ def test_38_user_role_bulk_update(self): def test_40_task_resource_status(self): - import ckan.lib.celery_app as celery_app + try: + import ckan.lib.celery_app as celery_app + except ImportError: + raise SkipTest('celery not installed') + backend = celery_app.celery.backend ##This creates the database tables as a side effect, can not see another way ##to make tables unless you actually create a task. diff --git a/requires/lucid_missing.txt b/requires/lucid_missing.txt index dccb362c0ec..8b5789e08c8 100644 --- a/requires/lucid_missing.txt +++ b/requires/lucid_missing.txt @@ -20,4 +20,3 @@ ofs==0.4.1 apachemiddleware==0.1.1 # markupsafe is required by webhelpers==1.2 required by formalchemy with SQLAlchemy 0.6 markupsafe==0.9.2 -celery==2.5.3