Skip to content

Commit f9b866e

Browse files
authored
Merge pull request #33 from catalanojuan/added-optional-supervisor-restart-to-deploy
Added support for restarting all supervisor services after deploy
2 parents 89d6fa9 + fdd89c7 commit f9b866e

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

deployer/fabfile.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
from fabric.api import env, task
44
from fabric.state import output
5-
from fabric.context_managers import shell_env, cd
5+
from fabric.context_managers import shell_env, cd
66

77
#output.stdout = False
88

@@ -15,7 +15,7 @@
1515
from deployer.tasks.git import clone_repo, deploy_code, add_remote
1616
from deployer.tasks.requirements import install_requirements
1717
from deployer.tasks.envfile import envconf
18-
18+
from .tasks.supervisor import restart_all
1919

2020

2121
@task
@@ -26,19 +26,24 @@ def setup_environment():
2626
with cd(env.app_dir):
2727
setup_virtualenv(env.python_version, env.app_name, env.app_dir, env.repo_url)
2828

29+
2930
@task
3031
def deploy(branch='master', migrate=False):
3132
with shell_env(HOME='/home/' + env.user, PATH="/home/" + env.user + "/.pyenv/bin:$PATH"):
3233
with cd(env.app_dir):
3334
deploy_code(env.repo_url, env.app_dir, env.user, branch=branch)
3435
install_requirements(env.app_name, env.python_version)
36+
if env.restart_after_deploy:
37+
restart_all()
38+
3539

3640
@task
3741
def git_remote_add(remote_url, repo_name):
3842
with shell_env(HOME='/home/' + env.user, PATH="/home/" + env.user + "/.pyenv/bin:$PATH"):
3943
with cd(env.app_dir):
4044
add_remote(remote_url, repo_name, env.app_dir)
4145

46+
4247
@task
4348
def config(action=None, key=None, value=None):
4449
'''Manage project configuration via .env
@@ -51,5 +56,4 @@ def config(action=None, key=None, value=None):
5156
with shell_env(HOME='/home/' + env.user, PATH="/home/" + env.user + "/.pyenv/bin:$PATH"):
5257
with cd(env.app_dir):
5358
envconf(action, key, value)
54-
for services in env.supervisor_services:
55-
supervisor.restart(services)
59+
restart_all()

deployer/settings.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,4 @@
2222

2323
env.supervisor_services = environ.get('SUPERVISOR_SERVICES', '').split(',')
2424
env.upstart_services = environ.get('UPSTART_SERVICES', '').split(',')
25+
env.restart_after_deploy = environ.get('RESTART_AFTER_DEPLOY', False)

deployer/tasks/supervisor.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
from fabtools import supervisor, files
66

7+
78
## TODO: use upload_template to prevent hardcoded
89
## supervisor configuration files
910
@with_settings(warn_only=True)
@@ -18,18 +19,28 @@ def setup():
1819

1920
update_config()
2021

22+
2123
def update_config():
2224
supervisor.update_config()
2325

26+
2427
def reload_config():
2528
supervisor.reload_config()
2629

30+
2731
def restart(component):
2832
update_config()
2933
supervisor.restart_process(component)
3034

35+
36+
def restart_all():
37+
for service in env.supervisor_services:
38+
restart(service)
39+
40+
3141
def stop(component):
3242
supervisor.stop_process(component)
3343

44+
3445
def start(component):
3546
supervisor.start_process(component)

0 commit comments

Comments
 (0)