mirror of https://github.com/Aidaho12/haproxy-wi
v8.0: Refactor code and fix various issues across modules
Added return_master setting, removed unnecessary code, and improved exception handling throughout the project. Key updates include enabling return_master by default, simplifying database update methods, handling empty IP exceptions more appropriately, and refining JavaScript validations.pull/399/head
parent
108773c564
commit
075d2b935b
|
@ -213,7 +213,9 @@ def update_cluster(cluster_id: int, name: str, desc: str, syn_flood: int) -> Non
|
|||
|
||||
def update_ha_cluster_vip(cluster_id: int, router_id: int, vip: str, return_master: int, use_src: int) -> None:
|
||||
try:
|
||||
HaClusterVip.update(vip=vip, return_master=return_master, use_src=use_src).where((HaClusterVip.cluster_id == cluster_id) & (HaClusterVip.router_id == router_id)).execute()
|
||||
HaClusterVip.update(vip=vip, return_master=return_master, use_src=use_src).where(
|
||||
(HaClusterVip.cluster_id == cluster_id) & (HaClusterVip.router_id == router_id)
|
||||
).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
|
|
@ -171,14 +171,10 @@ def select_service(slug: str) -> object:
|
|||
|
||||
|
||||
def update_keepalived(serv):
|
||||
query = Server.update(keepalived='1').where(Server.ip == serv)
|
||||
try:
|
||||
query.execute()
|
||||
Server.update(keepalived='1').where(Server.ip == serv).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
def select_apache(serv):
|
||||
|
@ -190,15 +186,11 @@ def select_apache(serv):
|
|||
return apache
|
||||
|
||||
|
||||
def update_apache(serv: str) -> bool:
|
||||
query = Server.update(apache='1').where(Server.ip == serv)
|
||||
def update_apache(serv: str) -> None:
|
||||
try:
|
||||
query.execute()
|
||||
Server.update(apache='1').where(Server.ip == serv).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
return False
|
||||
else:
|
||||
return True
|
||||
|
||||
|
||||
def select_nginx(serv):
|
||||
|
@ -210,14 +202,11 @@ def select_nginx(serv):
|
|||
return query_res
|
||||
|
||||
|
||||
def update_nginx(serv: str) -> bool:
|
||||
query = Server.update(nginx=1).where(Server.ip == serv)
|
||||
def update_nginx(serv: str) -> None:
|
||||
try:
|
||||
query.execute()
|
||||
return True
|
||||
Server.update(nginx=1).where(Server.ip == serv).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
return False
|
||||
|
||||
|
||||
def select_haproxy(serv):
|
||||
|
@ -230,13 +219,10 @@ def select_haproxy(serv):
|
|||
|
||||
|
||||
def update_haproxy(serv):
|
||||
query = Server.update(haproxy=1).where(Server.ip == serv)
|
||||
try:
|
||||
query.execute()
|
||||
return True
|
||||
Server.update(haproxy=1).where(Server.ip == serv).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
return False
|
||||
|
||||
|
||||
def select_keepalived(serv):
|
||||
|
|
|
@ -38,9 +38,7 @@ def update_user(user, email, role, user_id, enabled):
|
|||
|
||||
def update_user_from_admin_area(user_id, **kwargs):
|
||||
try:
|
||||
query = User.update(**kwargs).where(User.user_id == user_id)
|
||||
print(query)
|
||||
query.execute()
|
||||
User.update(**kwargs).where(User.user_id == user_id).execute()
|
||||
except Exception as e:
|
||||
out_error(e)
|
||||
|
||||
|
|
|
@ -161,7 +161,7 @@ class HAClusterVIP(BaseModel):
|
|||
return_master: Optional[bool] = 1
|
||||
virt_server: Optional[bool] = 1
|
||||
router_id: Optional[int] = None
|
||||
servers: Dict[int, HAClusterServer]
|
||||
servers: List[HAClusterServer]
|
||||
|
||||
|
||||
class HAClusterRequest(BaseModel):
|
||||
|
|
|
@ -108,10 +108,10 @@ def get_remote_files(server_ip: str, config_dir: str, file_format: str):
|
|||
return config_files
|
||||
|
||||
|
||||
def get_system_info(server_ip: str) -> str:
|
||||
def get_system_info(server_ip: str) -> None:
|
||||
server_ip = common.is_ip_or_dns(server_ip)
|
||||
if server_ip == '':
|
||||
return 'error: IP cannot be empty'
|
||||
raise Exception('IP cannot be empty')
|
||||
|
||||
server_id = server_sql.select_server_id_by_ip(server_ip)
|
||||
command = "sudo lshw -quiet -json"
|
||||
|
@ -120,7 +120,7 @@ def get_system_info(server_ip: str) -> str:
|
|||
try:
|
||||
sys_info_returned = ssh_command(server_ip, command, timeout=5)
|
||||
except Exception as e:
|
||||
raise Exception(e)
|
||||
raise Exception(f'Cannot connect to the server to get system info: {server_ip}: {e}')
|
||||
|
||||
if 'not found' in sys_info_returned:
|
||||
raise Exception(f'You should install lshw on the server {server_ip}. Update System info after installation.')
|
||||
|
@ -128,12 +128,12 @@ def get_system_info(server_ip: str) -> str:
|
|||
try:
|
||||
os_info = ssh_command(server_ip, command1)
|
||||
except Exception as e:
|
||||
raise Exception(e)
|
||||
raise Exception(f'Cannot connect to the server to get OS info: {server_ip} : {e}')
|
||||
|
||||
os_info = os_info.strip()
|
||||
try:
|
||||
system_info = json.loads(sys_info_returned)
|
||||
system_info['id']
|
||||
_ = system_info['id']
|
||||
except Exception:
|
||||
sys_info_returned = json.loads(sys_info_returned)
|
||||
try:
|
||||
|
@ -351,7 +351,7 @@ def get_system_info(server_ip: str) -> str:
|
|||
try:
|
||||
server_sql.insert_system_info(server_id, os_info, sys_info, cpu, ram, network, disks)
|
||||
except Exception as e:
|
||||
raise f'error: Cannot get system info from server: {e}'
|
||||
raise e
|
||||
|
||||
|
||||
def show_system_info(server_ip: str, server_id: int) -> str:
|
||||
|
@ -359,7 +359,7 @@ def show_system_info(server_ip: str, server_id: int) -> str:
|
|||
try:
|
||||
get_system_info(server_ip)
|
||||
except Exception as e:
|
||||
return f'{e}'
|
||||
return f'Cannot get system info: {e}'
|
||||
try:
|
||||
system_info = server_sql.select_one_system_info(server_id)
|
||||
except Exception as e:
|
||||
|
@ -422,46 +422,44 @@ def create_server(hostname, ip, group, type_ip, enable, master, cred, port, desc
|
|||
return last_id
|
||||
|
||||
|
||||
def update_server_after_creating(hostname: str, ip: str, scan_server: int) -> None:
|
||||
def update_server_after_creating(hostname: str, ip: str) -> None:
|
||||
try:
|
||||
checker_sql.insert_new_checker_setting_for_server(ip)
|
||||
except Exception as e:
|
||||
roxywi_common.handle_exceptions(e, ip, f'Cannot insert Checker settings for {hostname}', roxywi=1, login=1)
|
||||
|
||||
raise Exception(f'Cannot insert Checker settings for {hostname}: {e}')
|
||||
try:
|
||||
if scan_server:
|
||||
nginx_config_path = sql.get_setting('nginx_config_path')
|
||||
haproxy_config_path = sql.get_setting('haproxy_config_path')
|
||||
haproxy_dir = sql.get_setting('haproxy_dir')
|
||||
apache_config_path = sql.get_setting('apache_config_path')
|
||||
keepalived_config_path = sql.get_setting('keepalived_config_path')
|
||||
nginx_config_path = sql.get_setting('nginx_config_path')
|
||||
haproxy_config_path = sql.get_setting('haproxy_config_path')
|
||||
haproxy_dir = sql.get_setting('haproxy_dir')
|
||||
apache_config_path = sql.get_setting('apache_config_path')
|
||||
keepalived_config_path = sql.get_setting('keepalived_config_path')
|
||||
|
||||
if is_file_exists(ip, nginx_config_path):
|
||||
service_sql.update_nginx(ip)
|
||||
if is_file_exists(ip, nginx_config_path):
|
||||
service_sql.update_nginx(ip)
|
||||
|
||||
if is_file_exists(ip, haproxy_config_path):
|
||||
service_sql.update_haproxy(ip)
|
||||
if is_file_exists(ip, haproxy_config_path):
|
||||
service_sql.update_haproxy(ip)
|
||||
|
||||
if is_file_exists(ip, keepalived_config_path):
|
||||
service_sql.update_keepalived(ip)
|
||||
if is_file_exists(ip, keepalived_config_path):
|
||||
service_sql.update_keepalived(ip)
|
||||
|
||||
if is_file_exists(ip, apache_config_path):
|
||||
service_sql.update_apache(ip)
|
||||
if is_file_exists(ip, apache_config_path):
|
||||
service_sql.update_apache(ip)
|
||||
|
||||
if is_file_exists(ip, haproxy_dir + '/waf/bin/modsecurity'):
|
||||
waf_sql.insert_waf_metrics_enable(ip, "0")
|
||||
waf_sql.insert_waf_rules(ip)
|
||||
if is_file_exists(ip, haproxy_dir + '/waf/bin/modsecurity'):
|
||||
waf_sql.insert_waf_metrics_enable(ip, "0")
|
||||
waf_sql.insert_waf_rules(ip)
|
||||
|
||||
if is_service_active(ip, 'firewalld'):
|
||||
server_sql.update_firewall(ip)
|
||||
if is_service_active(ip, 'firewalld'):
|
||||
server_sql.update_firewall(ip)
|
||||
|
||||
except Exception as e:
|
||||
roxywi_common.handle_exceptions(e, ip, f'Cannot get scan the server {hostname}', roxywi=1, login=1)
|
||||
raise Exception(f'Cannot get scan the server {hostname}: {e}')
|
||||
|
||||
try:
|
||||
get_system_info(ip)
|
||||
except Exception as e:
|
||||
roxywi_common.handle_exceptions(e, ip, f'Cannot get information from {hostname}', roxywi=1, login=1)
|
||||
raise Exception(f'Cannot get information from {hostname}: {e}')
|
||||
|
||||
|
||||
def delete_server(server_id: int) -> None:
|
||||
|
|
|
@ -148,7 +148,7 @@ def update_vip(cluster_id: int, router_id: int, cluster: Union[HAClusterRequest,
|
|||
servers = _get_servers_dict(cluster)
|
||||
|
||||
try:
|
||||
ha_sql.update_ha_cluster_vip(cluster_id, router_id, cluster.vip, cluster.return_master, cluster.use_src)
|
||||
ha_sql.update_ha_cluster_vip(cluster_id, router_id, str(cluster.vip), cluster.return_master, cluster.use_src)
|
||||
except Exception as e:
|
||||
raise Exception(f'error: Cannot update VIP: {e}')
|
||||
|
||||
|
@ -261,7 +261,7 @@ def add_or_update_virt(cluster: Union[HAClusterRequest, HAClusterVIP], servers:
|
|||
nginx = 0
|
||||
apache = 0
|
||||
master_ip = None
|
||||
vip = cluster.vip
|
||||
vip = str(cluster.vip)
|
||||
|
||||
for value in servers:
|
||||
if value['master']:
|
||||
|
|
|
@ -339,12 +339,12 @@ def install_service(service: str, json_data: Union[str, ServiceInstall]) -> dict
|
|||
try:
|
||||
inv, server_ips = generate_functions[service](json_data, service)
|
||||
except Exception as e:
|
||||
roxywi_common.handle_exceptions(e, 'Roxy-WI server', f'Cannot generate inv {service}', roxywi=1)
|
||||
raise Exception(f'Cannot generate inv {service}: {e}')
|
||||
try:
|
||||
service_actions_after_install(server_ips, service, json_data)
|
||||
return run_ansible(inv, server_ips, service)
|
||||
except Exception as e:
|
||||
roxywi_common.handle_exceptions(e, 'Roxy-WI server', f'Cannot install {service}', roxywi=1)
|
||||
raise Exception(f'Cannot install {service}: {e}')
|
||||
|
||||
|
||||
def _install_ansible_collections():
|
||||
|
|
|
@ -39,13 +39,6 @@ $( function() {
|
|||
let id = $(this).attr('id').split('-');
|
||||
updateServer(id[1])
|
||||
});
|
||||
$( "#scan_server" ).change(function() {
|
||||
if ($('#scan_server').is(':checked')) {
|
||||
$('.services_for_scan').hide();
|
||||
} else {
|
||||
$('.services_for_scan').show();
|
||||
}
|
||||
});
|
||||
});
|
||||
function addServer(dialog_id) {
|
||||
toastr.clear()
|
||||
|
@ -54,17 +47,12 @@ function addServer(dialog_id) {
|
|||
let ip = $('#new-ip').val();
|
||||
let server_group = $('#new-server-group-add').val();
|
||||
let cred = $('#credentials').val();
|
||||
let scan_server = 0;
|
||||
let type_ip = 0;
|
||||
let enable = 0;
|
||||
let haproxy = 0;
|
||||
let nginx = 0;
|
||||
let apache = 0;
|
||||
let firewall = 0;
|
||||
let add_to_smon = 0;
|
||||
if ($('#scan_server').is(':checked')) {
|
||||
scan_server = '1';
|
||||
}
|
||||
if ($('#type_ip').is(':checked')) {
|
||||
type_ip = '1';
|
||||
}
|
||||
|
@ -83,9 +71,6 @@ function addServer(dialog_id) {
|
|||
if ($('#firewall').is(':checked')) {
|
||||
firewall = '1';
|
||||
}
|
||||
if ($('#add_to_smon').is(':checked')) {
|
||||
add_to_smon = '1';
|
||||
}
|
||||
let allFields = $([]).add($('#new-server-add')).add($('#new-ip')).add($('#new-port'))
|
||||
allFields.removeClass("ui-state-error");
|
||||
valid = valid && checkLength($('#new-server-add'), "Hostname", 1);
|
||||
|
@ -113,7 +98,6 @@ function addServer(dialog_id) {
|
|||
'nginx': nginx,
|
||||
"apache": apache,
|
||||
"firewall_enable": firewall,
|
||||
"add_to_smon": add_to_smon,
|
||||
"enabled": enable,
|
||||
"master": $('#slavefor').val(),
|
||||
"cred_id": cred,
|
||||
|
|
|
@ -87,7 +87,7 @@ function addCreds(dialog_id) {
|
|||
let id = data.id;
|
||||
common_ajax_action_after_success(dialog_id, 'ssh-table-' + id, 'ssh_enable_table', data.data);
|
||||
$('select:regex(id, credentials)').append('<option value=' + id + '>' + ssh_add_div.val() + '</option>').selectmenu("refresh");
|
||||
$('select:regex(id, ssh-key-name)').append('<option value=' + ssh_add_div.val() + '_' + group_name + '>' + ssh_add_div.val() + '_' + group_name + '</option>').selectmenu("refresh");
|
||||
$('select:regex(id, ssh-key-name)').append('<option value=' + id + '>' + ssh_add_div.val() + '_' + group_name + '</option>').selectmenu("refresh");
|
||||
$("input[type=submit], button").button();
|
||||
$("input[type=checkbox]").checkboxradio();
|
||||
$("select").selectmenu();
|
||||
|
|
|
@ -298,7 +298,7 @@ function saveCluster(jsonData, cluster_id=0, edited=0, reconfigure=0) {
|
|||
let req_method = 'POST';
|
||||
let url = api_prefix + '/ha/cluster';
|
||||
if ($('#virt_server').is(':checked')) {
|
||||
virt_server = '1';
|
||||
virt_server = 1;
|
||||
}
|
||||
if ($('#return_master').is(':checked')) {
|
||||
return_master = '1';
|
||||
|
@ -776,7 +776,7 @@ function createJsonCluster(div_id) {
|
|||
}
|
||||
function createJsonVip(div_id) {
|
||||
let jsonData = {};
|
||||
jsonData = {'servers': {}};
|
||||
jsonData = {'servers': []};
|
||||
$(div_id).each(function () {
|
||||
let this_id = $(this).attr('id').split('-')[1];
|
||||
let eth1 = $('#slave_int-' + this_id).val();
|
||||
|
@ -786,9 +786,9 @@ function createJsonVip(div_id) {
|
|||
let ip = $('#master_int_div-' + this_id).attr('data-ip');
|
||||
let name = $('#master_int_div-' + this_id).parent().text().replace('\n','').replace('\t','').trim();
|
||||
if (eth) {
|
||||
jsonData['servers'][this_id] = {'eth': eth, 'ip': ip, 'name': name, 'master': 1};
|
||||
jsonData['servers'].push({'id': this_id, 'eth': eth, 'ip': ip, 'name': name, 'master': 1});
|
||||
} else {
|
||||
jsonData['servers'][this_id] = {'eth': eth1, 'ip': ip1, 'name': name1, 'master': 0};
|
||||
jsonData['servers'].push({'id': this_id,'eth': eth1, 'ip': ip1, 'name': name1, 'master': 0});
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -819,7 +819,7 @@ function clearClusterDialog(edited=0) {
|
|||
$('#vrrp-ip-edit').val('');
|
||||
$('#cur_master_ver').text('');
|
||||
$('#virt_server').prop('checked', true);
|
||||
$('#return_master').prop('checked', false);
|
||||
$('#return_master').prop('checked', true);
|
||||
$('#use_src').prop('checked', false);
|
||||
$('#hap').prop('checked', false);
|
||||
$('#hap_docker').prop('checked', false);
|
||||
|
|
|
@ -111,8 +111,7 @@ $( function() {
|
|||
if (data.status === 'failed') {
|
||||
toastr.error(data.error);
|
||||
} else {
|
||||
// parseAnsibleJsonOutput(data, service + ' GeoIP', '#geoip_service');
|
||||
toastr.success('GeoIP has been installed');
|
||||
parseAnsibleJsonOutput(data, service + ' GeoIP', '#geoip_service');
|
||||
$("#geoip_service").trigger("selectmenuchange");
|
||||
}
|
||||
}
|
||||
|
@ -183,8 +182,8 @@ function installService(service) {
|
|||
if (data.status === 'failed') {
|
||||
toastr.error(data.error);
|
||||
} else {
|
||||
parseAnsibleJsonOutput(data, nice_names[service], select_id);
|
||||
$(select_id).trigger("selectmenuchange");
|
||||
toastr.success(nice_service_name[service] + ' has been installed');
|
||||
$("#ajax").empty();
|
||||
}
|
||||
}
|
||||
|
@ -260,7 +259,6 @@ function showServiceVersion(service) {
|
|||
ver_div.text(service + ' has not installed');
|
||||
install_div.text('Install');
|
||||
install_div.attr('title', 'Install');
|
||||
toastr.warning('Cannot get version');
|
||||
} else {
|
||||
ver_div.text(data.Version);
|
||||
ver_div.css('font-weight', 'bold');
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
</td>
|
||||
<td>
|
||||
{% for r in roles %}
|
||||
{% if r.role_id == USER.role|int() %}
|
||||
{% if r.role_id == USER.role_id|int() %}
|
||||
{{ r.name }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
@ -58,7 +58,7 @@
|
|||
</td>
|
||||
<td>
|
||||
{% for r in roles %}
|
||||
{% if r.role_id == USER.role|int() %}
|
||||
{% if r.role_id == USER.role_id|int() %}
|
||||
{{ r.name }}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
|
|
@ -26,30 +26,6 @@
|
|||
<td class="padding20" title="{{lang.words.virtual|title()}} IP(VRRP)">{{lang.words.virt|title()}}</td>
|
||||
<td>{{ checkbox('type_ip') }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20 help_cursor" title="{{lang.phrases.add_to_smon_desc}}">{{lang.words.add|title()}} {{lang.words.in}} SMON</td>
|
||||
<td>{{ checkbox('add_to_smon', checked='checked') }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20 help_cursor" title="{{lang.phrases.scan_title}}">{{lang.words.scan|title()}} {{lang.words.the}} {{lang.words.server}}</td>
|
||||
<td>{{ checkbox('scan_server', checked='checked') }}</td>
|
||||
</tr>
|
||||
<tr class="services_for_scan" style="display: none">
|
||||
<td class="padding20" title="{{lang.words.is_there}} HAProxy?">HAProxy</td>
|
||||
<td>{{ checkbox('haproxy') }} </td>
|
||||
</tr>
|
||||
<tr class="services_for_scan" style="display: none">
|
||||
<td class="padding20" title="{{lang.words.is_there}} NGINX?">NGINX</td>
|
||||
<td>{{ checkbox('nginx') }}</td>
|
||||
</tr>
|
||||
<tr class="services_for_scan" style="display: none">
|
||||
<td class="padding20" title="{{lang.words.is_there}} Apache?">Apache</td>
|
||||
<td>{{ checkbox('apache') }}</td>
|
||||
</tr>
|
||||
<tr class="services_for_scan" style="display: none">
|
||||
<td class="padding20" title="{{lang.words.is_there}} Firewall?">Firewall</td>
|
||||
<td>{{ checkbox('firewall') }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="padding20 help_cursor" title="{{lang.phrases.slave_for_title}}">{{lang.words.slave_for}}</td>
|
||||
<td>
|
||||
|
|
|
@ -95,6 +95,7 @@ class HAView(MethodView):
|
|||
settings.setdefault('vip', vip.vip)
|
||||
settings.setdefault('virt_server', is_virt)
|
||||
settings.setdefault('use_src', vip.use_src)
|
||||
settings.setdefault('return_master', vip.return_master)
|
||||
|
||||
for slave in slaves:
|
||||
if slave[31]:
|
||||
|
|
|
@ -80,13 +80,16 @@ class InstallView(MethodView):
|
|||
return roxywi_common.handler_exceptions_for_json_data(e, '')
|
||||
try:
|
||||
output = service_mod.install_service(service, body)
|
||||
if len(output['failures']) > 0 or len(output['dark']) > 0:
|
||||
raise Exception(f'Cannot install {service.title()}. Check Apache error log')
|
||||
if 'api' in request.url:
|
||||
try:
|
||||
service_sql.update_hapwi_server(server_id, body.checker, body.metrics, body.auto_start, service)
|
||||
except Exception as e:
|
||||
return roxywi_common.handler_exceptions_for_json_data(e, f'Cannot update Tools settings for {service.title()}')
|
||||
return BaseResponse().model_dump(mode='json'), 201
|
||||
except Exception as e:
|
||||
return roxywi_common.handler_exceptions_for_json_data(e, f'Cannot install {service.title()}')
|
||||
|
||||
if 'api' in request.url:
|
||||
try:
|
||||
service_sql.update_hapwi_server(server_id, body.checker, body.metrics, body.auto_start, service)
|
||||
if len(output['failures']) > 0 or len(output['dark']) > 0:
|
||||
raise Exception(f'Cannot install {service.title()}. Check Apache error log')
|
||||
except Exception as e:
|
||||
return roxywi_common.handler_exceptions_for_json_data(e, f'Cannot update Tools settings for {service.title()}')
|
||||
else:
|
||||
return output
|
||||
return BaseResponse().model_dump(mode='json'), 201
|
||||
|
|
|
@ -166,7 +166,7 @@ class ServerView(MethodView):
|
|||
|
||||
try:
|
||||
last_id = server_mod.create_server(
|
||||
body.hostname, body.ip, group, body.type_ip, body.enabled, body.master, body.cred_id, body.port, body.description,
|
||||
body.hostname, str(body.ip), group, body.type_ip, body.enabled, body.master, body.cred_id, body.port, body.description,
|
||||
body.haproxy, body.nginx, body.apache, body.firewall_enable
|
||||
)
|
||||
except Exception as e:
|
||||
|
@ -174,7 +174,7 @@ class ServerView(MethodView):
|
|||
|
||||
roxywi_common.logging(body.ip, f'A new server {body.hostname} has been created', login=1, keep_history=1, service='server')
|
||||
try:
|
||||
server_mod.update_server_after_creating(body.hostname, body.ip, body.scan_server)
|
||||
server_mod.update_server_after_creating(body.hostname, str(body.ip))
|
||||
except Exception as e:
|
||||
roxywi_common.logging(body.ip, f'Cannot get system info from {body.hostname}: {e}', login=1, keep_history=1, service='server', mes_type='error')
|
||||
|
||||
|
@ -183,7 +183,7 @@ class ServerView(MethodView):
|
|||
else:
|
||||
try:
|
||||
user_subscription = roxywi_common.return_user_status()
|
||||
except Exception as e:
|
||||
except Exception:
|
||||
user_subscription = roxywi_common.return_unsubscribed_user_status()
|
||||
lang = roxywi_common.get_user_lang_for_flask()
|
||||
kwargs = {
|
||||
|
|
|
@ -127,7 +127,10 @@ class ServiceView(MethodView):
|
|||
data = ErrorResponse(error=str(e)).model_dump(mode='json')
|
||||
elif service == 'keepalived':
|
||||
cmd = "sudo /usr/sbin/keepalived -v 2>&1|head -1|awk '{print $2}'"
|
||||
version = server_mod.ssh_command(server.ip, cmd)
|
||||
try:
|
||||
version = server_mod.ssh_command(server.ip, cmd)
|
||||
except Exception as e:
|
||||
return roxywi_common.handler_exceptions_for_json_data(e, 'Cannot get version')
|
||||
if version == '/usr/sbin/keepalived:\r\n':
|
||||
return ErrorResponse(error='Cannot get keepalived').model_dump(mode='json')
|
||||
data = {'Version': version}
|
||||
|
|
Loading…
Reference in New Issue