mirror of
https://github.com/frappe/bench.git
synced 2024-11-11 15:51:03 +00:00
[Fix]
* Generate common_site_config.json while initializing a new bench * Clean-up some code
This commit is contained in:
parent
a12cffacca
commit
2a4665ca37
@ -54,7 +54,7 @@ def get_app(app, git_url, branch=None, bench='.', build_asset_files=True, verbos
|
|||||||
install_app(app, bench=bench, verbose=verbose)
|
install_app(app, bench=bench, verbose=verbose)
|
||||||
if build_asset_files:
|
if build_asset_files:
|
||||||
build_assets(bench=bench)
|
build_assets(bench=bench)
|
||||||
conf = get_config()
|
conf = get_config(bench=bench)
|
||||||
if conf.get('restart_supervisor_on_update'):
|
if conf.get('restart_supervisor_on_update'):
|
||||||
restart_supervisor_processes(bench=bench)
|
restart_supervisor_processes(bench=bench)
|
||||||
|
|
||||||
|
@ -30,7 +30,7 @@ def generate_supervisor_config(bench='.', user=None):
|
|||||||
sites = get_sites(bench=bench)
|
sites = get_sites(bench=bench)
|
||||||
if not user:
|
if not user:
|
||||||
user = getpass.getuser()
|
user = getpass.getuser()
|
||||||
config = get_config()
|
config = get_config(bench=bench)
|
||||||
|
|
||||||
config = template.render(**{
|
config = template.render(**{
|
||||||
"bench_dir": bench_dir,
|
"bench_dir": bench_dir,
|
||||||
@ -52,6 +52,30 @@ def get_site_config(site, bench='.'):
|
|||||||
with open(os.path.join(bench, 'sites', site, 'site_config.json')) as f:
|
with open(os.path.join(bench, 'sites', site, 'site_config.json')) as f:
|
||||||
return json.load(f)
|
return json.load(f)
|
||||||
|
|
||||||
|
def generate_common_site_config(bench='.'):
|
||||||
|
'''Generates the default common_site_config.json while a new bench is created'''
|
||||||
|
config = get_config(bench=bench)
|
||||||
|
|
||||||
|
celery_broker_port = config.get('redis_celery_broker_port', '11311')
|
||||||
|
celery_broker = 'redis://localhost:{0}'.format(celery_broker_port)
|
||||||
|
|
||||||
|
async_redis_server_port = config.get('redis_async_broker_port', '12311')
|
||||||
|
async_redis_server = 'redis://localhost:{0}'.format(async_redis_server_port)
|
||||||
|
|
||||||
|
cache_redis_server_port = config.get('redis_cache_port', '13311')
|
||||||
|
cache_redis_server = 'redis://localhost:{0}'.format(cache_redis_server_port)
|
||||||
|
|
||||||
|
default_common_site_config = {
|
||||||
|
"celery_broker" : celery_broker,
|
||||||
|
"async_redis_server": async_redis_server,
|
||||||
|
"cache_redis_server": cache_redis_server
|
||||||
|
}
|
||||||
|
|
||||||
|
#TODO Optionally we need to add the host or domain name in case dns_multitenant is false
|
||||||
|
|
||||||
|
with open(os.path.join(bench, 'sites', 'common_site_config.json'), 'wb') as f:
|
||||||
|
json.dump(default_common_site_config, f, indent=1, sort_keys=True)
|
||||||
|
|
||||||
def get_sites_with_config(bench='.'):
|
def get_sites_with_config(bench='.'):
|
||||||
sites = get_sites(bench=bench)
|
sites = get_sites(bench=bench)
|
||||||
ret = []
|
ret = []
|
||||||
@ -71,8 +95,9 @@ def generate_nginx_config(bench='.'):
|
|||||||
sites_dir = os.path.join(bench_dir, "sites")
|
sites_dir = os.path.join(bench_dir, "sites")
|
||||||
sites = get_sites_with_config(bench=bench)
|
sites = get_sites_with_config(bench=bench)
|
||||||
user = getpass.getuser()
|
user = getpass.getuser()
|
||||||
|
config = get_config(bench)
|
||||||
|
|
||||||
if get_config().get('serve_default_site'):
|
if config.get('serve_default_site'):
|
||||||
try:
|
try:
|
||||||
with open("sites/currentsite.txt") as f:
|
with open("sites/currentsite.txt") as f:
|
||||||
default_site = {'name': f.read().strip()}
|
default_site = {'name': f.read().strip()}
|
||||||
@ -83,9 +108,9 @@ def generate_nginx_config(bench='.'):
|
|||||||
|
|
||||||
config = template.render(**{
|
config = template.render(**{
|
||||||
"sites_dir": sites_dir,
|
"sites_dir": sites_dir,
|
||||||
"http_timeout": get_config().get("http_timeout", 120),
|
"http_timeout": config.get("http_timeout", 120),
|
||||||
"default_site": default_site,
|
"default_site": default_site,
|
||||||
"dns_multitenant": get_config().get('dns_multitenant'),
|
"dns_multitenant": config.get('dns_multitenant'),
|
||||||
"sites": sites
|
"sites": sites
|
||||||
})
|
})
|
||||||
write_config_file(bench, 'nginx.conf', config)
|
write_config_file(bench, 'nginx.conf', config)
|
||||||
@ -95,7 +120,7 @@ def generate_redis_celery_broker_config(bench='.'):
|
|||||||
_generate_redis_config(
|
_generate_redis_config(
|
||||||
template_name='redis_celery_broker.conf',
|
template_name='redis_celery_broker.conf',
|
||||||
context={
|
context={
|
||||||
"port": get_config().get('redis_async_broker_port', '12311'),
|
"port": get_config(bench).get('redis_celery_broker_port', '11311'),
|
||||||
"bench_path": os.path.abspath(bench),
|
"bench_path": os.path.abspath(bench),
|
||||||
},
|
},
|
||||||
bench=bench
|
bench=bench
|
||||||
@ -106,21 +131,21 @@ def generate_redis_async_broker_config(bench='.'):
|
|||||||
_generate_redis_config(
|
_generate_redis_config(
|
||||||
template_name='redis_async_broker.conf',
|
template_name='redis_async_broker.conf',
|
||||||
context={
|
context={
|
||||||
"port": get_config().get('redis_async_broker_port', '12311'),
|
"port": get_config(bench).get('redis_async_broker_port', '12311'),
|
||||||
"bench_path": os.path.abspath(bench)
|
|
||||||
},
|
},
|
||||||
bench=bench
|
bench=bench
|
||||||
)
|
)
|
||||||
|
|
||||||
def generate_redis_cache_config(bench='.'):
|
def generate_redis_cache_config(bench='.'):
|
||||||
"""Redis that is used and optimized for caching"""
|
"""Redis that is used and optimized for caching"""
|
||||||
|
config = get_config(bench=bench)
|
||||||
|
|
||||||
_generate_redis_config(
|
_generate_redis_config(
|
||||||
template_name='redis_cache.conf',
|
template_name='redis_cache.conf',
|
||||||
context={
|
context={
|
||||||
"maxmemory": get_config().get('cache_maxmemory', '50'),
|
"maxmemory": config.get('cache_maxmemory', '50'),
|
||||||
"port": get_config().get('redis_cache_port', '11311'),
|
"port": config.get('redis_cache_port', '13311'),
|
||||||
"redis_version": get_redis_version(),
|
"redis_version": get_redis_version(),
|
||||||
"bench_path": os.path.abspath(bench),
|
|
||||||
},
|
},
|
||||||
bench=bench
|
bench=bench
|
||||||
)
|
)
|
||||||
|
@ -52,7 +52,7 @@ def copy_default_nginx_config():
|
|||||||
def setup_production(user, bench='.'):
|
def setup_production(user, bench='.'):
|
||||||
generate_supervisor_config(bench=bench, user=user)
|
generate_supervisor_config(bench=bench, user=user)
|
||||||
generate_nginx_config(bench=bench)
|
generate_nginx_config(bench=bench)
|
||||||
fix_prod_setup_perms(frappe_user=user)
|
fix_prod_setup_perms(bench, frappe_user=user)
|
||||||
remove_default_nginx_configs()
|
remove_default_nginx_configs()
|
||||||
|
|
||||||
if is_centos7():
|
if is_centos7():
|
||||||
|
@ -2,4 +2,3 @@ dbfilename redis_async_broker.rdb
|
|||||||
dir {{process_files_path}}
|
dir {{process_files_path}}
|
||||||
pidfile {{process_files_path}}/redis_async_broker.pid
|
pidfile {{process_files_path}}/redis_async_broker.pid
|
||||||
port {{port}}
|
port {{port}}
|
||||||
bench_path {{bench_path}}
|
|
||||||
|
@ -6,4 +6,3 @@ maxmemory {{maxmemory}}mb
|
|||||||
maxmemory-policy allkeys-lru
|
maxmemory-policy allkeys-lru
|
||||||
save ""
|
save ""
|
||||||
appendonly no
|
appendonly no
|
||||||
bench_path {{bench_path}}
|
|
||||||
|
@ -2,4 +2,3 @@ dbfilename redis_celery_broker.rdb
|
|||||||
dir {{process_files_path}}
|
dir {{process_files_path}}
|
||||||
pidfile {{process_files_path}}/redis_celery_broker.pid
|
pidfile {{process_files_path}}/redis_celery_broker.pid
|
||||||
port {{port}}
|
port {{port}}
|
||||||
bench_path {{bench_path}}
|
|
||||||
|
@ -103,5 +103,8 @@ class TestBenchInit(unittest.TestCase):
|
|||||||
for key, port in ports:
|
for key, port in ports:
|
||||||
self.assertEqual(config_json.get(key), port)
|
self.assertEqual(config_json.get(key), port)
|
||||||
|
|
||||||
|
def assert_site_config(self, bench_name):
|
||||||
|
pass
|
||||||
|
|
||||||
def assert_exists(self, *args):
|
def assert_exists(self, *args):
|
||||||
self.assertTrue(os.path.exists(os.path.join(*args)))
|
self.assertTrue(os.path.exists(os.path.join(*args)))
|
||||||
|
@ -49,7 +49,7 @@ def init(path, apps_path=None, no_procfile=False, no_backups=False,
|
|||||||
no_auto_update=False, frappe_path=None, frappe_branch=None, wheel_cache_dir=None,
|
no_auto_update=False, frappe_path=None, frappe_branch=None, wheel_cache_dir=None,
|
||||||
verbose=False):
|
verbose=False):
|
||||||
from .app import get_app, install_apps_from_path
|
from .app import get_app, install_apps_from_path
|
||||||
from .config import generate_redis_cache_config, generate_redis_async_broker_config, generate_redis_celery_broker_config
|
from .config import generate_redis_cache_config, generate_redis_async_broker_config, generate_redis_celery_broker_config, generate_common_site_config
|
||||||
global FRAPPE_VERSION
|
global FRAPPE_VERSION
|
||||||
|
|
||||||
if os.path.exists(path):
|
if os.path.exists(path):
|
||||||
@ -68,6 +68,8 @@ def init(path, apps_path=None, no_procfile=False, no_backups=False,
|
|||||||
bench_config = make_bench_config()
|
bench_config = make_bench_config()
|
||||||
put_config(bench_config, bench=path)
|
put_config(bench_config, bench=path)
|
||||||
|
|
||||||
|
generate_common_site_config(bench=path)
|
||||||
|
|
||||||
if not frappe_path:
|
if not frappe_path:
|
||||||
frappe_path = 'https://github.com/frappe/frappe.git'
|
frappe_path = 'https://github.com/frappe/frappe.git'
|
||||||
get_app('frappe', frappe_path, branch=frappe_branch, bench=path, build_asset_files=False, verbose=verbose)
|
get_app('frappe', frappe_path, branch=frappe_branch, bench=path, build_asset_files=False, verbose=verbose)
|
||||||
@ -100,8 +102,8 @@ def make_bench_config():
|
|||||||
return bench_config
|
return bench_config
|
||||||
|
|
||||||
def get_max_worker_count():
|
def get_max_worker_count():
|
||||||
'''This function will return the maximum workers that can be started depending upon'''
|
'''This function will return the maximum workers that can be started depending upon
|
||||||
'''number of cpu's present on the machine'''
|
number of cpu's present on the machine'''
|
||||||
n_cpus = multiprocessing.cpu_count()
|
n_cpus = multiprocessing.cpu_count()
|
||||||
return dict(max_workers=2 * n_cpus)
|
return dict(max_workers=2 * n_cpus)
|
||||||
|
|
||||||
@ -291,7 +293,7 @@ def setup_logging(bench='.'):
|
|||||||
logger.addHandler(hdlr)
|
logger.addHandler(hdlr)
|
||||||
logger.setLevel(logging.DEBUG)
|
logger.setLevel(logging.DEBUG)
|
||||||
|
|
||||||
def get_config(bench='.'):
|
def get_config(bench):
|
||||||
config_path = os.path.join(bench, 'config.json')
|
config_path = os.path.join(bench, 'config.json')
|
||||||
if not os.path.exists(config_path):
|
if not os.path.exists(config_path):
|
||||||
return {}
|
return {}
|
||||||
@ -473,7 +475,7 @@ def drop_privileges(uid_name='nobody', gid_name='nogroup'):
|
|||||||
# Ensure a very conservative umask
|
# Ensure a very conservative umask
|
||||||
os.umask(022)
|
os.umask(022)
|
||||||
|
|
||||||
def fix_prod_setup_perms(frappe_user=None):
|
def fix_prod_setup_perms(bench='.', frappe_user=None):
|
||||||
files = [
|
files = [
|
||||||
"logs/web.error.log",
|
"logs/web.error.log",
|
||||||
"logs/web.log",
|
"logs/web.log",
|
||||||
@ -486,7 +488,7 @@ def fix_prod_setup_perms(frappe_user=None):
|
|||||||
]
|
]
|
||||||
|
|
||||||
if not frappe_user:
|
if not frappe_user:
|
||||||
frappe_user = get_config().get('frappe_user')
|
frappe_user = get_config(bench).get('frappe_user')
|
||||||
|
|
||||||
if not frappe_user:
|
if not frappe_user:
|
||||||
print "frappe user not set"
|
print "frappe user not set"
|
||||||
|
Loading…
Reference in New Issue
Block a user