mirror of https://github.com/Aidaho12/haproxy-wi
				
				
				
			
							parent
							
								
									66ac5edf61
								
							
						
					
					
						commit
						c3ec003f69
					
				
							
								
								
									
										19
									
								
								app/funct.py
								
								
								
								
							
							
						
						
									
										19
									
								
								app/funct.py
								
								
								
								
							| 
						 | 
				
			
			@ -1512,16 +1512,25 @@ def check_new_version(**kwargs):
 | 
			
		|||
	else:
 | 
			
		||||
		last_ver = ''
 | 
			
		||||
 | 
			
		||||
	user_name = sql.select_user_name()
 | 
			
		||||
 | 
			
		||||
	try:
 | 
			
		||||
		if proxy is not None and proxy != '' and proxy != 'None':
 | 
			
		||||
			proxy_dict = {"https": proxy, "http": proxy}
 | 
			
		||||
			response = requests.get('https://roxy-wi.org/update.py?last_ver'+last_ver+'=1', timeout=1,  proxies=proxy_dict)
 | 
			
		||||
			requests.get('https://roxy-wi.org/update.py?ver_send='+current_ver, timeout=1,  proxies=proxy_dict)
 | 
			
		||||
			response_status = requests.get('https://roxy-wi.org/update.py?user_name='+user_name, timeout=1,  proxies=proxy_dict)
 | 
			
		||||
		else:
 | 
			
		||||
			response = requests.get('https://roxy-wi.org/update.py?last_ver'+last_ver+'=1', timeout=1)
 | 
			
		||||
			requests.get('https://roxy-wi.org/update.py?ver_send='+current_ver, timeout=1)
 | 
			
		||||
			response_status = requests.get('https://roxy-wi.org/update.py?user_name=' + user_name, timeout=1)
 | 
			
		||||
 | 
			
		||||
		res = response.content.decode(encoding='UTF-8')
 | 
			
		||||
		try:
 | 
			
		||||
			status = response_status.content.decode(encoding='UTF-8')
 | 
			
		||||
			sql.update_user_status(status)
 | 
			
		||||
		except:
 | 
			
		||||
			pass
 | 
			
		||||
	except requests.exceptions.RequestException as e:
 | 
			
		||||
		logging('localhost', ' '+str(e), haproxywi=1)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1691,6 +1700,7 @@ def get_services_status():
 | 
			
		|||
				cmd = "apt list --installed 2>&1 |grep " + service_name + "|awk '{print $2}'|sed 's/-/./'"
 | 
			
		||||
			else:
 | 
			
		||||
				cmd = "rpm -q " + service_name + "|awk -F\"" + service_name + "\" '{print $2}' |awk -F\".noa\" '{print $1}' |sed 's/-//1' |sed 's/-/./'"
 | 
			
		||||
				print(cmd)
 | 
			
		||||
		service_ver, stderr = subprocess_execute(cmd)
 | 
			
		||||
 | 
			
		||||
		try:
 | 
			
		||||
| 
						 | 
				
			
			@ -1936,7 +1946,7 @@ def string_to_dict(dict_string) -> dict:
 | 
			
		|||
	return literal_eval(dict_string)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def send_message_to_rabbit(message: str) -> None:
 | 
			
		||||
def send_message_to_rabbit(message: str, **kwargs) -> None:
 | 
			
		||||
	import pika
 | 
			
		||||
	import sql
 | 
			
		||||
	rabbit_user = sql.get_setting('rabbitmq_user')
 | 
			
		||||
| 
						 | 
				
			
			@ -1944,7 +1954,10 @@ def send_message_to_rabbit(message: str) -> None:
 | 
			
		|||
	rabbit_host = sql.get_setting('rabbitmq_host')
 | 
			
		||||
	rabbit_port = sql.get_setting('rabbitmq_port')
 | 
			
		||||
	rabbit_vhost = sql.get_setting('rabbitmq_vhost')
 | 
			
		||||
	rabbit_queue = sql.get_setting('rabbitmq_queue')
 | 
			
		||||
	if kwargs.get('rabbit_queue'):
 | 
			
		||||
		rabbit_queue = kwargs.get('rabbit_queue')
 | 
			
		||||
	else:
 | 
			
		||||
		rabbit_queue = sql.get_setting('rabbitmq_queue')
 | 
			
		||||
 | 
			
		||||
	credentials = pika.PlainCredentials(rabbit_user, rabbit_password)
 | 
			
		||||
	parameters = pika.ConnectionParameters(rabbit_host,
 | 
			
		||||
| 
						 | 
				
			
			@ -1957,7 +1970,7 @@ def send_message_to_rabbit(message: str) -> None:
 | 
			
		|||
	channel = connection.channel()
 | 
			
		||||
	channel.queue_declare(queue=rabbit_queue)
 | 
			
		||||
	channel.basic_publish(exchange='',
 | 
			
		||||
						  routing_key='roxy-wi',
 | 
			
		||||
						  routing_key=rabbit_queue,
 | 
			
		||||
						  body=message)
 | 
			
		||||
 | 
			
		||||
	connection.close()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										35
									
								
								app/login.py
								
								
								
								
							
							
						
						
									
										35
									
								
								app/login.py
								
								
								
								
							| 
						 | 
				
			
			@ -9,6 +9,7 @@ import sql
 | 
			
		|||
import create_db
 | 
			
		||||
import datetime
 | 
			
		||||
import uuid
 | 
			
		||||
import distro
 | 
			
		||||
from jinja2 import Environment, FileSystemLoader
 | 
			
		||||
env = Environment(loader=FileSystemLoader('templates/'), autoescape=True)
 | 
			
		||||
template = env.get_template('login.html')
 | 
			
		||||
| 
						 | 
				
			
			@ -16,9 +17,14 @@ form = funct.form
 | 
			
		|||
 | 
			
		||||
cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
 | 
			
		||||
user_id = cookie.get('uuid')
 | 
			
		||||
ref = form.getvalue('ref')
 | 
			
		||||
login = form.getvalue('login')
 | 
			
		||||
password = form.getvalue('pass')
 | 
			
		||||
try:
 | 
			
		||||
	ref = form.getvalue('ref')
 | 
			
		||||
	login = form.getvalue('login')
 | 
			
		||||
	password = form.getvalue('pass')
 | 
			
		||||
except Exception:
 | 
			
		||||
	ref = ''
 | 
			
		||||
	login = ''
 | 
			
		||||
	password = ''
 | 
			
		||||
db_create = ""
 | 
			
		||||
error_log = ""
 | 
			
		||||
error = ""
 | 
			
		||||
| 
						 | 
				
			
			@ -73,6 +79,29 @@ def send_cookie(login):
 | 
			
		|||
		pass
 | 
			
		||||
	print("Content-type: text/html\n")
 | 
			
		||||
	print('ok')
 | 
			
		||||
 | 
			
		||||
	try:
 | 
			
		||||
		if distro.id() == 'ubuntu':
 | 
			
		||||
			if os.path.exists('/etc/apt/auth.conf.d/roxy-wi.conf'):
 | 
			
		||||
				cmd = "grep login /etc/apt/auth.conf.d/roxy-wi.conf |awk '{print $2}'"
 | 
			
		||||
				get_user_name, stderr = funct.subprocess_execute(cmd)
 | 
			
		||||
				user_name = get_user_name[0]
 | 
			
		||||
			else:
 | 
			
		||||
				user_name = 'git'
 | 
			
		||||
		else:
 | 
			
		||||
			if os.path.exists('/etc/yum.repos.d/roxy-wi.repo'):
 | 
			
		||||
				cmd = "grep base /etc/yum.repos.d/roxy-wi.repo |awk -F\":\" '{print $2}'|awk -F\"/\" '{print $3}'"
 | 
			
		||||
				get_user_name, stderr = funct.subprocess_execute(cmd)
 | 
			
		||||
				user_name = get_user_name[0]
 | 
			
		||||
			else:
 | 
			
		||||
				user_name = 'git'
 | 
			
		||||
		if sql.select_user_name():
 | 
			
		||||
			sql.update_user_name(user_name)
 | 
			
		||||
		else:
 | 
			
		||||
			sql.insert_user_name(user_name)
 | 
			
		||||
	except Exception:
 | 
			
		||||
		pass
 | 
			
		||||
 | 
			
		||||
	sys.exit()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										54
									
								
								app/sql.py
								
								
								
								
							
							
						
						
									
										54
									
								
								app/sql.py
								
								
								
								
							| 
						 | 
				
			
			@ -273,7 +273,7 @@ def delete_server(server_id):
 | 
			
		|||
def update_hapwi_server(server_id, alert, metrics, active, service_name):
 | 
			
		||||
	try:
 | 
			
		||||
		if service_name == 'nginx':
 | 
			
		||||
			update_hapwi = Server.update(nginx_alert=alert, metrics=metrics, nginx_active=active,
 | 
			
		||||
			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(
 | 
			
		||||
| 
						 | 
				
			
			@ -3133,3 +3133,55 @@ def select_services():
 | 
			
		|||
		return
 | 
			
		||||
	else:
 | 
			
		||||
		return query_res
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def insert_user_name(user_name):
 | 
			
		||||
	try:
 | 
			
		||||
		UserName.insert(UserName=user_name).execute()
 | 
			
		||||
	except Exception as e:
 | 
			
		||||
		out_error(e)
 | 
			
		||||
		return False
 | 
			
		||||
	else:
 | 
			
		||||
		return True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def select_user_name():
 | 
			
		||||
	try:
 | 
			
		||||
		query_res = UserName.get().UserName
 | 
			
		||||
	except Exception as e:
 | 
			
		||||
		out_error(e)
 | 
			
		||||
		return False
 | 
			
		||||
	else:
 | 
			
		||||
		return query_res
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def update_user_name(user_name):
 | 
			
		||||
	user_update = UserName.update(UserName=user_name)
 | 
			
		||||
	try:
 | 
			
		||||
		user_update.execute()
 | 
			
		||||
	except Exception as e:
 | 
			
		||||
		out_error(e)
 | 
			
		||||
		return False
 | 
			
		||||
	else:
 | 
			
		||||
		return True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def update_user_status(status):
 | 
			
		||||
	user_update = UserName.update(Status=status)
 | 
			
		||||
	try:
 | 
			
		||||
		user_update.execute()
 | 
			
		||||
	except Exception as e:
 | 
			
		||||
		out_error(e)
 | 
			
		||||
		return False
 | 
			
		||||
	else:
 | 
			
		||||
		return True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
def select_user_status():
 | 
			
		||||
	try:
 | 
			
		||||
		query_res = UserName.get().Status
 | 
			
		||||
	except Exception as e:
 | 
			
		||||
		out_error(e)
 | 
			
		||||
		return False
 | 
			
		||||
	else:
 | 
			
		||||
		return query_res
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,7 +4,7 @@
 | 
			
		|||
        {% if s.1.0 == 'active' %}
 | 
			
		||||
            <span title="{{s.0}} is started"><span class="serverUp server-status"></span></span>
 | 
			
		||||
        {% else %}
 | 
			
		||||
            {% if s.1.0 == 'inactive' or s.1.0 == 'failed' or s.1.0 == 'activating' %}
 | 
			
		||||
            {% if (s.1.0 == 'inactive' or s.1.0 == 'failed' or s.1.0 == 'activating')  and 'is not installed' not in s.3 %}
 | 
			
		||||
                <span title="{{s.0}} is stopped"><span class="serverDown server-status"></span></span>
 | 
			
		||||
            {% else %}
 | 
			
		||||
                <span title="{{s.0}} is not installed"><span class="serverNone server-status"></span></span>
 | 
			
		||||
| 
						 | 
				
			
			@ -13,6 +13,9 @@
 | 
			
		|||
        {{s.0[0]|upper}}{{s.0[1:]}}
 | 
			
		||||
    </td>
 | 
			
		||||
    <td class="padding10 first-collumn">
 | 
			
		||||
        {% if 'is not installed' in s.3 %}
 | 
			
		||||
            <a href="https://roxy-wi.org/services.py?service={{s.0.split('-')[2]}}#installation" title="{{s.0.split('-')[2]}} installation" target="_blank" class="link">Read about installation</a>
 | 
			
		||||
        {% else %}
 | 
			
		||||
        <a id="start-{{ s.0 }}" class="start" title="Start and enable {{s.0}} service">
 | 
			
		||||
            <span class="service-start" onclick="confirmAjaxServiceAction('start', '{{s.0}}')"></span>
 | 
			
		||||
        </a>
 | 
			
		||||
| 
						 | 
				
			
			@ -22,9 +25,10 @@
 | 
			
		|||
        <a id="stop-{{ s.0 }}" class="stop" title="Stop and disable {{s.0}} service">
 | 
			
		||||
            <span class="service-stop" onclick="confirmAjaxServiceAction('stop', '{{s.0}}')"></span>
 | 
			
		||||
        </a>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
    </td>
 | 
			
		||||
    <td>
 | 
			
		||||
        {% if s.3 != '* is not installed' %}
 | 
			
		||||
        {% if 'is not installed' not in s.3 %}
 | 
			
		||||
        {{ s.3 }}
 | 
			
		||||
        {% endif %}
 | 
			
		||||
    </td>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -115,12 +115,11 @@
 | 
			
		|||
        </b>
 | 
			
		||||
    </td>
 | 
			
		||||
    <td>
 | 
			
		||||
        {% if s.3 != '* is not installed' %}
 | 
			
		||||
        {% if 'is not installed' not in s.3 %}
 | 
			
		||||
            {% if is_need_update %}
 | 
			
		||||
                <a class="ui-button ui-widget ui-corner-all" onclick="updateService('{{s.0}}')" title="Update {{service_name}}">Update</a>
 | 
			
		||||
            {% endif %}
 | 
			
		||||
        {% else %}
 | 
			
		||||
            {{service_name}} service is not installed
 | 
			
		||||
            <a href="https://roxy-wi.org/services.py?service={{service_link}}#installation" title="{{service_name}} installation" target="_blank" class="link">Read about installation</a>
 | 
			
		||||
        {% endif %}
 | 
			
		||||
    </td>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -10,7 +10,7 @@
 | 
			
		|||
<script src="/inc/codemirror/searchcursor.js"></script>
 | 
			
		||||
<script src="/inc/codemirror/jump-to-line.js"></script>
 | 
			
		||||
<script src="/inc/configshow.js"></script>
 | 
			
		||||
{% if is_serv_protected %}
 | 
			
		||||
{% if is_serv_protected and role > 2 %}
 | 
			
		||||
<meta http-equiv="refresh" content="0; url=/app/hapservers.py?service={{service}}">
 | 
			
		||||
{% else %}
 | 
			
		||||
<center>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -39,12 +39,12 @@
 | 
			
		|||
			}
 | 
			
		||||
		});
 | 
			
		||||
		{% for s in services %}
 | 
			
		||||
			{% if s.1 == '* is not installed' or s.1 == '' %}
 | 
			
		||||
				{% if s.0 == 'checker_haproxy' %}
 | 
			
		||||
			{% if 'is not installed' in s.1 or s.1 == '' %}
 | 
			
		||||
				{% if s.0 == 'roxy-wi-checker' %}
 | 
			
		||||
					$(':regex(id, alert)').checkboxradio('disable');
 | 
			
		||||
				{% elif s.0 == 'keep_alive' %}
 | 
			
		||||
				{% elif s.0 == 'rpxy-wi-keep_alive' %}
 | 
			
		||||
					$(':regex(id, active-)').checkboxradio('disable');
 | 
			
		||||
				{% elif s.0 == 'metrics_haproxy' %}
 | 
			
		||||
				{% elif s.0 == 'roxy-wi-metrics' %}
 | 
			
		||||
					$(':regex(id, metrics-)').checkboxradio('disable');
 | 
			
		||||
				{% endif %}
 | 
			
		||||
			{% endif %}
 | 
			
		||||
| 
						 | 
				
			
			@ -174,7 +174,7 @@
 | 
			
		|||
						<span class="service-stop" onclick="confirmAjaxAction('stop', '{{action_service}}', '{{s.2}}')"></span>
 | 
			
		||||
					</a>
 | 
			
		||||
					<a href="history.py?service={{service}}&serv={{s.2}}" title="View history for this service" class="history" style="margin: 0 5px 0 10px;"></a>
 | 
			
		||||
					{% if service != 'keepalived' and service != 'apache' %}
 | 
			
		||||
					{% if service != 'keepalived' %}
 | 
			
		||||
					<span class="menu-bar" onclick="serverSettings('{{s.0}}', '{{s.1}}')" title="Edit settings for {{s.1}} service"></span>
 | 
			
		||||
					{% endif %}
 | 
			
		||||
				</span>
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -233,7 +233,7 @@
 | 
			
		|||
					SMON
 | 
			
		||||
				</a>
 | 
			
		||||
			{% else %}
 | 
			
		||||
				{% if smon == 'inactive' or smon== 'failed' %}
 | 
			
		||||
				{% if smon == 'inactive' or smon == 'failed' %}
 | 
			
		||||
					<span class="serverDown server-status" title="SMON is stopped"></span>
 | 
			
		||||
					<a href="/app/users.py#services" title="Start SMON - Roxy-WI service" class="logs_link">
 | 
			
		||||
						SMON
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue