-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfabfile.py
124 lines (90 loc) · 4.4 KB
/
fabfile.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
from __future__ import with_statement
from fabric.api import *
from fabric.contrib.console import confirm
import pdb
import os
def _aasaan_sudo():
import os
return os.environ['AASAAN_SUDO']
env.use_ssh_config = True
env.hosts = [os.environ['AASAAN_HOST']]
env.user = os.environ['AASAAN_USER']
env.password = _aasaan_sudo()
env.key_filename = "~/.ssh/id_rsa"
def _code_dir():
return "/home/deepak/django/aasaan"
def push_to_git():
local("git push origin master")
@hosts(os.environ['AASAAN_SUDO_USER'] + '@' + os.environ['AASAAN_HOST'])
def restart_aasaan():
sudo('supervisorctl restart aasaan')
sudo('supervisorctl restart aasaan-worker')
@hosts(os.environ['AASAAN_SUDO_USER'] + '@' + os.environ['AASAAN_HOST'])
def cert_renew_test():
sudo('sudo certbot renew --dry-run')
@hosts(os.environ['AASAAN_SUDO_USER'] + '@' + os.environ['AASAAN_HOST'])
def cert_renew():
sudo('sudo certbot renew')
def deploy_old():
# deprecated. this is now centralized with the bash script
local("git pull")
push_to_git()
with cd(_code_dir()):
run("git pull")
run("/home/deepak/django/aasaan/.virtualenvs/aasaan/bin/pip install -r requirements.txt")
with cd(os.path.join(_code_dir(), 'aasaan')):
run("/home/deepak/django/aasaan/.virtualenvs/aasaan/bin/python manage.py migrate")
run("/home/deepak/django/aasaan/.virtualenvs/aasaan/bin/python manage.py collectstatic --no-input")
with cd(os.path.join(_code_dir(), 'deploy')):
run("cp aasaan_sync_sheets ~/.virtualenvs/aasaan/bin")
run("cp aasaan_hourly_cron ~/.virtualenvs/aasaan/bin")
run("cp aasaan_worker_start ~/.virtualenvs/aasaan/bin")
run("cp aasaan_backup_db ~/.virtualenvs/aasaan/bin")
run("cp aasaan_backup_metabase ~/.virtualenvs/aasaan/bin")
run("cp database_backup_clean.py ~/.virtualenvs/aasaan/bin")
run("cp aasaan_deploy ~/.virtualenvs/aasaan/bin")
run("chmod +x ~/.virtualenvs/aasaan/bin/aasaan_sync_sheets")
run("chmod +x ~/.virtualenvs/aasaan/bin/aasaan_hourly_cron")
run("chmod +x ~/.virtualenvs/aasaan/bin/aasaan_worker_start")
run("chmod +x ~/.virtualenvs/aasaan/bin/aasaan_backup_db")
run("chmod +x ~/.virtualenvs/aasaan/bin/aasaan_backup_metabase")
run("chmod +x ~/.virtualenvs/aasaan/bin/aasaan_deploy")
def deploy():
local("git pull")
push_to_git()
with cd("/home/deepak/django/aasaan/.virtualenvs/aasaan/bin"):
run("bash aasaan_deploy")
def get_database_file(local_path="/tmp"):
with cd("/home/deepak/dropbox/aasaan/database-backups"):
dbfile = run("ls -1t | head -1")
print(dbfile)
get(dbfile, local_path=local_path)
return os.path.join("/tmp", dbfile)
def email_database_file():
with cd("/home/deepak/bin"):
run("bash email_aasaan_db")
def sync_schedules():
with cd(os.path.join(_code_dir(), 'aasaan')):
run("/home/deepak/django/aasaan/.virtualenvs/aasaan/bin/python manage.py sync_sheets")
def sync_enrollments():
with cd(os.path.join(_code_dir(), 'aasaan')):
run("/home/deepak/django/aasaan/.virtualenvs/aasaan/bin/python manage.py sync_enrollments")
@hosts('ubuntu@aasaan-lxc')
def refresh_container_db():
run("sudo -u postgres /home/ubuntu/aasaan/deploy/load_aasaan_database_lxc.sh")
def refresh_dashboards():
run("psql -f /home/deepak/django/aasaan/sql/refresh_irc_dashboard.sql")
run("psql -f /home/deepak/django/aasaan/sql/statistics_dashboard.sql")
def backup_db():
run("source /home/deepak/django/aasaan/.virtualenvs/aasaan/bin/aasaan_backup_db")
run("ls -l /home/deepak/dropbox/aasaan/database-backups")
def joomla_history_sync():
with cd(os.path.join(_code_dir(), 'aasaan')):
run("/home/deepak/django/aasaan/.virtualenvs/aasaan/bin/python manage.py sync_joomla_counts 2017 1")
run("/home/deepak/django/aasaan/.virtualenvs/aasaan/bin/python manage.py sync_joomla_counts 2017 2")
run("/home/deepak/django/aasaan/.virtualenvs/aasaan/bin/python manage.py sync_joomla_counts 2017 3")
run("/home/deepak/django/aasaan/.virtualenvs/aasaan/bin/python manage.py sync_joomla_counts 2017 4")
run("/home/deepak/django/aasaan/.virtualenvs/aasaan/bin/python manage.py sync_joomla_counts 2017 5")
def sync_ors_counts():
with cd(os.path.join(_code_dir(), 'aasaan')):
run("/home/deepak/django/aasaan/.virtualenvs/aasaan/bin/python manage.py sync_ors_counts")