diff --git a/app/modules/db/server.py b/app/modules/db/server.py index 3de62292..f600986f 100644 --- a/app/modules/db/server.py +++ b/app/modules/db/server.py @@ -112,6 +112,8 @@ def is_system_info(server_id): def select_os_info(server_id): try: return SystemInfo.get(SystemInfo.server_id == server_id).os_info + except SystemInfo.DoesNotExist: + raise RoxywiResourceNotFound except Exception as e: out_error(e) diff --git a/app/modules/service/common.py b/app/modules/service/common.py index cc1965c4..11d786c4 100644 --- a/app/modules/service/common.py +++ b/app/modules/service/common.py @@ -12,6 +12,7 @@ import app.modules.server.server as server_mod import app.modules.roxywi.common as roxywi_common import app.modules.config.section as section_mod import app.modules.config.common as config_common +from app.modules.roxywi.exception import RoxywiResourceNotFound def get_correct_service_name(service: str, server_id: int) -> str: @@ -109,6 +110,8 @@ def get_correct_apache_service_name(server_ip=None, server_id=None) -> str: try: os_info = server_sql.select_os_info(server_id) + except RoxywiResourceNotFound: + raise RoxywiResourceNotFound('Cannot find system information') except Exception as e: raise Exception(f'error: cannot get server info: {e}') diff --git a/app/modules/service/installation.py b/app/modules/service/installation.py index 8d6add4e..809641cb 100644 --- a/app/modules/service/installation.py +++ b/app/modules/service/installation.py @@ -178,15 +178,15 @@ def generate_service_inv(json_data: ServiceInstall, installed_service: str) -> o os.system('ansible-galaxy install nginxinc.nginx,0.24.3 -f --roles-path /var/www/haproxy-wi/app/scripts/ansible/roles/') for v in json_data['servers']: - server_ip = v['ip'] + s = server_sql.get_server_by_id(v['id']) if installed_service == 'apache': - correct_service_name = service_common.get_correct_apache_service_name(server_ip=server_ip, server_id=None) + correct_service_name = service_common.get_correct_apache_service_name(server_id=v['id']) if service_dir == '/etc/httpd' and correct_service_name == 'apache2': service_dir = '/etc/apache2' elif service_dir == '/etc/apache2' and correct_service_name == 'httpd': service_dir = '/etc/httpd' - inv['server']['hosts'][server_ip] = { + inv['server']['hosts'][s.ip] = { "STAT_PORT": stats_port, "DOCKER": is_docker, "STATS_USER": stats_user, @@ -198,7 +198,7 @@ def generate_service_inv(json_data: ServiceInstall, installed_service: str) -> o "STAT_PAGE": stats_page, "service": installed_service, } - server_ips.append(server_ip) + server_ips.append(s.ip) return inv, server_ips