Пример #1
0
def get_overviewServers():
    import http.cookies
    from jinja2 import Environment, FileSystemLoader
    env = Environment(loader=FileSystemLoader('templates/ajax'))
    template = env.get_template('overviewServers.html')
    cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
    user_id = cookie.get('uuid')
    haproxy_sock_port = sql.get_setting('haproxy_sock_port')

    listhap = sql.get_dick_permit()
    commands = ["top -u haproxy -b -n 1"]
    servers = []

    for server in sorted(listhap):
        server_status = ()
        cmd = 'echo "show info" |nc %s %s |grep -e "Ver\|CurrConns\|SessRate\|Maxco\|MB\|Uptime:"' % (
            server[2], haproxy_sock_port)
        out = funct.subprocess_execute(cmd)
        out1 = ""
        for k in out:
            if "Ncat: Connection refused." not in k:
                for r in k:
                    out1 += r
                    out1 += "<br />"
            else:
                out1 = "Can\'t connect to HAproxy"

        server_status = (server[1], server[2], out1,
                         funct.ssh_command(server[2], commands),
                         funct.show_backends(server[2], ret=1))
        servers.append(server_status)

    template = template.render(service_status=servers,
                               role=sql.get_user_role_by_uuid(user_id.value))
    print(template)
Пример #2
0
def get_overview():
    import http.cookies
    from jinja2 import Environment, FileSystemLoader
    env = Environment(loader=FileSystemLoader('templates/ajax'))
    template = env.get_template('overview.html')
    haproxy_config_path = sql.get_setting('haproxy_config_path')
    cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
    user_id = cookie.get('uuid')
    haproxy_sock_port = sql.get_setting('haproxy_sock_port')

    listhap = sql.get_dick_permit()
    commands = [
        "ls -l %s |awk '{ print $6\" \"$7\" \"$8}'" % haproxy_config_path
    ]
    servers = []

    for server in listhap:
        server_status = ()
        cmd = 'echo "show info" |nc %s %s |grep -e "Process_num"' % (
            server[2], haproxy_sock_port)
        server_status = (server[1], server[2],
                         funct.server_status(funct.subprocess_execute(cmd)),
                         funct.ssh_command(server[2], commands))
        servers.append(server_status)

    template = template.render(service_status=servers,
                               role=sql.get_user_role_by_uuid(user_id.value))
    print(template)
Пример #3
0
def get_servers():
    if not check_login():
        return dict(error=_error_auth)
    data = {}
    try:
        token = request.headers.get('token')
        login, group_id = sql.get_username_groupid_from_api_token(token)
        servers = sql.get_dick_permit(username=login,
                                      group_id=group_id,
                                      token=token)

        for s in servers:
            data[s[0]] = {
                'server_id': s[0],
                'hostname': s[1],
                'ip': s[2],
                'group': s[3],
                'virt': s[4],
                'enable': s[5],
                'is_master': s[6],
                'creds': s[7],
                'alert': s[8],
                'metrics': s[9]
            }
    except:
        pass

    return dict(servers=data)
Пример #4
0
def get_users_params(**kwargs):
	import http.cookies
	import sql
	cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
	user_id = cookie.get('uuid')
	user = sql.get_user_name_by_uuid(user_id.value)
	role =  sql.get_user_role_by_uuid(user_id.value)
	token = sql.get_token(user_id.value)
	if kwargs.get('virt'):
		servers = sql.get_dick_permit(virt=1)
	elif kwargs.get('disable'):
		servers = sql.get_dick_permit(disable=0)
	else:
		servers = sql.get_dick_permit()
	
	return user, user_id, role, token, servers
Пример #5
0
def get_overviewServers():
    listhap = sql.get_dick_permit()
    commands = ["top -u haproxy -b -n 1"]

    for server in sorted(listhap):
        print('<tr><td class="overviewTr first-collumn"><a name="' +
              server[1] + '"></a><h3 title="IP ' + server[2] + '">' +
              server[1] + ':</h3></td>')
        print(
            '<td class="overviewTd" style="padding-top: 10px;"><pre style="font-size: 12px;">'
        )
        cmd = 'echo "show info" |nc %s 1999 |grep -e "Ver\|CurrConns\|SessRate\|Maxco\|MB\|Uptime:"' % server[
            2]
        out = funct.subprocess_execute(cmd)

        for k in out:
            if "Ncat: Connection refused." not in k:
                for r in k:
                    print(r)
            else:
                print("Can\'t connect to HAproxy")
        print(
            '</pre></td><td style="padding-top: 10px;"><pre style="font-size: 12px; padding-left: 0px;">'
        )
        funct.ssh_command(server[2], commands)
        print('</td><td style="padding: 10px;font-size: 12px;">')
        funct.show_backends(server[2])
        print('</pre></td><td></td></tr>')
Пример #6
0
def check_permit_to_server(id):
    servers = sql.select_servers(id_hostname=id)
    login = request.headers.get('login')

    for s in servers:
        servers = sql.get_dick_permit(username=login, ip=s[2])

    return servers
Пример #7
0
def choose_only_select(serv, **kwargs):
    if kwargs.get("virt"):
        listhap = sql.get_dick_permit(virt=1)
    else:
        listhap = sql.get_dick_permit()

    if kwargs.get("servNew"):
        servNew = kwargs.get("servNew")
    else:
        servNew = ""

    for i in listhap:
        if i[2] == serv or i[2] == servNew:
            selected = 'selected'
        else:
            selected = ''

        print('<option value="%s" %s>%s</option>' % (i[2], selected, i[1]))
Пример #8
0
def check_permit_to_server(server_id):
	servers = sql.select_servers(id_hostname=server_id)
	token = request.headers.get('token')
	login, group_id = sql.get_username_groupid_from_api_token(token)
		
	for s in servers:		
		server = sql.get_dick_permit(username=login, group_id=group_id, ip=s[2], token=token)
		
	return server
Пример #9
0
def get_overviewServers():
	listhap = sql.get_dick_permit()
	commands = [ "uname -smor", 
				"haproxy -v |head -1", 
				status_command + "|grep Active | sed 's/^[ \t]*//'" ]
	commands1 =  [ "top -u haproxy -b -n 1" ]
	for server in sorted(listhap):
		print('<tr><td class="overviewTr first-collumn"><a name="'+server[1]+'"></a><h3 title="IP ' + server[2] + '">' + server[1] + ':</h3></td>')
		print('<td class="overviewTd"><pre>')
		funct.ssh_command(server[2], commands)
		print('</pre></td><td><pre>')
		funct.ssh_command(server[2], commands1)
		print('</td><td style="padding-top: 10px; padding-bottom: 10px;">')
		funct.show_backends(server[2])
		print('</pre></td><td></td></tr>')
Пример #10
0
async def get_runner_overviewWaf(url):
	import http.cookies
	from jinja2 import Environment, FileSystemLoader
	env = Environment(loader=FileSystemLoader('templates/ajax'),extensions=['jinja2.ext.loopcontrols', 'jinja2.ext.do'])
	template = env.get_template('overivewWaf.html')
	
	servers = []
	cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
	user_id = cookie.get('uuid')
	futures = [async_get_overviewWaf(server[1], server[2]) for server in sql.get_dick_permit()]
	for i, future in enumerate(asyncio.as_completed(futures)):
		result = await future
		servers.append(result)
	servers_sorted = sorted(servers, key=funct.get_key)
	template = template.render(service_status=servers_sorted, role=sql.get_user_role_by_uuid(user_id.value), url=url)
	print(template)
Пример #11
0
def get_overviewServers():
    listhap = sql.get_dick_permit()
    commands = [
        "cat " + haproxy_config_path +
        " |grep -E '^listen|^backend|^frontend' |grep -v stats |wc -l",
        "uname -smor", "haproxy -v |head -1",
        status_command + "|grep Active | sed 's/^[ \t]*//'"
    ]
    commands1 = ["top -u haproxy -b -n 1"]
    for server in sorted(listhap):
        print('<tr><td class="overviewTr first-collumn"><a name="' +
              server[1] + '"></a><h3 title="IP ' + server[2] + '">' +
              server[1] + ':</h3></td>')
        print(
            '<td class="overviewTd"><span>Total listen/frontend/backend:</span><pre>'
        )
        funct.ssh_command(server[2], commands)
        print('</pre></td><td><pre>')
        funct.ssh_command(server[2], commands1)
        print('</pre></td></tr>')
Пример #12
0
def get_all_statuses():
    data = {}
    try:
        servers = sql.select_servers()
        login = request.headers.get('login')
        sock_port = sql.get_setting('haproxy_sock_port')

        for s in servers:
            servers = sql.get_dick_permit(username=login)

        for s in servers:
            cmd = 'echo "show info" |nc %s %s -w 1|grep -e "Ver\|CurrConns\|Maxco\|MB\|Uptime:"' % (
                s[2], sock_port)
            data[s[2]] = {}
            out = funct.subprocess_execute(cmd)
            data[s[2]] = return_dict_from_out(s[1], out[0])
    except:
        data = {"error": "Cannot find the server"}
        return dict(error=data)

    return dict(status=data)
Пример #13
0
def get_overview():
    listhap = sql.get_dick_permit()

    commands = ["ps -Af |grep [h]aproxy |wc -l"]
    commands1 = [
        "ls -l %s |awk '{ print $6\" \"$7\" \"$8}'" % haproxy_config_path
    ]

    for server in listhap:
        print(
            '<tr><td class="padding10 first-collumn"><a href="#%s" title="Go to %s status" style="color: #000">%s</a></td><td  class="second-collumn">'
            % (server[1], server[1], server[1]))
        funct.ssh_command(server[2], commands, server_status="1")
        print('</td><td>')
        if funct.is_admin():
            print(
                '<a id="%s" class="start" title="Start HAproxy service"><img src=/image/pic/start.png alt="start" class="icon"></a>'
                % server[2])
            print(
                '<a id="%s" class="stop" title="Stop HAproxy service"><img src=/image/pic/stop.png alt="start" class="icon"></a>'
                % server[2])
            print(
                '<a id="%s" class="restart" title="Restart HAproxy service"><img src=/image/pic/update.png alt="restart" class="icon"></a>'
                % server[2])
        if funct.is_admin(level=2):
            print(
                '<a href="/app/configshow.py?serv=%s&open=open#conf"  title="Show config"><img src=/image/pic/show.png alt="show" class="icon"></a>'
                % server[2])
            print(
                '<a href="/app/config.py?serv=%s&open=open#conf"  title="Edit config"><img src=/image/pic/edit.png alt="edit" class="icon"></a>'
                % server[2])
            print(
                '<a href="/app/diff.py?serv=%s&open=open#diff"  title="Compare config"><img src=/image/pic/compare.png alt="compare" class="icon"></a>'
                % server[2])
            print(
                '<a href="/app/map.py?serv=%s&open=open#map"  title="Map listen/frontend/backend"><img src=/image/pic/map.png alt="map" class="icon"></a>'
                % server[2])
        print('</td><td>')
        funct.ssh_command(server[2], commands1)
        print('</td><td></td></tr>')
Пример #14
0
def get_overviewWaf():
	import http.cookies
	from jinja2 import Environment, FileSystemLoader
	env = Environment(loader=FileSystemLoader('templates/ajax'))
	template = env.get_template('overivewWaf.html')
	cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
	user_id = cookie.get('uuid')
	haproxy_dir  = sql.get_setting('haproxy_dir')
	haproxy_sock_port = sql.get_setting('haproxy_sock_port')
	
	listhap = sql.get_dick_permit()
	commands = [ "ps ax |grep waf/bin/modsecurity |grep -v grep |wc -l" ]
	commands1 = [ "cat %s/waf/modsecurity.conf  |grep SecRuleEngine |grep -v '#' |awk '{print $2}'" % haproxy_dir ]	
	servers = []

	for server in listhap:
		server_status = ()
		server_status = (server[1],server[2], funct.ssh_command(server[2], commands), funct.ssh_command(server[2], commands1))
		servers.append(server_status)

	template = template.render(service_status = servers, role = sql.get_user_role_by_uuid(user_id.value))
	print(template)	
Пример #15
0
def get_servers():
    if not check_login():
        return dict(error=_error_auth)
    try:
        login = request.headers.get('login')
        servers = sql.get_dick_permit(username=login)
        data = {}
        for s in servers:
            data[s[0]] = {
                'id': s[0],
                'hostname': s[1],
                'ip': s[2],
                'group': s[3],
                'virt': s[4],
                'enable': s[5],
                'is_master': s[6],
                'creds': s[7],
                'alert': s[8],
                'metrics': s[9]
            }
    except:
        pass
    return dict(servers=data)
Пример #16
0
import cgi
import os, sys
import funct
import sql

form = funct.form
serv = form.getvalue('serv')
act = form.getvalue('act')

if form.getvalue('new_metrics') or form.getvalue('new_waf_metrics'):
    print('Content-type: application/json\n')
else:
    print('Content-type: text/html\n')

if act == "checkrestart":
    servers = sql.get_dick_permit(ip=serv)
    for server in servers:
        if server != "":
            print("ok")
            sys.exit()
    sys.exit()

if not sql.check_token_exists(form.getvalue('token')):
    print("Your token has been expired")
    sys.exit()

if form.getvalue('getcerts') is not None and serv is not None:
    cert_path = sql.get_setting('cert_path')
    commands = ["ls -1t " + cert_path + " |grep pem"]
    try:
        funct.ssh_command(serv, commands, ip="1")
Пример #17
0
import os
import funct
import sql
from jinja2 import Environment, FileSystemLoader
env = Environment(extensions=["jinja2.ext.do"],loader=FileSystemLoader('templates/'))
template = env.get_template('servers.html')
form = funct.form

print('Content-type: text/html\n')
funct.check_login()
funct.page_for_admin(level = 2)
try:
	cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
	user_id = cookie.get('uuid')
	user = sql.get_user_name_by_uuid(user_id.value)
	servers = sql.get_dick_permit()
	token = sql.get_token(user_id.value)
	ldap_enable = sql.get_setting('ldap_enable')
except:
	pass


output_from_parsed_template = template.render(title = "Servers manage",
												role = sql.get_user_role_by_uuid(user_id.value),
												user = user,
												users = sql.select_users(),
												groups = sql.select_groups(),
												servers = sql.get_dick_permit(virt=1, disable=0),
												roles = sql.select_roles(),
												masters = sql.select_servers(get_master_servers=1, uuid=user_id.value),
												group = sql.get_user_group_by_uuid(user_id.value),
Пример #18
0
import sql
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates/'))
template = env.get_template('viewstats.html')
form = funct.form
serv = form.getvalue('serv')

print('Content-type: text/html\n')
funct.check_login()

try:
    cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
    user_id = cookie.get('uuid')
    user = sql.get_user_name_by_uuid(user_id.value)
    role = sql.get_user_role_by_uuid(user_id.value)
    servers = sql.get_dick_permit(virt=1)
    token = sql.get_token(user_id.value)

    if serv is None:
        first_serv = sql.get_dick_permit()
        for i in first_serv:
            serv = i[2]
            break
except:
    pass

output_from_parsed_template = template.render(h2=1,
                                              autorefresh=1,
                                              title="HAProxy statistics",
                                              role=role,
                                              user=user,
Пример #19
0
#!/usr/bin/env python3
import os
import sql
import http
import funct
import sql
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates/'))
template = env.get_template('runtimeapi.html')

print('Content-type: text/html\n')
funct.check_login()

try:
    cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
    user_id = cookie.get('uuid')
    user = sql.get_user_name_by_uuid(user_id.value)
    servers = sql.get_dick_permit(virt=1)
except:
    pass

output_from_parsed_template = template.render(h2=1,
                                              title="Runtime API",
                                              role=sql.get_user_role_by_uuid(
                                                  user_id.value),
                                              user=user,
                                              onclick="showRuntime()",
                                              select_id="serv",
                                              selects=servers)
print(output_from_parsed_template)
Пример #20
0
import funct
import sql
from configparser import ConfigParser, ExtendedInterpolation

funct.head("Add")
funct.check_config()
funct.check_login()

path_config = "haproxy-webintarface.config"
config = ConfigParser(interpolation=ExtendedInterpolation())
config.read(path_config)
funct.page_for_admin(level=2)

hap_configs_dir = config.get('configs', 'haproxy_save_configs_dir')
form = cgi.FieldStorage()
listhap = sql.get_dick_permit()

if form.getvalue('mode') is not None:
    serv = form.getvalue('serv')
    port = form.getvalue('port')
    mode = "    mode " + form.getvalue('mode')
    ssl = ""

    if form.getvalue('balance') is not None:
        balance = "    balance " + form.getvalue('balance') + "\n"
    else:
        balance = ""

    if form.getvalue('ip') is not None:
        ip = form.getvalue('ip')
    else:
Пример #21
0
serv = form.getvalue('serv')
Select = form.getvalue('del')
configver = form.getvalue('configver')
stderr = ""
aftersave = ""
file = set()
hap_configs_dir = funct.get_config_var('configs', 'haproxy_save_configs_dir')

if form.getvalue('configver'):
    template = env.get_template('configver.html')

try:
    cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
    user_id = cookie.get('uuid')
    user = sql.get_user_name_by_uuid(user_id.value)
    servers = sql.get_dick_permit(disable=0)
    token = sql.get_token(user_id.value)
except:
    pass

if serv is not None and form.getvalue('del') is not None:
    if Select is not None:
        aftersave = 1
        for get in form:
            if "cfg" in get:
                try:
                    os.remove(os.path.join(hap_configs_dir,
                                           form.getvalue(get)))
                    file.add(form.getvalue(get) + "<br />")
                    funct.logging(
                        serv,
Пример #22
0
#!/usr/bin/env python3
import html
import cgi
import requests
import funct
import sql
from configparser import ConfigParser, ExtendedInterpolation
from requests_toolbelt.utils import dump

print("Content-type: text/html\n")

form = cgi.FieldStorage()
serv = form.getvalue('serv')

if serv is None:
    first_serv = sql.get_dick_permit()
    for i in first_serv:
        serv = i[2]
        break

print('<a name="top"></a><div class="container">')

funct.get_auto_refresh("HAproxy statistics")

print('<br />'
      '<form style="padding-left: 20px;" action="viewsttats.py" method="get">'
      '<select autofocus required name="serv" id="serv">'
      '<option disabled>Choose server</option>')

funct.choose_only_select(serv, master_slave=1)
Пример #23
0
def get_overview():
	USERS = sql.select_users()
	
	print('<table class="overview">')

	if funct.is_admin():
		print('<tr class="overviewHead">'
				'<td class="padding10 first-collumn">Login</td>'
				'<td class="padding10">Email</td>'
				'<td class="padding10">Group</td>'
				'<td class="padding10">Role</td>'
				'<td style="width: 200px;">'
					'<span class="add-button">'
						'<a href="#"  title="Show all users" id="show-all-users" style="color: #fff">'
							'Show all'
						'</a>'
					'</span>'
				'</td>'
			'</tr>')

		i = 0
		style = ""
		for users in USERS:
			i = i + 1
			if i is 4:
				style = 'style="display: none;" class="show-users"'
			print('<tr ' + style + '><td class="padding10 first-collumn">' + users[1] +'</td><td class="second-collumn">')
			print(users[2]+'</td><td>')
			GROUPS = sql.select_user_name_group(users[5])
			for group in GROUPS:
				print(group)
				print('</td><td>')
			print(users[4])
			print('</td><td></td></tr>')
		print('</table>')
		
	print('<table class="overview">'
		'<tr class="overviewHead">'
			'<td class="padding10 first-collumn"">Server</td>'
			'<td class="padding10">'
				'HAproxy status'
			'</td>'
			'<td class="padding10">'
				'Action'
			'</td>'
			'<td class="padding10">'
				'Last edit'
			'</td>'
			'<td></td>'
		'</tr>')
		
	listhap = sql.get_dick_permit()

	commands = [ "ps -Af |grep [h]aproxy |wc -l" ]
	commands1 = [ "ls -l %s |awk '{ print $6\" \"$7\" \"$8}'" % haproxy_config_path ]

	for server in listhap:
		print('<tr><td class="padding10 first-collumn"><a href="#%s" title="Go to %s status" style="color: #000">%s</a></td><td  class="second-collumn">' % (server[1], server[1], server[1]))
		funct.ssh_command(server[2], commands, server_status="1")
		print('</td><td>')
		if funct.is_admin():
			print('<a id="%s" class="start" title="Start HAproxy service" onclick = "if (! confirm(\'Start service?\')) return false;"><img src=/image/pic/start.png alt="start" class="icon"></a>' % server[2])
			print('<a id="%s" class="stop" title="Stop HAproxy service" onclick = "return confirm(\'Stop service?\')"><img src=/image/pic/stop.png alt="start" class="icon"></a>' % server[2])
			print('<a id="%s" class="restart" title="Restart HAproxy service" onclick = "if (! confirm(\'Restart service?\')) return false;"><img src=/image/pic/update.png alt="restart" class="icon"></a>' % server[2])
		print('<a href="/app/configshow.py?serv=%s&open=open#conf"  title="Show config"><img src=/image/pic/show.png alt="show" class="icon"></a>' % server[2])
		print('<a href="/app/config.py?serv=%s&open=open#conf"  title="Edit config"><img src=/image/pic/edit.png alt="edit" class="icon"></a>' % server[2])
		print('<a href="/app/diff.py?serv=%s&open=open#diff"  title="Compare config"><img src=/image/pic/compare.png alt="compare" class="icon"></a>' % server[2])
		print('<a href="/app/map.py?serv=%s&open=open#map"  title="Map listen/frontend/backend"><img src=/image/pic/map.png alt="map" class="icon"></a>' % server[2])
		print('</td><td>')
		funct.ssh_command(server[2], commands1)
		print('</td><td></td></tr>')

	print('</table><table class="overview"><tr class="overviewHead">'
			'<td class="padding10 first-collumn" style="width: 15%;">Server</td>'
			'<td>'
				'HAproxy info'
			'</td>'
			'<td>'
				'Server status'
			'</td>'
		'</tr>')
	print('</td></tr>')
	commands = [ "cat " + haproxy_config_path + " |grep -E '^listen|^backend|^frontend' |grep -v stats |wc -l",  
				"uname -smor", 
				"haproxy -v |head -1", 
				status_command + "|grep Active | sed 's/^[ \t]*//'" ]
	commands1 =  [ "top -u haproxy -b -n 1" ]
	for server in sorted(listhap):
		print('<tr><td class="overviewTr first-collumn"><a name="'+server[1]+'"></a><h3 title="IP ' + server[2] + '">' + server[1] + ':</h3></td>')
		print('<td class="overviewTd"><span>Total listen/frontend/backend:</span><pre>')
		funct.ssh_command(server[2], commands)
		print('</pre></td><td class="overviewTd"><pre>')
		funct.ssh_command(server[2], commands1)
		print('</pre></td></tr>')
		
	print('<tr></table>')
Пример #24
0
funct.check_login()
funct.page_for_admin(level=2)
try:
    user, user_id, role, token, servers = funct.get_users_params()
    ldap_enable = sql.get_setting('ldap_enable')
    user_group = funct.get_user_group(id=1)
    settings = sql.get_setting('', all=1)
    geoip_country_codes = sql.select_geoip_country_codes()

except Exception as e:
    pass

output_from_parsed_template = template.render(
    title="Servers: ",
    role=role,
    user=user,
    users=sql.select_users(group=user_group),
    groups=sql.select_groups(),
    servers=sql.get_dick_permit(virt=1, disable=0, only_group=1),
    roles=sql.select_roles(),
    masters=sql.select_servers(get_master_servers=1, uuid=user_id.value),
    group=user_group,
    sshs=sql.select_ssh(group=user_group),
    token=token,
    settings=settings,
    backups=sql.select_backups(),
    page="servers.py",
    geoip_country_codes=geoip_country_codes,
    ldap_enable=ldap_enable)
print(output_from_parsed_template)
Пример #25
0
    user, user_id, role, token, servers = funct.get_users_params()
    users = sql.select_users()
    groups = sql.select_groups()
except:
    pass

form = funct.form
serv = form.getvalue('serv')
service = form.getvalue('service')
autorefresh = 0

if service == 'nginx':
    title = "Nginx servers overview"
    keep_alive = ''
    stderr = ''
    servers = sql.get_dick_permit(virt=1, nginx=1)
    service = 'nginx'
    if serv:
        servers = sql.select_servers(server=serv)
        autorefresh = 1
else:
    title = "HAProxy servers overview"
    cmd = "ps ax |grep -e 'keep_alive.py' |grep -v grep |wc -l"
    keep_alive, stderr = funct.subprocess_execute(cmd)
    service = 'haproxy'
    if serv:
        servers = sql.select_servers(server=serv)
        autorefresh = 1
    else:
        servers = sql.get_dick_permit(virt=1, haproxy=1)
Пример #26
0
if form.getvalue('configver'):
    template = env.get_template('configver.html')

try:
    user, user_id, role, token, servers = funct.get_users_params(disable=1)
except:
    pass

if service == 'keepalived':
    configs_dir = funct.get_config_var('configs', 'kp_save_configs_dir')
    title = "Working with versions Keepalived configs"
    files = funct.get_files(dir=configs_dir, format='conf')
    action = 'versions.py?service=keepalived'
    format = 'conf'
    servers = sql.get_dick_permit(keepalived=1)
elif service == 'nginx':
    configs_dir = funct.get_config_var('configs', 'nginx_save_configs_dir')
    title = "Working with versions Nginx configs"
    files = funct.get_files(dir=configs_dir, format='conf')
    action = 'versions.py?service=nginx'
    format = 'conf'
    servers = sql.get_dick_permit(nginx=1)
else:
    title = "Working with versions HAProxy configs"
    files = funct.get_files()
    action = "versions.py"
    configs_dir = funct.get_config_var('configs', 'haproxy_save_configs_dir')
    format = 'cfg'

if serv is not None and form.getvalue('del') is not None:
Пример #27
0
import os, http.cookies
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('templates/'))
template = env.get_template('hapservers.html')

print('Content-type: text/html\n')
funct.check_login()

try:
    cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
    user_id = cookie.get('uuid')
    user = sql.get_user_name_by_uuid(user_id.value)
    users = sql.select_users()
    groups = sql.select_groups()
    token = sql.get_token(user_id.value)
    servers = sql.get_dick_permit()
    cmd = "ps ax |grep -e 'keep_alive.py' |grep -v grep |wc -l"
    keep_alive, stderr = funct.subprocess_execute(cmd)
except:
    pass

haproxy_sock_port = sql.get_setting('haproxy_sock_port')
haproxy_config_path = sql.get_setting('haproxy_config_path')
commands = ["ls -l %s |awk '{ print $6\" \"$7\" \"$8}'" % haproxy_config_path]
servers_with_status1 = []
out1 = ""
for s in servers:
    servers_with_status = list()
    cmd = 'echo "show info" |nc %s %s -w 1 |grep -e "Ver\|Uptime:\|Process_num"' % (
        s[2], haproxy_sock_port)
    out = funct.subprocess_execute(cmd)
Пример #28
0
Select = form.getvalue('del')
configver = form.getvalue('configver')
service = form.getvalue('service')
stderr = ""
aftersave = ""
file = set()

if form.getvalue('configver'):
    template = env.get_template('configver.html')

try:
    cookie = http.cookies.SimpleCookie(os.environ.get("HTTP_COOKIE"))
    user_id = cookie.get('uuid')
    user = sql.get_user_name_by_uuid(user_id.value)
    token = sql.get_token(user_id.value)
    servers = sql.get_dick_permit(disable=0)
except:
    pass

if service == 'keepalived':
    configs_dir = funct.get_config_var('configs', 'kp_save_configs_dir')
    title = "Working with versions Keepalived configs"
    files = funct.get_files(dir=configs_dir, format='conf')
    action = 'versions.py?service=keepalived'
    format = 'conf'
elif service == 'nginx':
    configs_dir = funct.get_config_var('configs', 'nginx_save_configs_dir')
    title = "Working with versions Nginx configs"
    files = funct.get_files(dir=configs_dir, format='conf')
    action = 'versions.py?service=nginx'
    format = 'conf'