diff options
author | 2014-04-09 10:52:50 +0000 | |
---|---|---|
committer | 2014-04-09 10:52:50 +0000 | |
commit | a6b4a5ef187b5d3a556d36482eb6de0ef22e3e2c (patch) | |
tree | c58d6dcb5a1bc56333fe0937fd8c0caaaf6e398d /dev-python | |
parent | Add proxy-maintainers herd as a fallback for when maintainer is absent, leave... (diff) | |
download | gentoo-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/ChangeLog | 10 | ||||
-rw-r--r-- | dev-python/celery/celery-3.1.10.ebuild | 77 | ||||
-rw-r--r-- | dev-python/celery/files/celery.confd-r1 | 50 | ||||
-rw-r--r-- | dev-python/celery/files/celery.initd-r1 | 214 | ||||
-rw-r--r-- | dev-python/celery/metadata.xml | 1 |
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> |