celery init.d script instead upstart
This commit is contained in:
parent
6873fcffcd
commit
5819a3bcea
@ -24,26 +24,22 @@ define :celery_instance, :virtualenv => false do
|
||||
celery_options += " -B" if params[:beat]
|
||||
celery_options += ' ' + params[:extra_options] if params[:extra_options]
|
||||
|
||||
template "/etc/init/#{name}.conf" do
|
||||
source "celery-upstart.conf.erb"
|
||||
cookbook "celery"
|
||||
owner "root"
|
||||
group "root"
|
||||
mode 0644
|
||||
|
||||
variables({
|
||||
:params => params,
|
||||
:celery_options => celery_options
|
||||
})
|
||||
|
||||
notifies :restart, "service[#{name}]"
|
||||
service "nailgun-jobserver" do
|
||||
supports :restart => true, :start => true, :stop => true, :reload => true
|
||||
action :nothing
|
||||
end
|
||||
|
||||
service name do
|
||||
provider Chef::Provider::Service::Upstart
|
||||
enabled true
|
||||
running true
|
||||
supports :restart => true, :reload => true, :status => true
|
||||
action [:enable, :start]
|
||||
template "/etc/init.d/#{name}" do
|
||||
source "celery-init.d.conf.erb"
|
||||
cookbook "celery"
|
||||
owner "root"
|
||||
group "root"
|
||||
mode 0755
|
||||
variables({
|
||||
:params => params,
|
||||
:celery_options => celery_options
|
||||
})
|
||||
notifies :enable, "service[#{name}]"
|
||||
notifies :start, "service[#{name}]"
|
||||
end
|
||||
end
|
||||
|
46
cookbooks/celery/templates/default/celery-init.d.conf.erb
Normal file
46
cookbooks/celery/templates/default/celery-init.d.conf.erb
Normal file
@ -0,0 +1,46 @@
|
||||
start() {
|
||||
echo "Starting nailgun-jobserver..."
|
||||
exec start-stop-daemon --start --pidfile <%= @params[:pid_file] %> --chuid <%= @params[:user] %> --exec <%= @params[:command] %> \
|
||||
-- <%= @params[:command_args] %> start <%= @params[:workers] || 1 %> <%= @celery_options %>
|
||||
}
|
||||
|
||||
stop() {
|
||||
echo "Stopping nailgun-jobserver..."
|
||||
exec start-stop-daemon --stop --pidfile <%= @params[:pid_file] %> --chuid <%= @params[:user] %> --exec <%= @params[:command] %> --signa$
|
||||
}
|
||||
|
||||
status() {
|
||||
celery_pid=`pgrep -u <%= @params[:user] %> -f <%= @params[:command] %>`
|
||||
if [[ -z $celery_pid ]] ; then
|
||||
echo "nailgun-jobserver: not running."
|
||||
else
|
||||
echo "nailgun-jobserver: running."
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
case "$1" in
|
||||
start)
|
||||
start
|
||||
;;
|
||||
|
||||
stop)
|
||||
stop
|
||||
;;
|
||||
|
||||
restart|reload|force-reload)
|
||||
stop
|
||||
start
|
||||
;;
|
||||
|
||||
status)
|
||||
status
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Usage: /etc/init.d/nailgun-jobserver {start|stop|reload|force-reload|restart|status}"
|
||||
exit 1
|
||||
|
||||
esac
|
||||
|
||||
exit 0
|
@ -1,18 +0,0 @@
|
||||
# This file is auto generated by chef
|
||||
# Do no edit in place
|
||||
description "Celery job server"
|
||||
author "Maxim Kulkin <mkulkin@mirantis.com>"
|
||||
start on runlevel [2345]
|
||||
stop on runlevel [!2345]
|
||||
#Send KILL after 20 seconds
|
||||
kill timeout 20
|
||||
|
||||
script
|
||||
exec su -c "cd <%= @params[:cwd] %>; <%= @params[:command] || 'celeryd-multi' %> start <%= @params[:workers] || 1 %> <%= @celery_options %>" <%= @params[:user] %>
|
||||
end script
|
||||
|
||||
pre-stop script
|
||||
exec su -c "cd <%= @params[:cwd] %>; <%= @params[:command] || 'celeryd-multi' %> stop <%= @params[:workers] || 1 %> <%= @params[:workers] %> <%= @celery_options %>" <%= @params[:user] %>
|
||||
end script
|
||||
|
||||
respawn
|
@ -127,11 +127,14 @@ end
|
||||
redis_instance 'nailgun'
|
||||
|
||||
celery_instance 'nailgun-jobserver' do
|
||||
command "#{node[:nailgun][:python]} manage.py celeryd_multi start Worker -E"
|
||||
command "#{node[:nailgun][:python]}"
|
||||
command_args "#{node[:nailgun][:root]}/manage.py celeryd_multi start Worker -E"
|
||||
cwd node.nailgun.root
|
||||
events true
|
||||
user node.nailgun.user
|
||||
virtualenv node.nailgun.venv
|
||||
pid_file "/opt/nailgun/celery.pid"
|
||||
log_file "/var/log/nailgun/celery.log"
|
||||
end
|
||||
|
||||
web_app 'nailgun' do
|
||||
|
@ -42,6 +42,7 @@ class TestNode(TestCase):
|
||||
logging.info("Starting slave node")
|
||||
slave.start()
|
||||
|
||||
logging.info("Nailgun IP: %s" % admin_ip)
|
||||
self._load_sample_admin(
|
||||
host=admin_ip,
|
||||
user="ubuntu",
|
||||
@ -66,11 +67,13 @@ class TestNode(TestCase):
|
||||
))
|
||||
except ValueError:
|
||||
logging.info("No clusters found - creating test cluster...")
|
||||
cluster = json.loads(self.client.post(
|
||||
cluster = self.client.post(
|
||||
"http://%s:8000/api/clusters" % admin_ip,
|
||||
data='{ "name": "MyOwnPrivateCluster", "release": 2 }',
|
||||
data='{ "name": "MyOwnPrivateCluster", "release": 1 }',
|
||||
log=True
|
||||
))
|
||||
)
|
||||
print cluster
|
||||
cluster = json.loads(cluster)
|
||||
|
||||
resp = json.loads(self.client.put(
|
||||
"http://%s:8000/api/clusters/1" % admin_ip,
|
||||
@ -85,7 +88,7 @@ class TestNode(TestCase):
|
||||
|
||||
resp = json.loads(self.client.put(
|
||||
"http://%s:8000/api/nodes/%s" % (admin_ip, slave_id),
|
||||
data='{ "new_roles": [2, 3], "redeployment_needed": true }'
|
||||
data='{ "new_roles": [1, 2], "redeployment_needed": true }'
|
||||
))
|
||||
if len(resp["new_roles"]) == 0:
|
||||
raise ValueError("Failed to assign roles to node")
|
||||
@ -122,9 +125,9 @@ class TestNode(TestCase):
|
||||
raise Exception("Recipes failed to execute!")
|
||||
# check recipes execution order
|
||||
ret = self.remote.exec_cmd("cat /tmp/chef_success")
|
||||
if not ret['stdout'].split("\r\n") == ['monitor', 'default', 'compute']:
|
||||
if [out.strip() for out in ret['stdout']] != ['monitor', 'default', 'compute']:
|
||||
raise Exception("Recipes executed in a wrong order: %s!" \
|
||||
% str(ret['stdout'].split("\r\n")))
|
||||
% str(ret['stdout']))
|
||||
"""
|
||||
# check passwords
|
||||
self.remote.exec_cmd("tar -C %s -xvf /root/nodes.tar.gz" % SAMPLE_REMOTE_PATH)
|
||||
|
Loading…
Reference in New Issue
Block a user