fix: make python commands modular and reusable
This commit is contained in:
parent
8ce9d4214d
commit
7c356ccb27
@ -1,7 +1,10 @@
|
|||||||
import frappe
|
import frappe
|
||||||
from frappe.utils.scheduler import start_scheduler
|
from frappe.utils.scheduler import start_scheduler
|
||||||
|
|
||||||
print("Starting background scheduler . . .")
|
def main():
|
||||||
start_scheduler()
|
print("Starting background scheduler . . .")
|
||||||
|
start_scheduler()
|
||||||
|
exit(0)
|
||||||
|
|
||||||
exit(0)
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
@ -20,10 +20,13 @@ def backup(sites, with_files=False):
|
|||||||
print("private files backup taken -", odb.backup_path_private_files, "- on", now())
|
print("private files backup taken -", odb.backup_path_private_files, "- on", now())
|
||||||
frappe.destroy()
|
frappe.destroy()
|
||||||
|
|
||||||
installed_sites = ":".join(get_sites())
|
def main():
|
||||||
sites = os.environ.get("SITES", installed_sites).split(":")
|
installed_sites = ":".join(get_sites())
|
||||||
with_files=True if os.environ.get("WITH_FILES") else False
|
sites = os.environ.get("SITES", installed_sites).split(":")
|
||||||
|
with_files=True if os.environ.get("WITH_FILES") else False
|
||||||
|
|
||||||
backup(sites, with_files)
|
backup(sites, with_files)
|
||||||
|
exit(0)
|
||||||
|
|
||||||
exit(0)
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
@ -108,6 +108,13 @@ def check_redis_socketio(retry=10, delay=3, print_attempt=True):
|
|||||||
print("Connection to redis socketio timed out")
|
print("Connection to redis socketio timed out")
|
||||||
exit(1)
|
exit(1)
|
||||||
|
|
||||||
|
# Get site_config.json
|
||||||
|
def get_site_config(site_name):
|
||||||
|
site_config = None
|
||||||
|
with open('{site_name}/site_config.json'.format(site_name=site_name)) as site_config_file:
|
||||||
|
site_config = json.load(site_config_file)
|
||||||
|
return site_config
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
check_mariadb()
|
check_mariadb()
|
||||||
check_redis_queue()
|
check_redis_queue()
|
||||||
@ -116,4 +123,4 @@ def main():
|
|||||||
print('Connections OK')
|
print('Connections OK')
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
@ -20,6 +20,6 @@ def console(site):
|
|||||||
print("Apps in this namespace:\n{}".format(", ".join(all_apps)))
|
print("Apps in this namespace:\n{}".format(", ".join(all_apps)))
|
||||||
IPython.embed(display_banner="", header="")
|
IPython.embed(display_banner="", header="")
|
||||||
|
|
||||||
|
def main():
|
||||||
site = sys.argv[-1]
|
site = sys.argv[-1]
|
||||||
console(site)
|
console(site)
|
||||||
|
@ -23,4 +23,4 @@ def main():
|
|||||||
exit(0)
|
exit(0)
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
@ -2,12 +2,7 @@ import os, frappe, compileall, re, json
|
|||||||
|
|
||||||
from frappe.migrate import migrate
|
from frappe.migrate import migrate
|
||||||
from frappe.utils import get_sites
|
from frappe.utils import get_sites
|
||||||
|
from check_connection import get_config
|
||||||
def get_config():
|
|
||||||
config = None
|
|
||||||
with open('common_site_config.json') as config_file:
|
|
||||||
config = json.load(config_file)
|
|
||||||
return config
|
|
||||||
|
|
||||||
def save_config(config):
|
def save_config(config):
|
||||||
with open('common_site_config.json', 'w') as f:
|
with open('common_site_config.json', 'w') as f:
|
||||||
@ -24,24 +19,30 @@ def set_maintenance_mode(enable=True):
|
|||||||
conf.update({ "maintenance_mode": 0, "pause_scheduler": 0 })
|
conf.update({ "maintenance_mode": 0, "pause_scheduler": 0 })
|
||||||
save_config(conf)
|
save_config(conf)
|
||||||
|
|
||||||
|
def migrate_sites(maintenance_mode=False):
|
||||||
|
installed_sites = ":".join(get_sites())
|
||||||
|
sites = os.environ.get("SITES", installed_sites).split(":")
|
||||||
|
if not maintenance_mode:
|
||||||
|
maintenance_mode = True if os.environ.get("MAINTENANCE_MODE") else False
|
||||||
|
|
||||||
installed_sites = ":".join(get_sites())
|
if maintenance_mode:
|
||||||
sites = os.environ.get("SITES", installed_sites).split(":")
|
set_maintenance_mode(True)
|
||||||
maintenance_mode = True if os.environ.get("MAINTENANCE_MODE") else False
|
|
||||||
|
|
||||||
if maintenance_mode:
|
for site in sites:
|
||||||
set_maintenance_mode(True)
|
print('Migrating', site)
|
||||||
|
frappe.init(site=site)
|
||||||
|
frappe.connect()
|
||||||
|
try:
|
||||||
|
migrate()
|
||||||
|
finally:
|
||||||
|
frappe.destroy()
|
||||||
|
|
||||||
for site in sites:
|
if maintenance_mode:
|
||||||
print('Migrating', site)
|
set_maintenance_mode(False)
|
||||||
frappe.init(site=site)
|
|
||||||
frappe.connect()
|
|
||||||
try:
|
|
||||||
migrate()
|
|
||||||
finally:
|
|
||||||
frappe.destroy()
|
|
||||||
|
|
||||||
if maintenance_mode:
|
def main():
|
||||||
set_maintenance_mode(False)
|
migrate_sites()
|
||||||
|
exit(0)
|
||||||
|
|
||||||
exit(0)
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
@ -1,68 +1,68 @@
|
|||||||
import os, frappe, json
|
import os, frappe, json
|
||||||
|
|
||||||
from frappe.commands.site import _new_site
|
from frappe.commands.site import _new_site
|
||||||
|
from check_connection import get_config, get_site_config
|
||||||
|
|
||||||
site_name = os.environ.get("SITE_NAME", 'site1.localhost')
|
def main():
|
||||||
mariadb_root_username = os.environ.get("DB_ROOT_USER", 'root')
|
site_name = os.environ.get("SITE_NAME", 'site1.localhost')
|
||||||
mariadb_root_password = os.environ.get("MYSQL_ROOT_PASSWORD", 'admin')
|
mariadb_root_username = os.environ.get("DB_ROOT_USER", 'root')
|
||||||
force = True if os.environ.get("FORCE", None) else False
|
mariadb_root_password = os.environ.get("MYSQL_ROOT_PASSWORD", 'admin')
|
||||||
install_apps = os.environ.get("INSTALL_APPS", None)
|
force = True if os.environ.get("FORCE", None) else False
|
||||||
install_apps = install_apps.split(',') if install_apps else []
|
install_apps = os.environ.get("INSTALL_APPS", None)
|
||||||
frappe.init(site_name, new_site=True)
|
install_apps = install_apps.split(',') if install_apps else []
|
||||||
|
frappe.init(site_name, new_site=True)
|
||||||
|
|
||||||
_new_site(
|
_new_site(
|
||||||
None,
|
None,
|
||||||
site_name,
|
site_name,
|
||||||
mariadb_root_username=mariadb_root_username,
|
mariadb_root_username=mariadb_root_username,
|
||||||
mariadb_root_password=mariadb_root_password,
|
mariadb_root_password=mariadb_root_password,
|
||||||
admin_password=os.environ.get("ADMIN_PASSWORD", 'admin'),
|
admin_password=os.environ.get("ADMIN_PASSWORD", 'admin'),
|
||||||
verbose=True,
|
verbose=True,
|
||||||
install_apps=install_apps,
|
install_apps=install_apps,
|
||||||
source_sql=None,
|
source_sql=None,
|
||||||
force=force,
|
force=force,
|
||||||
reinstall=False,
|
reinstall=False,
|
||||||
)
|
)
|
||||||
|
|
||||||
config = None
|
config = get_config()
|
||||||
with open('common_site_config.json') as config_file:
|
|
||||||
config = json.load(config_file)
|
|
||||||
|
|
||||||
site_config = None
|
site_config = get_site_config(site_name)
|
||||||
with open('{site_name}/site_config.json'.format(site_name=site_name)) as site_config_file:
|
|
||||||
site_config = json.load(site_config_file)
|
|
||||||
|
|
||||||
# update User's host to '%' required to connect from any container
|
# update User's host to '%' required to connect from any container
|
||||||
command = 'mysql -h{db_host} -u{mariadb_root_username} -p{mariadb_root_password} -e '.format(
|
command = 'mysql -h{db_host} -u{mariadb_root_username} -p{mariadb_root_password} -e '.format(
|
||||||
db_host=config.get('db_host'),
|
db_host=config.get('db_host'),
|
||||||
mariadb_root_username=mariadb_root_username,
|
mariadb_root_username=mariadb_root_username,
|
||||||
mariadb_root_password=mariadb_root_password
|
mariadb_root_password=mariadb_root_password
|
||||||
)
|
)
|
||||||
command += "\"UPDATE mysql.user SET Host = '%' where User = '{db_name}'; FLUSH PRIVILEGES;\"".format(
|
command += "\"UPDATE mysql.user SET Host = '%' where User = '{db_name}'; FLUSH PRIVILEGES;\"".format(
|
||||||
db_name=site_config.get('db_name')
|
db_name=site_config.get('db_name')
|
||||||
)
|
)
|
||||||
os.system(command)
|
os.system(command)
|
||||||
|
|
||||||
# Set db password
|
# Set db password
|
||||||
command = 'mysql -h{db_host} -u{mariadb_root_username} -p{mariadb_root_password} -e '.format(
|
command = 'mysql -h{db_host} -u{mariadb_root_username} -p{mariadb_root_password} -e '.format(
|
||||||
db_host=config.get('db_host'),
|
db_host=config.get('db_host'),
|
||||||
mariadb_root_username=mariadb_root_username,
|
mariadb_root_username=mariadb_root_username,
|
||||||
mariadb_root_password=mariadb_root_password
|
mariadb_root_password=mariadb_root_password
|
||||||
)
|
)
|
||||||
command += "\"SET PASSWORD FOR '{db_name}'@'%' = PASSWORD('{db_password}'); FLUSH PRIVILEGES;\"".format(
|
command += "\"SET PASSWORD FOR '{db_name}'@'%' = PASSWORD('{db_password}'); FLUSH PRIVILEGES;\"".format(
|
||||||
db_name=site_config.get('db_name'),
|
db_name=site_config.get('db_name'),
|
||||||
db_password=site_config.get('db_password')
|
db_password=site_config.get('db_password')
|
||||||
)
|
)
|
||||||
os.system(command)
|
os.system(command)
|
||||||
|
|
||||||
# Grant permission to database
|
# Grant permission to database
|
||||||
command = 'mysql -h{db_host} -u{mariadb_root_username} -p{mariadb_root_password} -e '.format(
|
command = 'mysql -h{db_host} -u{mariadb_root_username} -p{mariadb_root_password} -e '.format(
|
||||||
db_host=config.get('db_host'),
|
db_host=config.get('db_host'),
|
||||||
mariadb_root_username=mariadb_root_username,
|
mariadb_root_username=mariadb_root_username,
|
||||||
mariadb_root_password=mariadb_root_password
|
mariadb_root_password=mariadb_root_password
|
||||||
)
|
)
|
||||||
command += "\"GRANT ALL PRIVILEGES ON \`{db_name}\`.* TO '{db_name}'@'%'; FLUSH PRIVILEGES;\"".format(
|
command += "\"GRANT ALL PRIVILEGES ON \`{db_name}\`.* TO '{db_name}'@'%'; FLUSH PRIVILEGES;\"".format(
|
||||||
db_name=site_config.get('db_name')
|
db_name=site_config.get('db_name')
|
||||||
)
|
)
|
||||||
os.system(command)
|
os.system(command)
|
||||||
|
exit(0)
|
||||||
|
|
||||||
exit(0)
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
import os, frappe
|
import os, frappe
|
||||||
from frappe.utils.background_jobs import start_worker
|
from frappe.utils.background_jobs import start_worker
|
||||||
|
|
||||||
queue = os.environ.get("WORKER_TYPE", "default")
|
def main():
|
||||||
start_worker(queue, False)
|
queue = os.environ.get("WORKER_TYPE", "default")
|
||||||
|
start_worker(queue, False)
|
||||||
|
exit(0)
|
||||||
|
|
||||||
exit(0)
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user