mirror of
https://github.com/frappe/bench.git
synced 2025-01-10 00:37:51 +00:00
symlinks creation/deletion
This commit is contained in:
parent
b285a688d7
commit
47b88fb722
@ -259,10 +259,13 @@ def setup_nginx_proxy_jail(**kwargs):
|
|||||||
@click.option('--user')
|
@click.option('--user')
|
||||||
@click.option('--yes', help='Yes to regeneration of systemd config files', is_flag=True, default=False)
|
@click.option('--yes', help='Yes to regeneration of systemd config files', is_flag=True, default=False)
|
||||||
@click.option('--stop', help='Stop bench services', is_flag=True, default=False)
|
@click.option('--stop', help='Stop bench services', is_flag=True, default=False)
|
||||||
def setup_systemd(user=None, yes=False, stop=False):
|
@click.option('--create-symlinks', help='Create Symlinks', is_flag=True, default=False)
|
||||||
|
@click.option('--delete-symlinks', help='Delete Symlinks', is_flag=True, default=False)
|
||||||
|
def setup_systemd(user=None, yes=False, stop=False, create_symlinks=False, delete_symlinks=False):
|
||||||
"generate configs for systemd with an optional user argument"
|
"generate configs for systemd with an optional user argument"
|
||||||
from bench.config.systemd import generate_systemd_config
|
from bench.config.systemd import generate_systemd_config
|
||||||
generate_systemd_config(bench_path=".", user=user, yes=yes, stop=stop)
|
generate_systemd_config(bench_path=".", user=user, yes=yes,
|
||||||
|
stop=stop, create_symlinks=create_symlinks, delete_symlinks=delete_symlinks)
|
||||||
|
|
||||||
setup.add_command(setup_sudoers)
|
setup.add_command(setup_sudoers)
|
||||||
setup.add_command(setup_nginx)
|
setup.add_command(setup_nginx)
|
||||||
|
@ -1,11 +1,14 @@
|
|||||||
import os, getpass, click
|
import os, getpass, click
|
||||||
import bench
|
import bench
|
||||||
|
from bench.utils import exec_cmd
|
||||||
def generate_systemd_config(bench_path, user=None, yes=False, stop=False):
|
|
||||||
from bench.app import get_current_frappe_version, use_rq
|
from bench.app import get_current_frappe_version, use_rq
|
||||||
from bench.utils import get_bench_name, find_executable
|
from bench.utils import get_bench_name, find_executable
|
||||||
from bench.config.common_site_config import get_config, update_config, get_gunicorn_workers
|
from bench.config.common_site_config import get_config, update_config, get_gunicorn_workers
|
||||||
|
|
||||||
|
def generate_systemd_config(bench_path, user=None, yes=False,
|
||||||
|
stop=False, create_symlinks=False,
|
||||||
|
delete_symlinks=False):
|
||||||
|
|
||||||
if not user:
|
if not user:
|
||||||
user = getpass.getuser()
|
user = getpass.getuser()
|
||||||
|
|
||||||
@ -15,10 +18,17 @@ def generate_systemd_config(bench_path, user=None, yes=False, stop=False):
|
|||||||
bench_name = get_bench_name(bench_path)
|
bench_name = get_bench_name(bench_path)
|
||||||
|
|
||||||
if stop:
|
if stop:
|
||||||
from bench.utils import exec_cmd
|
|
||||||
exec_cmd('sudo systemctl stop -- $(systemctl show -p Requires {bench_name}.target | cut -d= -f2)'.format(bench_name=bench_name))
|
exec_cmd('sudo systemctl stop -- $(systemctl show -p Requires {bench_name}.target | cut -d= -f2)'.format(bench_name=bench_name))
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if create_symlinks:
|
||||||
|
_create_symlinks(bench_path)
|
||||||
|
return
|
||||||
|
|
||||||
|
if delete_symlinks:
|
||||||
|
_delete_symlinks(bench_path)
|
||||||
|
return
|
||||||
|
|
||||||
bench_info = {
|
bench_info = {
|
||||||
"bench_dir": bench_dir,
|
"bench_dir": bench_dir,
|
||||||
"sites_dir": os.path.join(bench_dir, 'sites'),
|
"sites_dir": os.path.join(bench_dir, 'sites'),
|
||||||
@ -149,3 +159,56 @@ def setup_redis_config(bench_info, bench_path):
|
|||||||
|
|
||||||
with open(bench_redis_socketio_config_path, 'w') as f:
|
with open(bench_redis_socketio_config_path, 'w') as f:
|
||||||
f.write(bench_redis_socketio_config)
|
f.write(bench_redis_socketio_config)
|
||||||
|
|
||||||
|
def _create_symlinks(bench_path):
|
||||||
|
bench_dir = os.path.abspath(bench_path)
|
||||||
|
etc_systemd_system = os.path.join('/', 'etc', 'systemd', 'system')
|
||||||
|
config_path = os.path.join(bench_dir, 'config', 'systemd')
|
||||||
|
unit_files = get_unit_files(bench_dir)
|
||||||
|
for unit_file in unit_files:
|
||||||
|
filename = "".join(unit_file)
|
||||||
|
# if '-worker' in unit_file[0] and unit_file[1] == '.service':
|
||||||
|
# unit_file.insert(1, '@')
|
||||||
|
|
||||||
|
exec_cmd('sudo ln -s {config_path}/{unit_file} {etc_systemd_system}/{unit_file_init}'.format(
|
||||||
|
config_path=config_path,
|
||||||
|
etc_systemd_system=etc_systemd_system,
|
||||||
|
unit_file=filename,
|
||||||
|
unit_file_init="".join(unit_file)
|
||||||
|
))
|
||||||
|
exec_cmd('sudo systemctl daemon-reload')
|
||||||
|
|
||||||
|
def _delete_symlinks(bench_path):
|
||||||
|
bench_dir = os.path.abspath(bench_path)
|
||||||
|
etc_systemd_system = os.path.join('/', 'etc', 'systemd', 'system')
|
||||||
|
config_path = os.path.join(bench_dir, 'config', 'systemd')
|
||||||
|
unit_files = get_unit_files(bench_dir)
|
||||||
|
for unit_file in unit_files:
|
||||||
|
# if '-worker' in unit_file[0] and unit_file[1] == '.service':
|
||||||
|
# unit_file.insert(1, '@')
|
||||||
|
|
||||||
|
exec_cmd('sudo rm {etc_systemd_system}/{unit_file_init}'.format(
|
||||||
|
config_path=config_path,
|
||||||
|
etc_systemd_system=etc_systemd_system,
|
||||||
|
unit_file_init="".join(unit_file)
|
||||||
|
))
|
||||||
|
exec_cmd('sudo systemctl daemon-reload')
|
||||||
|
|
||||||
|
def get_unit_files(bench_path):
|
||||||
|
bench_name = get_bench_name(bench_path)
|
||||||
|
unit_files = [
|
||||||
|
[bench_name, ".target"],
|
||||||
|
[bench_name+"-workers", ".target"],
|
||||||
|
[bench_name+"-web", ".target"],
|
||||||
|
[bench_name+"-redis", ".target"],
|
||||||
|
[bench_name+"-frappe-default-worker", ".service"],
|
||||||
|
[bench_name+"-frappe-short-worker", ".service"],
|
||||||
|
[bench_name+"-frappe-long-worker", ".service"],
|
||||||
|
[bench_name+"-frappe-schedule", ".service"],
|
||||||
|
[bench_name+"-frappe-web", ".service"],
|
||||||
|
[bench_name+"-node-socketio", ".service"],
|
||||||
|
[bench_name+"-redis-cache", ".service"],
|
||||||
|
[bench_name+"-redis-queue", ".service"],
|
||||||
|
[bench_name+"-redis-socketio", ".service"],
|
||||||
|
]
|
||||||
|
return unit_files
|
||||||
|
Loading…
Reference in New Issue
Block a user