diff options
author | 2012-05-30 06:45:54 +0000 | |
---|---|---|
committer | 2012-05-30 06:45:54 +0000 | |
commit | 89b032d8b3996d60b8138018bff393cf075824d0 (patch) | |
tree | 0c9998d01990ec4971c22558632568dd0baff179 /dev-python/celery | |
parent | New ebuild for cl. (diff) | |
download | historical-89b032d8b3996d60b8138018bff393cf075824d0.tar.gz historical-89b032d8b3996d60b8138018bff393cf075824d0.tar.bz2 historical-89b032d8b3996d60b8138018bff393cf075824d0.zip |
New ebuild for celery. Closes bug #342041.
Package-Manager: portage-2.1.10.63/cvs/Linux x86_64
Diffstat (limited to 'dev-python/celery')
-rw-r--r-- | dev-python/celery/ChangeLog | 10 | ||||
-rw-r--r-- | dev-python/celery/Manifest | 6 | ||||
-rw-r--r-- | dev-python/celery/celery-2.5.3.ebuild | 61 | ||||
-rw-r--r-- | dev-python/celery/files/celery.confd | 66 | ||||
-rw-r--r-- | dev-python/celery/files/celery.initd | 279 | ||||
-rw-r--r-- | dev-python/celery/metadata.xml | 15 |
6 files changed, 437 insertions, 0 deletions
diff --git a/dev-python/celery/ChangeLog b/dev-python/celery/ChangeLog new file mode 100644 index 000000000000..8ad711282cd9 --- /dev/null +++ b/dev-python/celery/ChangeLog @@ -0,0 +1,10 @@ +# ChangeLog for dev-python/celery +# Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 +# $Header: /var/cvsroot/gentoo-x86/dev-python/celery/ChangeLog,v 1.1 2012/05/30 06:45:54 iksaif Exp $ + +*celery-2.5.3 (30 May 2012) + + 30 May 2012; Corentin Chary <iksaif@gentoo.org> +celery-2.5.3.ebuild, + +files/celery.confd, +files/celery.initd, +metadata.xml: + New ebuild for celery. Closes bug #342041. + diff --git a/dev-python/celery/Manifest b/dev-python/celery/Manifest new file mode 100644 index 000000000000..61c7d982d22e --- /dev/null +++ b/dev-python/celery/Manifest @@ -0,0 +1,6 @@ +AUX celery.confd 1703 RMD160 38c15314cbbbceadf467834b907d9879c32c9c99 SHA1 fa1ca2b90a2c0b365528c40d31dd2849dec20d24 SHA256 610969ecf7169cd9293475399350fa598ea3818b5bcd43922d5e8d5a675755e8 +AUX celery.initd 6237 RMD160 9e98b6d451ce91b28dd25894e202ce8a4da09671 SHA1 c165e5239c8c9d73e15ae3244ceac8891d9e0ab1 SHA256 6dee716f3290990a9665aebf2935a54eeec3914a0eaebc66968378014d6af1ea +DIST celery-2.5.3.tar.gz 946218 RMD160 87b36c9148925f8cbe50a93af796345af5fc55b0 SHA1 07f751638a61026358b6a8419506d3e7c1f7f57e SHA256 30bef144a62fb978dd81bef848f30f8df30b5e9a22171dc582b8d3332acae726 +EBUILD celery-2.5.3.ebuild 1619 RMD160 d28ed02aa3d41ccd5c773f019e44d6173472d195 SHA1 e1eb576403585562c1bbeae28300a1d34f9a4323 SHA256 2dc040514b40e5cfc03d992a31fe5173960083772004e753845376ac88edb22d +MISC ChangeLog 413 RMD160 87341d080c7b58d2e13f4eb802068abdaa8142eb SHA1 6842c05b9bfdcbe809025a60cec7affed488561d SHA256 f2d7349523be6f1445b291a4563e4dd2881158a857ccd3b7152d01755035d608 +MISC metadata.xml 381 RMD160 df0b3b5b251eceefe974d458ea8b0085734a7db9 SHA1 b40bf0eb01446cb3fa97f0561ae6bf5d776bc4f1 SHA256 af2b8d52964a565630562f79dccd36e499b18854c2b4499d2a2a66b1b66aae37 diff --git a/dev-python/celery/celery-2.5.3.ebuild b/dev-python/celery/celery-2.5.3.ebuild new file mode 100644 index 000000000000..3b75bc0c6d08 --- /dev/null +++ b/dev-python/celery/celery-2.5.3.ebuild @@ -0,0 +1,61 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-python/celery/celery-2.5.3.ebuild,v 1.1 2012/05/30 06:45:54 iksaif Exp $ + +EAPI="4" + +# Note: some tests are still broken for python3... +# PYTHON_TESTS_RESTRICTED_ABIS="3.*" +PYTHON_DEPEND="*:2.7" +RESTRICT_PYTHON_ABIS="2.[4-6]" +SUPPORT_PYTHON_ABIS="1" +DISTUTILS_SRC_TEST="nosetests" + +inherit distutils eutils + +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="sql test" + +# jython would need: threadpool, simplejson +# python2.5 would need: ordereddict, test? unittest2 +# python2.6 would need: multiprocessing, test? simplejson +RDEPEND=">=dev-python/kombu-2.1.1 + <dev-python/kombu-3.0 + sql? ( dev-python/sqlalchemy ) + dev-python/python-dateutil + >=dev-python/anyjson-0.3.1 + dev-python/pyparsing + " +DEPEND="${RDEPEND} + test? ( + >=dev-python/mock-0.7.0 + dev-python/pyopenssl + dev-python/nose-cover3 + dev-python/sqlalchemy + dev-python/pymongo + dev-python/cl + dev-db/redis + ) + dev-python/setuptools" + +src_test() { + testing() { + nosetests --py3where build-${PYTHON_ABI}/lib/celery/tests + } + python_execute_function testing +} + +src_install() { + + distutils_src_install --install-scripts="/usr/bin" + + # Main celeryd init.d and conf.d + newinitd "${FILESDIR}/celery.initd" celery + newconfd "${FILESDIR}/celery.confd" celery +} diff --git a/dev-python/celery/files/celery.confd b/dev-python/celery/files/celery.confd new file mode 100644 index 000000000000..6c34927cbd31 --- /dev/null +++ b/dev-python/celery/files/celery.confd @@ -0,0 +1,66 @@ +# /etc/conf.d/celery + +############################################################################## +# GLOBAL CONFIGURATION + +# User and group +#CELERY_USER="celery" +#CELERY_GROUP="celery" + +# Is this for a django project ? +# If 'yes' it will automatically setup CELERYD, CELERYCTL +# CELERYD_MULTI, CELERYBEAT, CELERYEV and CELERYEV_CAM for a +# django project, but you can still override them here. +#CELERY_DJANGO="yes" + +# Full path to the python project directory. +#CELERY_PROJDIR="/var/lib/myproject" + +############################################################################## +# CELERYD + +#CELERYD_ENABLED="yes" + +# celeryd notes +#CELERYD_NODES="celery" + +# celeryd options +# Example: 5 minute hard time limit for tasks +#CELERYD_OPTS="--time-limit=300" + +# 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 + +############################################################################## +# CELERYEV + +#CELERYEV_ENABLED="yes" + +# celeryev options +#CELERYEV_OPTS="" + +# Location and level of the celeryev log file +#CELERYEV_LOG_FILE=/var/log/celery/celeryev.log +#CELERYEV_LOG_LEVEL="INFO" + +# Location of the celeryev pid file +#CELERYEV_PID_FILE=/var/run/celery/celeryev.pid diff --git a/dev-python/celery/files/celery.initd b/dev-python/celery/files/celery.initd new file mode 100644 index 000000000000..16de8ea294be --- /dev/null +++ b/dev-python/celery/files/celery.initd @@ -0,0 +1,279 @@ +#!/sbin/runscript +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-python/celery/files/celery.initd,v 1.1 2012/05/30 06:45:54 iksaif Exp $ + +extra_started_commands="reload" + +depend() { + need net + use rabbitmq 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"} + +CELERYEV_ENABLED=${CELERYEV_ENABLED:-"no"} +CELERYEV_PID_FILE=${CELERYEV_PID_FILE:-"/var/run/celery/celeryev.pid"} +CELERYEV_LOG_FILE=${CELERYEV_LOG_FILE:-"/var/log/celery/celeryev.log"} +CELERYEV_LOG_LEVEL=${CELERYEV_LOG_LEVEL:-"INFO"} + +export CELERY_LOADER + +if yesno "$CELERY_DJANGO"; then + CELERYD=${CELERYD:-"celeryd_detach"} + CELERYCTL=${CELERYCTL:-"python manage.py celeryd"} + CELERYD_MULTI=${CELERYD_MULTI:-"python manage.py celeryd_multi"} + CELERYBEAT=${CELERYBEAT:-"python manage.py celerybeat"} + CELERYEV=${CELERYEV:-"python manage.py celeryev"} + CELERYEV_CAM=${CELERYEV_CAM:-"djcelery.snapshot.Camera"} +else + CELERYD=${CELERYD:-"-m celery.bin.celeryd_detach"} + CELERYD_MULTI=${CELERYD_MULTI:-"celeryd-multi"} + CELERYCTL=${CELERYCTL:-"celeryctl"} + CELERYBEAT=${CELERYBEAT:-"celerybeat"} + CELERYEV=${CELERYEV:-"celeryev"} +fi + +CELERYD_OPTS="$CELERYD_OPTS -f $CELERYD_LOG_FILE -l $CELERYD_LOG_LEVEL" +CELERYBEAT_OPTS="$CELERYBEAT_OPTS -f $CELERYBEAT_LOG_FILE -l $CELERYBEAT_LOG_LEVEL" +CELERYEV_OPTS="$CELERYEV_OPTS -f $CELERYEV_LOG_FILE -l $CELERYEV_LOG_LEVEL -c $CELERYEV_CAM" + +create_dirs() { + local logfile="$1" + local pidfile="$2" + local logdir=`dirname $logfile` + local piddir=`dirname $pidfile` + + if [ ! -d "$logdir" ]; then + mkdir -p $logdir + fi + if [ ! -d "$piddir" ]; then + mkdir -p $piddir + fi + + if [ -n "$CELERY_USER" ]; then + chown "$CELERY_USER" $logdir $piddir + fi + if [ -n "$CELERY_GROUP" ]; then + chown ":$CELERY_GROUP" $logdir $piddir + fi +} + +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 + + if yesno "$CELERYEV_ENABLED"; then + create_dirs "$CELERYEV_LOG_FILE" "$CELERYEV_PID_FILE" + + if [ -z "$CELERYEV_CAM" ]; then + eerror "Missing CELERYEV_CAM variable" + return 1 + fi + 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" \ + --cmd="$CELERYD" \ + $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" \ + --cmd="$CELERYD" \ + $CELERYD_OPTS +} + +# celeryev +start_ev() { + yesno "${CELERYEV_ENABLED}" || return 0 + + ebegin "Starting celeryev" + $CELERYEV $CELERYEV_OPTS $DAEMON_OPTS --detach \ + --pidfile="$CELERYEV_PID_FILE" + eend $? +} + + +stop_ev() { + yesno "${CELERYEV_ENABLED}" || return 0 + + ebegin "Stopping celeryev" + if [ -f "$CELERYEV_PID_FILE" ]; then + wait_pid "$CELERYEV_PID_FILE" + else + eerror "not running" + fi + eend $? +} + +# 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 + eerror "not running" + fi + eend $? +} + + +start() { + local cr=0 + + checkconfig || return 1 + + ebegin "Starting ${SVCNAME}" + eindent + + celery_chdir && \ + start_workers && \ + start_beat && \ + start_ev || 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 + stop_ev || 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 + stop_ev && start_ev || cr=1 + + eoutdent + eend $cr +} + +status() { + checkconfig || return 1 + + ${CELERYCTL} status +} diff --git a/dev-python/celery/metadata.xml b/dev-python/celery/metadata.xml new file mode 100644 index 000000000000..188c29f6e3dd --- /dev/null +++ b/dev-python/celery/metadata.xml @@ -0,0 +1,15 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <herd>python</herd> + <maintainer> + <email>iksaif@gentoo.org</email> + <name>Corentin Chary</name> + </maintainer> + <upstream> + <remote-id type="pypi">celery</remote-id> + </upstream> + <use> + <flag name='sql'>Adds SQL support</flag> + </use> +</pkgmetadata> |