Move API models to api app.
[wolnelektury.git] / fabfile.py
index e37881a..11442c7 100644 (file)
@@ -1,17 +1,67 @@
-from fnpdjango.deploy import *
+# -*- coding: utf-8 -*-
+from fnpdeploy import *
+
+try:
+    from fabfile_local import *
+except ImportError:
+    pass
 
 
 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']
     env.user = 'lektury'
     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 = [
-        DebianGunicorn('wolnelektury'),
-        Supervisord('celery.wolnelektury:'),
+        Supervisord('wolnelektury'),
+        Supervisord('wolnelektury.celery'),
+        Memcached(),
+    ]
+
+
+@task
+def beta():
+    env.hosts = ['giewont.icm.edu.pl']
+    env.user = 'lektury'
+    env.app_path = '/srv/wolnelektury.pl/beta'
+    env.ve = '/srv/wolnelektury.pl/ve'
+    env.django_root_path = 'src'
+    env.requirements_file = 'requirements/requirements.txt'
+    env.pre_collectstatic = [
+        ManageTask('update_counters'),
+    ]
+    env.services = [
+        Supervisord('beta'),
     ]