launchpad-reviewers team mailing list archive
-
launchpad-reviewers team
-
Mailing list archive
-
Message #25043
[Merge] ~pappacena/turnip:celery-scaffolding into turnip:master
Thiago F. Pappacena has proposed merging ~pappacena/turnip:celery-scaffolding into turnip:master.
Commit message:
Celery development structure
Requested reviews:
Launchpad code reviewers (launchpad-reviewers)
For more details, see:
https://code.launchpad.net/~pappacena/turnip/+git/turnip/+merge/387680
--
Your team Launchpad code reviewers is requested to review the proposed merge of ~pappacena/turnip:celery-scaffolding into turnip:master.
diff --git a/Makefile b/Makefile
index d10a9b2..67f60cd 100644
--- a/Makefile
+++ b/Makefile
@@ -8,6 +8,7 @@ PIP_CACHE = $(CURDIR)/pip-cache
PYTHON := $(ENV)/bin/python
PSERVE := $(ENV)/bin/pserve
FLAKE8 := $(ENV)/bin/flake8
+CELERY := $(ENV)/bin/celery
PIP := $(ENV)/bin/pip
VIRTUALENV := virtualenv
@@ -64,7 +65,12 @@ endif
$(PIP) install $(PIP_ARGS) -c requirements.txt \
-e '.[test,deploy]'
-test: $(ENV)
+bootstrap-test:
+ -sudo rabbitmqctl delete_vhost turnip-test-vhost
+ -sudo rabbitmqctl add_vhost turnip-test-vhost
+ -sudo rabbitmqctl set_permissions -p "turnip-test-vhost" "guest" ".*" ".*" ".*"
+
+test: $(ENV) bootstrap-test
$(PYTHON) -m unittest discover $(ARGS) turnip
clean:
@@ -101,6 +107,24 @@ run-api: $(ENV)
run-pack: $(ENV)
$(PYTHON) turnipserver.py
+run-worker: $(ENV)
+ PYTHONPATH="turnip" $(CELERY) -A tasks worker \
+ --loglevel=info \
+ --concurrency=20 \
+ --pool=gevent
+
+run:
+ make run-api &\
+ make run-pack &\
+ make run-worker&\
+ wait;
+
+stop:
+ -pkill -f 'make run-api'
+ -pkill -f 'make run-pack'
+ -pkill -f 'make run-worker'
+ -pkill -f '$(CELERY) -A tasks worker'
+
$(PIP_CACHE): $(ENV)
mkdir -p $(PIP_CACHE)
$(PIP) install $(PIP_ARGS) -d $(PIP_CACHE) \
diff --git a/config.yaml b/config.yaml
index e078c33..99b0e7b 100644
--- a/config.yaml
+++ b/config.yaml
@@ -20,3 +20,4 @@ cgit_secret_path: null
openid_provider_root: https://testopenid.test/
site_name: git.launchpad.test
main_site_root: https://launchpad.test/
+celery_broker: pyamqp://guest@localhost//
diff --git a/requirements.txt b/requirements.txt
index 365f354..29ca5d2 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -4,9 +4,10 @@ attrs==19.3.0
Automat==20.2.0
bcrypt==3.1.7
beautifulsoup4==4.6.3
+celery==4.4.6
cffi==1.14.0
constantly==15.1.0
-contextlib2==0.4.0
+contextlib2==0.6.0
cornice==3.6.1
cryptography==2.8
docutils==0.14
@@ -15,6 +16,7 @@ envdir==0.7
extras==1.0.0
fixtures==3.0.0
flake8==2.4.0
+gevent==20.6.2
gmpy==1.17
gunicorn==19.3.0
hyperlink==19.0.0
@@ -31,6 +33,7 @@ Paste==2.0.2
PasteDeploy==2.1.0
pbr==5.4.4
pep8==1.5.7
+psutil==5.7.0
pyasn1==0.4.8
pycparser==2.17
pycrypto==2.6.1
diff --git a/setup.py b/setup.py
index 6eff51e..0c1f5f0 100755
--- a/setup.py
+++ b/setup.py
@@ -18,9 +18,11 @@ with open(os.path.join(here, 'NEWS')) as f:
README += "\n\n" + f.read()
requires = [
+ 'celery',
'contextlib2',
'cornice',
'enum34; python_version < "3.4"',
+ 'gevent',
'lazr.sshserver>=0.1.7',
'Paste',
'pygit2>=0.27.4,<0.28.0',
diff --git a/system-dependencies.txt b/system-dependencies.txt
index 845d453..8c668f0 100644
--- a/system-dependencies.txt
+++ b/system-dependencies.txt
@@ -5,4 +5,5 @@ libffi-dev
libgit2-27
libssl-dev
python-dev
+rabbitmq-server
virtualenv
diff --git a/turnip/tasks.py b/turnip/tasks.py
new file mode 100644
index 0000000..51b5d20
--- /dev/null
+++ b/turnip/tasks.py
@@ -0,0 +1,16 @@
+# Copyright 2020 Canonical Ltd. This software is licensed under the
+# GNU Affero General Public License version 3 (see the file LICENSE).
+
+from __future__ import print_function, unicode_literals, absolute_import
+
+__all__ = [
+ 'app'
+]
+
+from celery import Celery
+
+from turnip.config import config
+
+
+app = Celery('tasks', broker=config.get('celery_broker'))
+app.conf.update(imports=('turnip.api.store', ))
Follow ups