summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIan Delaney <idella4@gentoo.org>2014-04-09 10:52:50 +0000
committerIan Delaney <idella4@gentoo.org>2014-04-09 10:52:50 +0000
commita6b4a5ef187b5d3a556d36482eb6de0ef22e3e2c (patch)
treec58d6dcb5a1bc56333fe0937fd8c0caaaf6e398d /dev-python
parentAdd proxy-maintainers herd as a fallback for when maintainer is absent, leave... (diff)
downloadgentoo-2-a6b4a5ef187b5d3a556d36482eb6de0ef22e3e2c.tar.gz
gentoo-2-a6b4a5ef187b5d3a556d36482eb6de0ef22e3e2c.tar.bz2
gentoo-2-a6b4a5ef187b5d3a556d36482eb6de0ef22e3e2c.zip
bump; add IUSE redis, optional flag for tests, py3 support, update test phase, new initd and confd files submitted by S. Talpalru in Bug #505492, initially masked for further testing
(Portage version: 2.2.8-r1/cvs/Linux x86_64, signed Manifest commit with key 0xB8072B0D)
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/celery/ChangeLog10
-rw-r--r--dev-python/celery/celery-3.1.10.ebuild77
-rw-r--r--dev-python/celery/files/celery.confd-r150
-rw-r--r--dev-python/celery/files/celery.initd-r1214
-rw-r--r--dev-python/celery/metadata.xml1
5 files changed, 351 insertions, 1 deletions
diff --git a/dev-python/celery/ChangeLog b/dev-python/celery/ChangeLog
index 7b7d7f7ca6bb..453dd38e6b46 100644
--- a/dev-python/celery/ChangeLog
+++ b/dev-python/celery/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for dev-python/celery
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/celery/ChangeLog,v 1.29 2014/03/30 09:16:47 pacho Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/celery/ChangeLog,v 1.30 2014/04/09 10:52:50 idella4 Exp $
+
+*celery-3.1.10 (09 Apr 2014)
+
+ 09 Apr 2014; Ian Delaney <idella4@gentoo.org> +celery-3.1.10.ebuild,
+ +files/celery.confd-r1, +files/celery.initd-r1, metadata.xml:
+ bump; add IUSE redis, optional flag for tests, py3 support, update test phase,
+ new initd and confd files submitted by S. Talpalru in Bug #505492, initially
+ masked for further testing
30 Mar 2014; Pacho Ramos <pacho@gentoo.org> metadata.xml:
Drop maintainer as talked with him (#398377)
diff --git a/dev-python/celery/celery-3.1.10.ebuild b/dev-python/celery/celery-3.1.10.ebuild
new file mode 100644
index 000000000000..4e1722a82528
--- /dev/null
+++ b/dev-python/celery/celery-3.1.10.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-python/celery/celery-3.1.10.ebuild,v 1.1 2014/04/09 10:52:50 idella4 Exp $
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_7,3_3} )
+
+inherit distutils-r1
+
+DESCRIPTION="Celery is an open source asynchronous task queue/job queue based on distributed message passing."
+HOMEPAGE="http://celeryproject.org/ http://pypi.python.org/pypi/celery"
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="doc examples redis test"
+
+PY2_USEDEP=$(python_gen_usedep python2_7)
+RDEPEND="<dev-python/kombu-4
+ >=dev-python/kombu-3.0.14[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-1.5[${PYTHON_USEDEP}]
+ >=dev-python/anyjson-0.3.3[${PYTHON_USEDEP}]
+ dev-python/pyparsing[${PYTHON_USEDEP}]
+ >=dev-python/billiard-3.3.0.14[${PYTHON_USEDEP}]
+ <dev-python/billiard-3.4[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]"
+DEPEND="${RDEPEND}
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/gevent[${PY2_USEDEP}]
+ >=dev-python/mock-1.0.1[${PYTHON_USEDEP}]
+ virtual/python-unittest2[${PYTHON_USEDEP}]
+ dev-python/pyopenssl[${PYTHON_USEDEP}]
+ dev-python/nose-cover3[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}]
+ dev-python/pymongo[${PYTHON_USEDEP}]
+ redis? ( dev-python/redis-py[${PYTHON_USEDEP}]
+ >=dev-db/redis-2.8.0 )
+ )
+ doc? (
+ dev-python/docutils[${PYTHON_USEDEP}]
+ dev-python/sphinx[${PYTHON_USEDEP}]
+ dev-python/jinja[${PYTHON_USEDEP}]
+ dev-python/sqlalchemy[${PYTHON_USEDEP}] )"
+
+PATCHES=( "${FILESDIR}"/celery-docs.patch )
+
+python_compile_all() {
+ if use doc; then
+ mkdir docs/.build || die
+ emake -C docs html
+ fi
+}
+
+python_test() {
+ # https://github.com/celery/celery/issues/1964
+ if python_is_python3; then
+ nosetests -e test_get_task_meta_for -e test_cleanup -e test_restore_group \
+ || die "Tests failed with ${EPYTHON}"
+ else
+ nosetests -e test_cleanup || die "Tests failed with ${EPYTHON}"
+ fi
+}
+
+python_install_all() {
+ # Main celeryd init.d and conf.d
+ newinitd "${FILESDIR}/celery.initd-r1" celery
+ newconfd "${FILESDIR}/celery.confd-r1" celery
+
+ use examples && local EXAMPLES=( examples/. )
+
+ use doc && local HTML_DOCS=( docs/.build/html/. )
+
+ distutils-r1_python_install_all
+}
diff --git a/dev-python/celery/files/celery.confd-r1 b/dev-python/celery/files/celery.confd-r1
new file mode 100644
index 000000000000..17254e840d12
--- /dev/null
+++ b/dev-python/celery/files/celery.confd-r1
@@ -0,0 +1,50 @@
+# /etc/conf.d/celery
+
+##############################################################################
+# GLOBAL CONFIGURATION
+
+# User and group
+#CELERY_USER="celery"
+#CELERY_GROUP="celery"
+
+# This is generaly a good idea to set the environment correctly
+# because a lot of python package try to use HOME on init
+#export HOME="/var/lib/myproject"
+
+# Full path to the python project directory.
+#CELERY_PROJDIR="/var/lib/myproject"
+
+##############################################################################
+# CELERYD
+
+#CELERYD_ENABLED="yes"
+
+# celeryd notes
+#CELERYD_NODES="celery"
+
+# celeryd options
+# Example: set a 5 minute hard time limit for tasks, disable queue process prefetching and specify an app module from CELERY_PROJDIR
+#CELERYD_OPTS="--time-limit=300 -Ofair -A celeryapp"
+
+# Location and level of the celeryd log file
+#CELERYD_LOG_FILE=/var/log/celery/celeryd@%n.log
+#CELERYD_LOG_LEVEL="INFO"
+
+# Location of the celeryd pid file
+#CELERYD_PID_FILE=/var/run/celery/celeryd@%n.pid
+
+##############################################################################
+# CELERYBEAT
+
+#CELERYBEAT_ENABLED="yes"
+
+# celerybeat options
+#CELERYBEAT_OPTS=""
+
+# Location and level of the celerybeat log file
+#CELERYBEAT_LOG_FILE=/var/log/celery/celerybeat.log
+#CELERYBEAT_LOG_LEVEL="INFO"
+
+# Location of the celerybeat pid file
+#CELERYBEAT_PID_FILE=/var/run/celery/celerybeat.pid
+
diff --git a/dev-python/celery/files/celery.initd-r1 b/dev-python/celery/files/celery.initd-r1
new file mode 100644
index 000000000000..a8b1adf3a7a8
--- /dev/null
+++ b/dev-python/celery/files/celery.initd-r1
@@ -0,0 +1,214 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the BSD license
+# $Header: /var/cvsroot/gentoo-x86/dev-python/celery/files/celery.initd-r1,v 1.1 2014/04/09 10:52:50 idella4 Exp $
+
+extra_started_commands="reload"
+
+depend() {
+ need net
+ use rabbitmq redis logger dns
+}
+
+CELERYD_ENABLED=${CELERYD_ENABLED:-"no"}
+CELERYD_PID_FILE=${CELERYD_PID_FILE:-"/var/run/celery/celeryd@%n.pid"}
+CELERYD_LOG_FILE=${CELERYD_LOG_FILE:-"/var/log/celery/celeryd@%n.log"}
+CELERYD_LOG_LEVEL=${CELERYD_LOG_LEVEL:-"INFO"}
+CELERYD_NODES=${CELERYD_NODES:-"celery"}
+
+CELERYBEAT_ENABLED=${CELERYBEAT_ENABLED:-"no"}
+CELERYBEAT_PID_FILE=${CELERYBEAT_PID_FILE:-"/var/run/celery/celerybeat.pid"}
+CELERYBEAT_LOG_FILE=${CELERYBEAT_LOG_FILE:-"/var/log/celery/celerybeat.log"}
+CELERYBEAT_LOG_LEVEL=${CELERYBEAT_LOG_LEVEL:-"INFO"}
+
+export CELERY_LOADER
+
+CELERYD_MULTI=${CELERYD_MULTI:-"celery multi"}
+CELERYCTL=${CELERYCTL:-"celery"}
+CELERYBEAT=${CELERYBEAT:-"celery beat"}
+
+CELERYD_OPTS="$CELERYD_OPTS"
+CELERYBEAT_OPTS="$CELERYBEAT_OPTS -f $CELERYBEAT_LOG_FILE -l $CELERYBEAT_LOG_LEVEL"
+
+create_dirs() {
+ local logfile="$1"
+ local pidfile="$2"
+ local logdir=$(dirname $logfile)
+ local piddir=$(dirname $pidfile)
+
+ checkpath -d -q -m 0750 -o ${CELERY_USER:-"root"}:${CELERY_GROUP:-"root"} $logdir $piddir
+}
+
+if [ -n "$CELERY_USER" ]; then
+ DAEMON_OPTS="$DAEMON_OPTS --uid=$CELERY_USER"
+fi
+if [ -n "$CELERY_GROUP" ]; then
+ DAEMON_OPTS="$DAEMON_OPTS --gid=$CELERY_GROUP"
+fi
+
+checkconfig() {
+ if [ ! -c /dev/null ]; then
+ eerror "/dev/null is not a character device!"
+ return 1
+ fi
+
+ if [ -z "$CELERY_PROJDIR" ]; then
+ eerror "Missing CELERY_PROJDIR variable"
+ return 1
+ fi
+
+ if yesno "$CELERYD_ENABLED"; then
+ create_dirs "$CELERYD_LOG_FILE" "$CELERYD_PID_FILE"
+ fi
+
+ if yesno "$CELERYBEAT_ENABLED"; then
+ create_dirs "$CELERYBEAT_LOG_FILE" "$CELERYBEAT_PID_FILE"
+ fi
+
+ return 0
+}
+
+celery_chdir() {
+ if [ -n "$CELERY_PROJDIR" ]; then
+ cd "$CELERY_PROJDIR"
+ fi
+}
+
+wait_pid () {
+ local pidfile=$1
+ local timeout=${STOPTIMEOUT:-"10"}
+ local PID=$(cat "${pidfile}" 2>/dev/null)
+
+ while [[ -n "$PID" && "${timeout}" -ge 1 ]] ; do
+ kill -0 $PID 2>/dev/null || break
+ kill -TERM "$PID"
+ timeout=$(($timeout - 1))
+ sleep 0.5
+ done
+
+ [[ "${timeout}" -lt 1 ]] && return 1
+ [ -f $pidfile ] && rm -f $pidfile
+ return 0
+}
+
+# celeryd
+start_workers() {
+ yesno "${CELERYD_ENABLED}" || return 0
+
+ $CELERYD_MULTI start $CELERYD_NODES $DAEMON_OPTS \
+ --pidfile="$CELERYD_PID_FILE" \
+ --logfile="$CELERYD_LOG_FILE" \
+ --loglevel="$CELERYD_LOG_LEVEL" \
+ $CELERYD_OPTS
+}
+
+stop_workers() {
+ yesno "${CELERYD_ENABLED}" || return 0
+
+ local timeout=${STOPTIMEOUT:-"10"}
+
+ $CELERYD_MULTI stop $CELERYD_NODES --pidfile="$CELERYD_PID_FILE" || return 1
+
+ # Wait for each node
+ for node in $CELERYD_NODES; do
+ local pidfile=${CELERYD_PID_FILE/\%n/$node}
+ local PID=$(cat "${pidfile}" 2>/dev/null)
+ while [[ -n "$PID" && "${timeout}" -ge 1 ]] ; do
+ kill -0 $PID 2>/dev/null || break
+ timeout=$(($timeout - 1))
+ sleep 0.5
+ done
+ done
+
+ [[ "${timeout}" -lt 1 ]] && return 1
+ return 0
+}
+
+restart_workers() {
+ yesno "${CELERYD_ENABLED}" || return 0
+
+ $CELERYD_MULTI restart $CELERYD_NODES $DAEMON_OPTS \
+ --pidfile="$CELERYD_PID_FILE" \
+ --logfile="$CELERYD_LOG_FILE" \
+ --loglevel="$CELERYD_LOG_LEVEL" \
+ $CELERYD_OPTS
+}
+
+# celerybeat
+start_beat() {
+ yesno "${CELERYBEAT_ENABLED}" || return 0
+
+ ebegin "Starting celerybeat"
+ $CELERYBEAT $CELERYBEAT_OPTS $DAEMON_OPTS --detach \
+ --pidfile="$CELERYBEAT_PID_FILE"
+ eend $?
+}
+
+
+stop_beat() {
+ yesno "${CELERYBEAT_ENABLED}" || return 0
+
+ ebegin "Stopping celerybeat"
+ if [ -f "$CELERYBEAT_PID_FILE" ]; then
+ wait_pid "$CELERYBEAT_PID_FILE"
+ else
+ ewarn "not running"
+ fi
+ eend $?
+}
+
+
+start() {
+ local cr=0
+
+ checkconfig || return 1
+
+ ebegin "Starting ${SVCNAME}"
+ eindent
+
+ celery_chdir && \
+ start_workers && \
+ start_beat || cr=1
+
+ eoutdent
+ eend $cr
+}
+
+stop() {
+ local cr=0
+
+ checkconfig || return 1
+
+ ebegin "Stopping ${SVCNAME}"
+ eindent
+
+ celery_chdir
+ stop_workers || cr=1
+ stop_beat || cr=1
+
+ eoutdent
+ eend $cr
+}
+
+reload() {
+ local cr=0
+
+ checkconfig || return 1
+
+ ebegin "Restarting ${SVCNAME}"
+ eindent
+
+ celery_chdir
+ restart_workers || cr=1
+ stop_beat && start_beat || cr=1
+
+ eoutdent
+ eend $cr
+}
+
+status() {
+ checkconfig || return 1
+
+ celery_chdir && \
+ ${CELERYCTL} status
+}
diff --git a/dev-python/celery/metadata.xml b/dev-python/celery/metadata.xml
index 3e274c9cffeb..41cd42cebd31 100644
--- a/dev-python/celery/metadata.xml
+++ b/dev-python/celery/metadata.xml
@@ -7,5 +7,6 @@
</upstream>
<use>
<flag name='sql'>Adds SQL support</flag>
+ <flag name='redis'>Enables redis support</flag>
</use>
</pkgmetadata>