from app.modules.db.db_model import Server, Services, ServiceSetting from app.modules.db.common import out_error def update_hapwi_server(server_id, alert, metrics, active, service_name): try: if service_name == 'nginx': update_hapwi = Server.update( nginx_alert=alert, nginx_active=active, nginx_metrics=metrics ).where(Server.server_id == server_id) elif service_name == 'keepalived': update_hapwi = Server.update(keepalived_alert=alert, keepalived_active=active).where( Server.server_id == server_id) elif service_name == 'apache': update_hapwi = Server.update(apache_alert=alert, apache_active=active, apache_metrics=metrics).where( Server.server_id == server_id) else: update_hapwi = Server.update(haproxy_alert=alert, haproxy_metrics=metrics, haproxy_active=active).where( Server.server_id == server_id) update_hapwi.execute() except Exception as e: out_error(e) def update_server_services(server_id: int, haproxy: int, nginx: int, apache: int, keepalived: int) -> bool: try: server_update = Server.update( haproxy=haproxy, nginx=nginx, apache=apache, keepalived=keepalived ).where(Server.server_id == server_id) server_update.execute() except Exception as e: out_error(e) return False else: return True def insert_or_update_service_setting(server_id, service, setting, value): try: ServiceSetting.insert(server_id=server_id, service=service, setting=setting, value=value).on_conflict( 'replace').execute() except Exception as e: out_error(e) return False else: return True def select_service_settings(server_id: int, service: str) -> str: query = ServiceSetting.select().where((ServiceSetting.server_id == server_id) & (ServiceSetting.service == service)) try: query_res = query.execute() except Exception as e: out_error(e) else: return query_res def select_docker_service_settings(server_id: int, service: str) -> str: query = ServiceSetting.select().where( (ServiceSetting.server_id == server_id) & (ServiceSetting.service == service) & (ServiceSetting.setting == 'dockerized') ) try: query_res = query.execute() except Exception as e: out_error(e) else: return query_res def select_docker_services_settings(service: str) -> str: query = ServiceSetting.select().where( (ServiceSetting.service == service) & (ServiceSetting.setting == 'dockerized') ) try: query_res = query.execute() except Exception as e: out_error(e) else: return query_res def select_restart_service_settings(server_id: int, service: str) -> str: query = ServiceSetting.select().where( (ServiceSetting.server_id == server_id) & (ServiceSetting.service == service) & (ServiceSetting.setting == 'restart') ) try: query_res = query.execute() except Exception as e: out_error(e) else: return query_res def select_restart_services_settings(service: str) -> str: query = ServiceSetting.select().where( (ServiceSetting.service == service) & (ServiceSetting.setting == 'restart') ) try: query_res = query.execute() except Exception as e: out_error(e) else: return query_res def select_service_setting(server_id: int, service: str, setting: str) -> str: try: result = ServiceSetting.get( (ServiceSetting.server_id == server_id) & (ServiceSetting.service == service) & (ServiceSetting.setting == setting) ).value except Exception: return '0' else: return result def delete_service_settings(server_id: int): query = ServiceSetting.delete().where(ServiceSetting.server_id == server_id) try: query.execute() except Exception as e: out_error(e) def select_service_name_by_id(service_id: int) -> str: try: service = Services.get(Services.service_id == service_id).service except Exception as e: return out_error(e) else: return service def select_service_id_by_slug(service_slug: str) -> int: try: service = Services.get(Services.slug == service_slug).service_id except Exception as e: return out_error(e) else: return service def select_services(): try: return Services.select().execute() except Exception as e: out_error(e) def select_service(slug: str) -> Services: try: return Services.get(Services.slug == slug) except Exception as e: out_error(e) def update_keepalived(serv): try: Server.update(keepalived='1').where(Server.ip == serv).execute() except Exception as e: out_error(e) def update_apache(serv: str) -> None: try: Server.update(apache='1').where(Server.ip == serv).execute() except Exception as e: out_error(e) def update_nginx(serv: str) -> None: try: Server.update(nginx=1).where(Server.ip == serv).execute() except Exception as e: out_error(e) def update_haproxy(serv): try: Server.update(haproxy=1).where(Server.ip == serv).execute() except Exception as e: out_error(e) def select_count_services(service: str) -> int: try: if service == 'haproxy': query_res = Server.select().where(Server.haproxy == 1).count() elif service == 'nginx': query_res = Server.select().where(Server.nginx == 1).count() elif service == 'keepalived': query_res = Server.select().where(Server.keepalived == 1).count() elif service == 'apache': query_res = Server.select().where(Server.apache == 1).count() else: query_res = Server.select().where().count() except Exception as e: out_error(e) else: return query_res