summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorentin Chary <iksaif@gentoo.org>2012-05-30 06:45:54 +0000
committerCorentin Chary <iksaif@gentoo.org>2012-05-30 06:45:54 +0000
commit89b032d8b3996d60b8138018bff393cf075824d0 (patch)
tree0c9998d01990ec4971c22558632568dd0baff179 /dev-python/celery
parentNew ebuild for cl. (diff)
downloadhistorical-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/ChangeLog10
-rw-r--r--dev-python/celery/Manifest6
-rw-r--r--dev-python/celery/celery-2.5.3.ebuild61
-rw-r--r--dev-python/celery/files/celery.confd66
-rw-r--r--dev-python/celery/files/celery.initd279
-rw-r--r--dev-python/celery/metadata.xml15
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>