fabfile updated for STAGE 5

remotes/origin/stage5
Alexander Burdeiny 10 years ago
parent d19d868d77
commit d24823b2c3
  1. 248
      fabfile.py

248
fabfile.py vendored

@ -1,9 +1,10 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
from os.path import join, basename from os.path import join, basename
from collections import namedtuple from collections import namedtuple, OrderedDict
from fabric.api import * from fabric.api import *
env.roledefs = { env.roledefs = {
'dev': ['root@176.121.11.165'], 'dev': ['root@176.121.11.165'],
'prod': ['root@176.121.11.162'], 'prod': ['root@176.121.11.162'],
@ -21,15 +22,18 @@ apache2_conf = '/etc/apache2/sites-available/proj.com'
settings_conf = join(REMOTE_HOME_DIR, 'proj/settings.py') settings_conf = join(REMOTE_HOME_DIR, 'proj/settings.py')
services = ['nginx', 'apache2'] services = ['nginx', 'apache2']
ticket_functions = {} stages = {}
tickets = {}
def ticket(func):
if not callable(func):
raise NotImplementedError('func must be a callable')
ticket_functions[func.__name__] = func
return func
def stage(stage_num):
def ticket(func):
if not callable(func):
raise NotImplementedError('func must be a callable')
stages.setdefault(stage_num, OrderedDict()).update({func.__name__: func})
tickets.update({func.__name__: func})
return func
return ticket
def set_host(host): def set_host(host):
env.hosts = env.roledefs.get(host) env.hosts = env.roledefs.get(host)
@ -84,120 +88,132 @@ def pull(with_configs=False, func=None):
run('git pull') run('git pull')
if with_configs: if with_configs:
put_configs() put_configs()
if func is not None and func in ticket_functions and callable(ticket_functions[func]): if func is not None and func in tickets and callable(tickets[func]):
ticket_functions[func]() tickets[func]()
call_state('start', only='apache2') call_state('start', only='apache2')
def stage3_pre_final(): def stage_init(stage_num):
with cd(REMOTE_HOME_DIR):
run('pip install pandas')
run('pip install django-rosetta==0.7.6')
run('git checkout master')
run('git pull')
call_state('stop')
put_configs()
run('python manage.py migrate conference 0001 --fake')
run('python manage.py migrate conference')
run('python manage.py migrate expobanner')
run('python manage.py migrate theme 0001 --fake')
run('python manage.py migrate theme 0002')
run('python manage.py migrate article 0001 --fake')
run('python manage.py migrate article 0002')
run('python manage.py migrate stats_collector')
run('python manage.py crontab remove')
run('python manage.py crontab add')
chown()
call_state('start')
def stage3_release():
call_state('stop')
with cd(REMOTE_HOME_DIR):
# run('python manage.py themeblog_to_blog')
run('git fetch')
run('git checkout stage3_release')
run('git pull')
# run('python manage.py migrate settings 0002 --fake')
run('python manage.py migrate settings')
run('python manage.py migrate article 0003')
chown()
call_state('start')
def c_fix():
with cd(REMOTE_HOME_DIR): with cd(REMOTE_HOME_DIR):
call_state('stop', only='apache2') call_state('stop', only='apache2')
run('git fetch')
run('git checkout stage{stage_num}'.format(stage_num=stage_num))
run('git pull') run('git pull')
run('python manage.py migrate expobanner') if stage_num in stages and isinstance(stages[stage_num], dict):
for func_name, func in stages[stage_num].iteritems():
func()
call_state('start', only='apache2') call_state('start', only='apache2')
def stage4_firstrun(): # def stage3_pre_final():
with cd(REMOTE_HOME_DIR): # with cd(REMOTE_HOME_DIR):
call_state('stop') # run('pip install pandas')
run('git fetch') # run('pip install django-rosetta==0.7.6')
run('git checkout stage4') # run('git checkout master')
# run('git checkout -- proj/settings.py') # run('git pull')
pull(with_configs=True) # call_state('stop')
run('python manage.py syncdb') # put_configs()
ticket1374() # run('python manage.py migrate conference 0001 --fake')
ticket1393() # run('python manage.py migrate conference')
ticket1392() # run('python manage.py migrate expobanner')
ticket1384() # run('python manage.py migrate theme 0001 --fake')
ticket1395() # run('python manage.py migrate theme 0002')
ticket1384_p1() # run('python manage.py migrate article 0001 --fake')
ticket1384_p2() # run('python manage.py migrate article 0002')
t1443() # run('python manage.py migrate stats_collector')
call_state('start') # run('python manage.py crontab remove')
# run('python manage.py crontab add')
# chown()
@ticket # call_state('start')
def ticket1395():
with cd(REMOTE_HOME_DIR):
run('python manage.py accounts_check_url') # def stage3_release():
# call_state('stop')
# with cd(REMOTE_HOME_DIR):
@ticket # # run('python manage.py themeblog_to_blog')
def ticket1374(): # run('git fetch')
with cd(REMOTE_HOME_DIR): # run('git checkout stage3_release')
run('python manage.py migrate theme') # run('git pull')
# # run('python manage.py migrate settings 0002 --fake')
# run('python manage.py migrate settings')
@ticket # run('python manage.py migrate article 0003')
def ticket1393(): # chown()
with cd(REMOTE_HOME_DIR): # call_state('start')
run('python manage.py migrate newsletter 0001 --fake')
run('python manage.py migrate newsletter')
# def c_fix():
# with cd(REMOTE_HOME_DIR):
@ticket # call_state('stop', only='apache2')
def ticket1392(): # run('git pull')
with cd(REMOTE_HOME_DIR): # run('python manage.py migrate expobanner')
run('python manage.py migrate newsletter') # call_state('start', only='apache2')
@ticket # def stage4_firstrun():
def ticket1384(): # with cd(REMOTE_HOME_DIR):
with cd(REMOTE_HOME_DIR): # call_state('stop')
run('python manage.py migrate exposition 0001 --fake') # run('git fetch')
run('python manage.py migrate exposition') # run('git checkout stage4')
run('python manage.py migrate conference') # # run('git checkout -- proj/settings.py')
# pull(with_configs=True)
# run('python manage.py syncdb')
@ticket # ticket1374()
def ticket1384_p1(): # ticket1393()
with cd(REMOTE_HOME_DIR): # ticket1392()
run('python manage.py check_url') # ticket1384()
# ticket1395()
# ticket1384_p1()
@ticket # ticket1384_p2()
def ticket1384_p2(): # t1443()
with cd(REMOTE_HOME_DIR): # call_state('start')
run('python manage.py check_translation')
# @ticket
@ticket # def ticket1395():
def t1443(): # with cd(REMOTE_HOME_DIR):
with cd(REMOTE_HOME_DIR): # run('python manage.py accounts_check_url')
run('chown -Rv www-data:www-data locale')
# @ticket
# def ticket1374():
# with cd(REMOTE_HOME_DIR):
# run('python manage.py migrate theme')
# @ticket
# def ticket1393():
# with cd(REMOTE_HOME_DIR):
# run('python manage.py migrate newsletter 0001 --fake')
# run('python manage.py migrate newsletter')
# @ticket
# def ticket1392():
# with cd(REMOTE_HOME_DIR):
# run('python manage.py migrate newsletter')
# @ticket
# def ticket1384():
# with cd(REMOTE_HOME_DIR):
# run('python manage.py migrate exposition 0001 --fake')
# run('python manage.py migrate exposition')
# run('python manage.py migrate conference')
# @ticket
# def ticket1384_p1():
# with cd(REMOTE_HOME_DIR):
# run('python manage.py check_url')
# @ticket
# def ticket1384_p2():
# with cd(REMOTE_HOME_DIR):
# run('python manage.py check_translation')
# @ticket
# def t1443():
# with cd(REMOTE_HOME_DIR):
# run('chown -Rv www-data:www-data locale')

Loading…
Cancel
Save