Changelog: https://haproxy-wi.org/changelog.py#5_2_3
pull/304/head v5.2.3.0
Pavel Loginov 2021-08-11 21:27:49 +06:00
parent 8ff3213065
commit a50fe9a946
6 changed files with 97 additions and 97 deletions

View File

@ -5,12 +5,12 @@ from funct import get_config_var
mysql_enable = get_config_var('mysql', 'enable') mysql_enable = get_config_var('mysql', 'enable')
if mysql_enable == '1': if mysql_enable == '1':
mysql_user = funct.get_config_var('mysql', 'mysql_user') mysql_user = get_config_var('mysql', 'mysql_user')
mysql_password = funct.get_config_var('mysql', 'mysql_password') mysql_password = get_config_var('mysql', 'mysql_password')
mysql_db = funct.get_config_var('mysql', 'mysql_db') mysql_db = get_config_var('mysql', 'mysql_db')
mysql_host = funct.get_config_var('mysql', 'mysql_host') mysql_host = get_config_var('mysql', 'mysql_host')
mysql_port = funct.get_config_var('mysql', 'mysql_port') mysql_port = get_config_var('mysql', 'mysql_port')
conn = MySQLDatabase(mysql_db, user=mysql_user, password=mysql_password, host=mysql_host, port=mysql_port) conn = MySQLDatabase(mysql_db, user=mysql_user, password=mysql_password, host=mysql_host, port=int(mysql_port))
else: else:
db = "/var/www/haproxy-wi/app/roxy-wi.db" db = "/var/www/haproxy-wi/app/roxy-wi.db"
conn = SqliteDatabase(db) conn = SqliteDatabase(db)
@ -23,11 +23,11 @@ class BaseModel(Model):
class User(BaseModel): class User(BaseModel):
user_id = AutoField(column_name='id') user_id = AutoField(column_name='id')
username = TextField(constraints=[SQL('UNIQUE')]) username = CharField(constraints=[SQL('UNIQUE')])
email = TextField(constraints=[SQL('UNIQUE')]) email = CharField(constraints=[SQL('UNIQUE')])
password = TextField(null=True) password = CharField(null=True)
role = TextField() role = CharField()
groups = TextField() groups = CharField()
ldap_user = IntegerField(default=0) ldap_user = IntegerField(default=0)
activeuser = IntegerField(default=1) activeuser = IntegerField(default=1)
@ -37,9 +37,9 @@ class User(BaseModel):
class Server(BaseModel): class Server(BaseModel):
server_id = AutoField(column_name='id') server_id = AutoField(column_name='id')
hostname = TextField() hostname = CharField()
ip = TextField() ip = CharField()
groups = TextField() groups = CharField()
type_ip = IntegerField(default=0) type_ip = IntegerField(default=0)
enable = IntegerField(default=1) enable = IntegerField(default=1)
master = IntegerField(default=0) master = IntegerField(default=0)
@ -47,7 +47,7 @@ class Server(BaseModel):
alert = IntegerField(default=0) alert = IntegerField(default=0)
metrics = IntegerField(default=0) metrics = IntegerField(default=0)
port = IntegerField(default=22) port = IntegerField(default=22)
desc = TextField(null=True) desc = CharField(null=True)
active = IntegerField(default=0) active = IntegerField(default=0)
keepalived = IntegerField(default=0) keepalived = IntegerField(default=0)
nginx = IntegerField(default=0) nginx = IntegerField(default=0)
@ -64,8 +64,8 @@ class Server(BaseModel):
class Role(BaseModel): class Role(BaseModel):
role_id = AutoField(column_name='id') role_id = AutoField(column_name='id')
name = TextField(constraints=[SQL('UNIQUE')]) name = CharField(constraints=[SQL('UNIQUE')])
description = DateTimeField() description = CharField()
class Meta: class Meta:
table_name = 'role' table_name = 'role'
@ -73,8 +73,8 @@ class Role(BaseModel):
class Telegram(BaseModel): class Telegram(BaseModel):
id = AutoField() id = AutoField()
token = TextField() token = CharField()
chanel_name = TextField() chanel_name = CharField()
groups = IntegerField() groups = IntegerField()
class Meta: class Meta:
@ -83,8 +83,8 @@ class Telegram(BaseModel):
class Slack(BaseModel): class Slack(BaseModel):
id = AutoField() id = AutoField()
token = TextField() token = CharField()
chanel_name = TextField() chanel_name = CharField()
groups = IntegerField() groups = IntegerField()
class Meta: class Meta:
@ -93,7 +93,7 @@ class Slack(BaseModel):
class UUID(BaseModel): class UUID(BaseModel):
user_id = IntegerField() user_id = IntegerField()
uuid = TextField() uuid = CharField()
exp = DateTimeField(default=datetime.now) exp = DateTimeField(default=datetime.now)
class Meta: class Meta:
@ -103,7 +103,7 @@ class UUID(BaseModel):
class Token(BaseModel): class Token(BaseModel):
user_id = IntegerField() user_id = IntegerField()
token = TextField() token = CharField()
exp = DateTimeField(default=datetime.now) exp = DateTimeField(default=datetime.now)
class Meta: class Meta:
@ -112,8 +112,8 @@ class Token(BaseModel):
class ApiToken(BaseModel): class ApiToken(BaseModel):
token = TextField() token = CharField()
user_name = TextField() user_name = CharField()
user_group_id = IntegerField() user_group_id = IntegerField()
user_role = IntegerField() user_role = IntegerField()
create_date = DateTimeField(default=datetime.now) create_date = DateTimeField(default=datetime.now)
@ -125,10 +125,10 @@ class ApiToken(BaseModel):
class Setting(BaseModel): class Setting(BaseModel):
param = TextField() param = CharField()
value = TextField(null=True) value = CharField(null=True)
section = TextField() section = CharField()
desc = TextField() desc = CharField()
group = IntegerField(null=True, constraints=[SQL('DEFAULT 1')]) group = IntegerField(null=True, constraints=[SQL('DEFAULT 1')])
class Meta: class Meta:
@ -139,8 +139,8 @@ class Setting(BaseModel):
class Groups(BaseModel): class Groups(BaseModel):
group_id = AutoField(column_name='id') group_id = AutoField(column_name='id')
name = TextField(constraints=[SQL('UNIQUE')]) name = CharField(constraints=[SQL('UNIQUE')])
description = TextField(null=True) description = CharField(null=True)
class Meta: class Meta:
table_name = 'groups' table_name = 'groups'
@ -158,10 +158,10 @@ class UserGroups(BaseModel):
class Cred(BaseModel): class Cred(BaseModel):
id = AutoField() id = AutoField()
name = TextField() name = CharField()
enable = IntegerField(constraints=[SQL('DEFAULT 1')]) enable = IntegerField(constraints=[SQL('DEFAULT 1')])
username = TextField() username = CharField()
password = TextField(null=True) password = CharField(null=True)
groups = IntegerField(constraints=[SQL('DEFAULT 1')]) groups = IntegerField(constraints=[SQL('DEFAULT 1')])
class Meta: class Meta:
@ -171,20 +171,20 @@ class Cred(BaseModel):
class Backup(BaseModel): class Backup(BaseModel):
id = AutoField() id = AutoField()
server = TextField() server = CharField()
rhost = TextField() rhost = CharField()
rpath = TextField() rpath = CharField()
backup_type = TextField(column_name='type') backup_type = CharField(column_name='type')
time = TextField() time = CharField()
cred = IntegerField() cred = IntegerField()
description = TextField(null=True) description = CharField(null=True)
class Meta: class Meta:
table_name = 'backups' table_name = 'backups'
class Metrics(BaseModel): class Metrics(BaseModel):
serv = TextField() serv = CharField()
curr_con = IntegerField() curr_con = IntegerField()
cur_ssl_con = IntegerField() cur_ssl_con = IntegerField()
sess_rate = IntegerField() sess_rate = IntegerField()
@ -197,7 +197,7 @@ class Metrics(BaseModel):
class WafMetrics(BaseModel): class WafMetrics(BaseModel):
serv = TextField() serv = CharField()
conn = IntegerField() conn = IntegerField()
date = DateTimeField(default=datetime.now) date = DateTimeField(default=datetime.now)
@ -207,7 +207,7 @@ class WafMetrics(BaseModel):
class Version(BaseModel): class Version(BaseModel):
version = TextField() version = CharField()
class Meta: class Meta:
table_name = 'version' table_name = 'version'
@ -216,8 +216,8 @@ class Version(BaseModel):
class Option(BaseModel): class Option(BaseModel):
id = AutoField() id = AutoField()
options = TextField() options = CharField()
groups = TextField() groups = CharField()
class Meta: class Meta:
table_name = 'options' table_name = 'options'
@ -225,9 +225,9 @@ class Option(BaseModel):
class SavedServer(BaseModel): class SavedServer(BaseModel):
id = AutoField() id = AutoField()
server = TextField() server = CharField()
description = TextField(null=True) description = CharField(null=True)
groups = TextField() groups = CharField()
class Meta: class Meta:
table_name = 'saved_servers' table_name = 'saved_servers'
@ -245,10 +245,10 @@ class Waf(BaseModel):
class WafRules(BaseModel): class WafRules(BaseModel):
id = AutoField() id = AutoField()
serv = TextField() serv = CharField()
rule_name = TextField() rule_name = CharField()
rule_file = TextField() rule_file = CharField()
desc = TextField(null=True) desc = CharField(null=True)
en = IntegerField(constraints=[SQL('DEFAULT 1')]) en = IntegerField(constraints=[SQL('DEFAULT 1')])
class Meta: class Meta:
@ -270,10 +270,10 @@ class PortScannerSettings(BaseModel):
class PortScannerPorts(BaseModel): class PortScannerPorts(BaseModel):
serv = TextField() serv = CharField()
user_group_id = IntegerField() user_group_id = IntegerField()
port = IntegerField() port = IntegerField()
service_name = TextField() service_name = CharField()
date = DateTimeField(default=datetime.now) date = DateTimeField(default=datetime.now)
class Meta: class Meta:
@ -282,10 +282,10 @@ class PortScannerPorts(BaseModel):
class PortScannerHistory(BaseModel): class PortScannerHistory(BaseModel):
serv = TextField() serv = CharField()
port = IntegerField() port = IntegerField()
status = TextField() status = CharField()
service_name = TextField() service_name = CharField()
date = DateTimeField(default=datetime.now) date = DateTimeField(default=datetime.now)
class Meta: class Meta:
@ -295,11 +295,11 @@ class PortScannerHistory(BaseModel):
class ProvidersCreds(BaseModel): class ProvidersCreds(BaseModel):
id = AutoField() id = AutoField()
name = TextField() name = CharField()
type = TextField() type = CharField()
group = TextField() group = CharField()
key = TextField() key = CharField()
secret = TextField(null=True) secret = CharField(null=True)
create_date = DateTimeField(default=datetime.now) create_date = DateTimeField(default=datetime.now)
edit_date = DateTimeField(default=datetime.now) edit_date = DateTimeField(default=datetime.now)
@ -309,38 +309,38 @@ class ProvidersCreds(BaseModel):
class ProvisionedServers(BaseModel): class ProvisionedServers(BaseModel):
id = AutoField() id = AutoField()
region = TextField() region = CharField()
instance_type = TextField() instance_type = CharField()
public_ip = IntegerField(null=True) public_ip = IntegerField(null=True)
floating_ip = IntegerField(null=True) floating_ip = IntegerField(null=True)
volume_size = IntegerField(null=True) volume_size = IntegerField(null=True)
backup = IntegerField(null=True) backup = IntegerField(null=True)
monitoring = IntegerField(null=True) monitoring = IntegerField(null=True)
private_networking = IntegerField(null=True) private_networking = IntegerField(null=True)
ssh_key_name = TextField(null=True) ssh_key_name = CharField(null=True)
ssh_ids = TextField(null=True) ssh_ids = CharField(null=True)
name = TextField() name = CharField()
os = TextField() os = CharField()
firewall = IntegerField() firewall = IntegerField()
provider_id = IntegerField() provider_id = IntegerField()
type = TextField() type = CharField()
status = TextField() status = CharField()
group_id = IntegerField() group_id = IntegerField()
date = DateTimeField(default=datetime.now) date = DateTimeField(default=datetime.now)
IP = TextField(null=True) IP = CharField(null=True)
last_error = TextField(null=True) last_error = CharField(null=True)
delete_on_termination = IntegerField(null=True) delete_on_termination = IntegerField(null=True)
project = TextField(null=True) project = CharField(null=True)
network_name = TextField(null=True) network_name = CharField(null=True)
volume_type = TextField(null=True) volume_type = CharField(null=True)
name_template = TextField(null=True) name_template = CharField(null=True)
class Meta: class Meta:
table_name = 'provisioned_servers' table_name = 'provisioned_servers'
class MetricsHttpStatus(BaseModel): class MetricsHttpStatus(BaseModel):
serv = TextField() serv = CharField()
ok_ans = IntegerField(column_name='2xx') ok_ans = IntegerField(column_name='2xx')
redir_ans = IntegerField(column_name='3xx') redir_ans = IntegerField(column_name='3xx')
not_found_ans = IntegerField(column_name='4xx') not_found_ans = IntegerField(column_name='4xx')
@ -358,14 +358,14 @@ class SMON(BaseModel):
port = IntegerField(null=True) port = IntegerField(null=True)
status = IntegerField(constraints=[SQL('DEFAULT 1')]) status = IntegerField(constraints=[SQL('DEFAULT 1')])
en = IntegerField(constraints=[SQL('DEFAULT 1')]) en = IntegerField(constraints=[SQL('DEFAULT 1')])
desc = TextField(null=True) desc = CharField(null=True)
response_time = TextField(null=True) response_time = CharField(null=True)
time_state = IntegerField(constraints=[SQL('DEFAULT 0')]) time_state = IntegerField(constraints=[SQL('DEFAULT 0')])
group = TextField(null=True) group = CharField(null=True)
script = TextField(null=True) script = CharField(null=True)
http = TextField(null=True) http = CharField(null=True)
http_status = IntegerField(constraints=[SQL('DEFAULT 1')]) http_status = IntegerField(constraints=[SQL('DEFAULT 1')])
body = TextField(null=True) body = CharField(null=True)
body_status = IntegerField(constraints=[SQL('DEFAULT 1')]) body_status = IntegerField(constraints=[SQL('DEFAULT 1')])
telegram_channel_id = IntegerField(null=True) telegram_channel_id = IntegerField(null=True)
user_group = IntegerField() user_group = IntegerField()
@ -376,12 +376,12 @@ class SMON(BaseModel):
class Alerts(BaseModel): class Alerts(BaseModel):
message = TextField() message = CharField()
level = TextField() level = CharField()
ip = TextField() ip = CharField()
port = IntegerField() port = IntegerField()
user_group = IntegerField(constraints=[SQL('DEFAULT 1')]) user_group = IntegerField(constraints=[SQL('DEFAULT 1')])
service = TextField() service = CharField()
date = DateTimeField(default=datetime.now) date = DateTimeField(default=datetime.now)
class Meta: class Meta:
@ -390,8 +390,8 @@ class Alerts(BaseModel):
class GeoipCodes(BaseModel): class GeoipCodes(BaseModel):
code = TextField() code = CharField()
name = TextField() name = CharField()
class Meta: class Meta:
table_name = 'geoip_codes' table_name = 'geoip_codes'

View File

@ -13,7 +13,7 @@ nginx_save_configs_dir = ${main:fullpath}/configs/nginx_config/
#Enable MySQL DB. Default will be used Sqlite DB. Default disable #Enable MySQL DB. Default will be used Sqlite DB. Default disable
enable = 0 enable = 0
mysql_user = haproxy-wi mysql_user = haproxy-wi
mysql_password = haproxywi mysql_password = haproxy-wi
mysql_db = haproxywi mysql_db = haproxywi
mysql_host = 127.0.0.1 mysql_host = 127.0.0.1
mysql_port = 3306 mysql_port = 3306

View File

@ -597,11 +597,11 @@ def get_user_id_by_uuid(uuid):
def get_user_role_by_uuid(uuid): def get_user_role_by_uuid(uuid):
query = (Role.select(Role.role_id)
.join(User, on=(Role.name == User.role))
.join(UUID, on=(User.user_id == UUID.user_id))
.where(UUID.uuid == uuid))
try: try:
query = (Role.select(Role.role_id)
.join(UUID, on=(User.user_id == UUID.user_id))
.join(User, on=(Role.name == User.role))
.where(UUID.uuid == uuid))
query_res = query.execute() query_res = query.execute()
except Exception as e: except Exception as e:
out_error(e) out_error(e)

View File

@ -1,7 +1,7 @@
pyTelegramBotAPI==3.6.3 pyTelegramBotAPI==3.6.3
networkx==2.1 networkx==2.1
matplotlib==2.1.2 matplotlib==2.1.2
mysql-connector-python==8.0.11
paramiko-ng>=2.5.0 paramiko-ng>=2.5.0
slack-sdk>=3.4.0 slack-sdk>=3.4.0
peewee>=3.14.4 peewee>=3.14.4
PyMySQL>=1.0.2

View File

@ -2,7 +2,7 @@ configparser==3.5.0
pyTelegramBotAPI==3.6.3 pyTelegramBotAPI==3.6.3
networkx==2.1 networkx==2.1
matplotlib==2.1.2 matplotlib==2.1.2
mysql-connector-python==8.0.11
paramiko-ng>=2.5.0 paramiko-ng>=2.5.0
slack-sdk>=3.4.0 slack-sdk>=3.4.0
peewee>=3.14.4 peewee>=3.14.4
PyMySQL>=1.0.2

View File

@ -6,7 +6,7 @@ pyTelegramBotAPI>=3.6.3
networkx>=2.1 networkx>=2.1
matplotlib>=2.1.2 matplotlib>=2.1.2
future>=0.13.1 future>=0.13.1
mysql-connector-python>=8.0.11
jinja2>=2.10.1 jinja2>=2.10.1
slack-sdk>=3.4.0 slack-sdk>=3.4.0
peewee>=3.14.4 peewee>=3.14.4
PyMySQL>=1.0.2