X-Git-Url: https://git.mdrn.pl/wolnelektury.git/blobdiff_plain/b0de516e7d42ae67a87c6cae601986b787c7f080..8f6b785048f9095b4b985836dc8cf97c160f3a0f:/fabfile.py?ds=sidebyside diff --git a/fabfile.py b/fabfile.py index 2badd97a8..11442c7ea 100644 --- a/fabfile.py +++ b/fabfile.py @@ -1,7 +1,6 @@ +# -*- coding: utf-8 -*- from fnpdeploy import * -from catalogue.helpers import update_counters - try: from fabfile_local import * except ImportError: @@ -11,6 +10,28 @@ except ImportError: env.project_name = 'wolnelektury' +class ManageTask(Task): + def __init__(self, name, params='', **kwargs): + super(ManageTask, self).__init__(**kwargs) + self.name = name + self.params = params + + def run(self): + require('app_path', 'project_name') + with cd(get_django_root_path('current')): + run('source %(ve)s/bin/activate && python manage.py %(task)s %(params)s' % { + 've': env.ve, + 'task': self.name, + 'params': self.params, + }, pty=True) + + +class Memcached(Service): + def run(self): + print '>>> memcached: restart' + sudo('/etc/init.d/memcached restart', shell=False) + + @task def production(): env.hosts = ['giewont.icm.edu.pl'] @@ -18,9 +39,13 @@ def production(): env.app_path = '/srv/wolnelektury.pl' env.django_root_path = 'src' env.requirements_file = 'requirements/requirements.txt' + env.pre_collectstatic = [ + ManageTask('update_counters'), + ] env.services = [ Supervisord('wolnelektury'), Supervisord('wolnelektury.celery'), + Memcached(), ] @@ -33,7 +58,7 @@ def beta(): env.django_root_path = 'src' env.requirements_file = 'requirements/requirements.txt' env.pre_collectstatic = [ - update_counters, + ManageTask('update_counters'), ] env.services = [ Supervisord('beta'),