mirror of https://github.com/Aidaho12/haproxy-wi
parent
3ed145aac4
commit
a7ab2ae888
|
@ -318,7 +318,7 @@ def generate_service_inv(json_data: json, install_service: str) -> object:
|
|||
return inv, server_ips
|
||||
|
||||
|
||||
def run_ansible(inv: object, server_ips: str, ansible_role: str, service: str) -> object:
|
||||
def run_ansible(inv: object, server_ips: str, ansible_role: str) -> object:
|
||||
inventory_path = '/var/www/haproxy-wi/app/scripts/ansible/inventory'
|
||||
inventory = f'{inventory_path}/{ansible_role}.json'
|
||||
proxy = sql.get_setting('proxy')
|
||||
|
@ -380,3 +380,29 @@ def run_ansible(inv: object, server_ips: str, ansible_role: str, service: str) -
|
|||
|
||||
os.remove(inventory)
|
||||
return stats
|
||||
|
||||
|
||||
def service_actions_after_install(server_ips: str, service: str, json_data) -> None:
|
||||
is_docker = None
|
||||
json_data = json.loads(json_data)
|
||||
update_functions = {
|
||||
'haproxy': sql.update_haproxy,
|
||||
'nginx': sql.update_nginx,
|
||||
'apache': sql.update_apache,
|
||||
'keepalived': sql.update_keepalived,
|
||||
}
|
||||
|
||||
for server_ip in server_ips:
|
||||
server_id = sql.select_server_id_by_ip(server_ip)
|
||||
try:
|
||||
update_functions[service](server_ip)
|
||||
except Exception as e:
|
||||
raise Exception(f'error: Cannot activate {service} on server {server_ip}: {e}')
|
||||
|
||||
if service != 'keepalived':
|
||||
is_docker = json_data['services'][service]['docker']
|
||||
|
||||
if is_docker == '1' and service != 'keepalived':
|
||||
sql.insert_or_update_service_setting(server_id, service, 'dockerized', '1')
|
||||
|
||||
sql.insert_or_update_service_setting(server_id, service, 'restart', '1')
|
||||
|
|
|
@ -251,45 +251,3 @@ def ha_vip(service, cluster_id):
|
|||
return 'ok'
|
||||
except Exception as e:
|
||||
return f'error: Cannot delete VIP: {e}'
|
||||
|
||||
|
||||
@bp.route('/<service>/reconfigure/<install_service>', methods=['PUT'])
|
||||
@check_services
|
||||
def reconfigure_haproxy(service, install_service):
|
||||
json_data = request.form.get('jsonData')
|
||||
update_functions = {
|
||||
'haproxy': sql.update_haproxy,
|
||||
'nginx': sql.update_nginx,
|
||||
'apache': sql.update_apache,
|
||||
}
|
||||
generate_functions = {
|
||||
'haproxy': installation.generate_haproxy_inv,
|
||||
'nginx': installation.generate_service_inv,
|
||||
'apache': installation.generate_service_inv,
|
||||
'keepalived': installation.generate_kp_inv,
|
||||
}
|
||||
inv, server_ips = generate_functions[install_service](json_data, install_service)
|
||||
json_data = json.loads(json_data)
|
||||
is_docker = None
|
||||
|
||||
if install_service == 'keepalived':
|
||||
nice_service_name = 'HA cluster'
|
||||
else:
|
||||
service_desc = sql.select_service(install_service)
|
||||
nice_service_name = service_desc.service
|
||||
is_docker = json_data['services'][install_service]['docker']
|
||||
|
||||
for server_ip in server_ips:
|
||||
if install_service == 'keepalived':
|
||||
continue
|
||||
try:
|
||||
update_functions[install_service](server_ip)
|
||||
except Exception as e:
|
||||
return str(e)
|
||||
|
||||
if is_docker == '1':
|
||||
server_id = sql.select_server_id_by_ip(server_ip)
|
||||
sql.insert_or_update_service_setting(server_id, install_service, 'dockerized', '1')
|
||||
sql.insert_or_update_service_setting(server_id, install_service, 'restart', '1')
|
||||
|
||||
return installation.run_ansible(inv, server_ips, install_service, nice_service_name), 201
|
||||
|
|
|
@ -38,14 +38,17 @@ def install_monitoring():
|
|||
@bp.post('/<service>')
|
||||
@check_services
|
||||
def install_service(service):
|
||||
json_data = request.form.get('jsonData')
|
||||
generate_functions = {
|
||||
'haproxy': service_mod.generate_haproxy_inv,
|
||||
'nginx': service_mod.generate_service_inv,
|
||||
'apache': service_mod.generate_service_inv,
|
||||
'keepalived': service_mod.generate_kp_inv,
|
||||
}
|
||||
|
||||
try:
|
||||
json_data = request.form.get('jsonData')
|
||||
generate_functions = {
|
||||
'haproxy': service_mod.generate_haproxy_inv,
|
||||
'nginx': service_mod.generate_service_inv,
|
||||
'apache': service_mod.generate_service_inv,
|
||||
}
|
||||
inv, server_ips = generate_functions[service](json_data, service)
|
||||
service_mod.service_actions_after_install(server_ips, service, json_data)
|
||||
return service_mod.run_ansible(inv, server_ips, service, service), 201
|
||||
except Exception as e:
|
||||
return str(e)
|
||||
|
|
|
@ -415,7 +415,7 @@ function installServiceCluster(jsonData, service, progress_step) {
|
|||
var nice_service_name = {'keepalived': 'HA Custer', 'haproxy': 'HAProxy', 'nginx': 'NGINX', 'apache': 'Apache'};
|
||||
$('#server_creating_list').append('<li id="' + li_id + servers['cluster_id'] + '" class="server-creating proccessing">' + install_mess + ' ' + nice_service_name[service] + '</li>');
|
||||
return $.ajax({
|
||||
url: "/app/ha/cluster/reconfigure/" + service,
|
||||
url: "/app/install/" + service,
|
||||
type: "PUT",
|
||||
statusCode: {
|
||||
500: function () {
|
||||
|
|
Loading…
Reference in New Issue