Update: models now follow PEP, add connection func, example app for show all vm6 users

This commit is contained in:
Stepan Zhukovsky 2024-02-11 23:10:29 +09:00
parent 867cd1c022
commit f9a213fe3e
8 changed files with 1387 additions and 202 deletions

View File

@ -1,12 +1,24 @@
import click import click
from db.vm6.databases import isp_database
from db.vm6.models import AuthUser
@click.group(help='access command for lazy example') @click.group(help='access command for lazy example')
@click.option('--debug/--no-debug', default=False) def cli():
def cli(debug): pass
click.echo(f"Debug mode is {'on' if debug else 'off'}")
@cli.command() @cli.command(help='show all users and their roles on platform (DEMO EXAMPLE)')
def enable(): def users():
click.echo('Access granted') # check and init connection to db:
isp_database.connect()
# get all fields from auth_user table
# SELECT * FROM auth_user;
all_users = AuthUser.select()
# Iterate fields and print to console users' email and role
for user in all_users:
result = f'{user.email} | {user.roles[0]}'
click.echo(result)
# Close connection
isp_database.close()

View File

@ -1,6 +0,0 @@
class UnknownField(object):
def __init__(self, *_, **__): pass
class BaseModel(Model):
class Meta:
database = db

View File

@ -0,0 +1,20 @@
import json
from peewee import TextField
class JSONField(TextField):
"""
Class to "fake" a JSON field with a text field.
Not efficient but works nicely
"""
def db_value(self, value):
"""Convert the python value for storage in the database."""
return value if value is None else json.dumps(value)
def python_value(self, value):
"""Convert the database value to a pythonic value."""
return value if value is None else json.loads(value)
class UnknownField(object):
def __init__(self, *_, **__): pass

View File

@ -0,0 +1,46 @@
from peewee import MySQLDatabase, PostgresqlDatabase
from settings.db import (
DB_ENGINE,
DB_HOST,
DB_PORT,
DB_USER,
DB_PASSWORD
)
def guess_database(db_name):
"""
function checks DB_ENGINE and set correct connection class
with connection params. Expected database name in input.
Args:
db_name (_str_): database name
Returns:
(_MySQLDatabase_or_PostgresqlDatabase_ class):
contains db connection params
"""
if DB_ENGINE == 'mysql':
return MySQLDatabase(
db_name, **{
'charset': 'utf8',
'sql_mode': 'PIPES_AS_CONCAT',
'use_unicode': True,
'host': DB_HOST,
'port': DB_PORT,
'user': DB_USER,
'password': DB_PASSWORD
}
)
if DB_ENGINE == 'psql':
return PostgresqlDatabase(
db_name, **{
'charset': 'utf8',
'sql_mode': 'PIPES_AS_CONCAT',
'use_unicode': True,
'host': DB_HOST,
'port': DB_PORT,
'user': DB_USER,
'password': DB_PASSWORD
}
)

View File

@ -0,0 +1,9 @@
from db.connection import guess_database
# The variable will contain an object of
# the MySQLDatabase or PostgresqlDatabase class as well as all connection data
# If in the future there will be more databases in the platform,
# they should be added here
auth_database = guess_database('auth')
dci_1_database = guess_database('dci_1')

View File

@ -1,11 +1,24 @@
from peewee import * from peewee import (
AutoField,
BigIntegerField,
CharField,
CompositeKey,
DateTimeField,
FloatField,
ForeignKeyField,
IntegerField,
Model,
TextField,
SQL
)
from db.common import UnknownField
from db.dci6.databases import auth_database
class UnknownField(object):
def __init__(self, *_, **__): pass
class BaseModel(Model): class BaseModel(Model):
class Meta: class Meta:
database = database database = auth_database
class AlertSetting(BaseModel): class AlertSetting(BaseModel):
channel = UnknownField(null=True) # json channel = UnknownField(null=True) # json
@ -17,6 +30,7 @@ class AlertSetting(BaseModel):
class Meta: class Meta:
table_name = 'alert_setting' table_name = 'alert_setting'
class AuthAcl(BaseModel): class AuthAcl(BaseModel):
ip_list = UnknownField() # json ip_list = UnknownField() # json
name = CharField(constraints=[SQL("DEFAULT ''")], unique=True) name = CharField(constraints=[SQL("DEFAULT ''")], unique=True)
@ -24,6 +38,7 @@ class AuthAcl(BaseModel):
class Meta: class Meta:
table_name = 'auth_acl' table_name = 'auth_acl'
class AuthUser(BaseModel): class AuthUser(BaseModel):
auth_source = CharField(constraints=[SQL("DEFAULT 'local'")]) auth_source = CharField(constraints=[SQL("DEFAULT 'local'")])
avatar = TextField(null=True) avatar = TextField(null=True)
@ -50,15 +65,23 @@ class AuthUser(BaseModel):
class Meta: class Meta:
table_name = 'auth_user' table_name = 'auth_user'
class AuthConfirmToken(BaseModel): class AuthConfirmToken(BaseModel):
expires_at = DateTimeField(null=True) expires_at = DateTimeField(null=True)
resend_token_after = DateTimeField(null=True) resend_token_after = DateTimeField(null=True)
token = CharField(null=True, unique=True) token = CharField(null=True, unique=True)
user = ForeignKeyField(column_name='user', field='id', model=AuthUser, null=True, unique=True) user = ForeignKeyField(
column_name='user',
field='id',
model=AuthUser,
null=True,
unique=True
)
class Meta: class Meta:
table_name = 'auth_confirm_token' table_name = 'auth_confirm_token'
class AuthGdprDoc(BaseModel): class AuthGdprDoc(BaseModel):
change_date = DateTimeField(null=True) change_date = DateTimeField(null=True)
desc_condition = CharField(null=True) desc_condition = CharField(null=True)
@ -72,16 +95,23 @@ class AuthGdprDoc(BaseModel):
class Meta: class Meta:
table_name = 'auth_gdpr_doc' table_name = 'auth_gdpr_doc'
class AuthGdprJournal(BaseModel): class AuthGdprJournal(BaseModel):
action_date = DateTimeField(null=True) action_date = DateTimeField(null=True)
action_type = CharField() action_type = CharField()
doc = ForeignKeyField(column_name='doc', field='id', model=AuthGdprDoc, null=True) doc = ForeignKeyField(
column_name='doc',
field='id',
model=AuthGdprDoc,
null=True
)
ip = CharField(null=True) ip = CharField(null=True)
user_email = CharField() user_email = CharField()
class Meta: class Meta:
table_name = 'auth_gdpr_journal' table_name = 'auth_gdpr_journal'
class AuthGeneratedSshkey(BaseModel): class AuthGeneratedSshkey(BaseModel):
generation_date = DateTimeField(null=True) generation_date = DateTimeField(null=True)
privkey = TextField(null=True) privkey = TextField(null=True)
@ -90,6 +120,7 @@ class AuthGeneratedSshkey(BaseModel):
class Meta: class Meta:
table_name = 'auth_generated_sshkey' table_name = 'auth_generated_sshkey'
class AuthProduct(BaseModel): class AuthProduct(BaseModel):
docker_compose_file = TextField(null=True) docker_compose_file = TextField(null=True)
name = CharField(null=True) name = CharField(null=True)
@ -102,6 +133,7 @@ class AuthProduct(BaseModel):
(('name', 'version'), True), (('name', 'version'), True),
) )
class AuthInstance(BaseModel): class AuthInstance(BaseModel):
conn_params = UnknownField(null=True) # json conn_params = UnknownField(null=True) # json
dbkey = TextField(null=True) dbkey = TextField(null=True)
@ -109,8 +141,18 @@ class AuthInstance(BaseModel):
failure_reason = UnknownField(null=True) # json failure_reason = UnknownField(null=True) # json
limits = UnknownField(null=True) # json limits = UnknownField(null=True) # json
name = CharField(null=True) name = CharField(null=True)
owner = ForeignKeyField(column_name='owner', field='id', model=AuthUser, null=True) owner = ForeignKeyField(
product = ForeignKeyField(column_name='product', field='id', model=AuthProduct, null=True) column_name='owner',
field='id',
model=AuthUser,
null=True
)
product = ForeignKeyField(
column_name='product',
field='id',
model=AuthProduct,
null=True
)
roles = UnknownField(null=True) # json roles = UnknownField(null=True) # json
started = DateTimeField(null=True) started = DateTimeField(null=True)
status = CharField() status = CharField()
@ -118,12 +160,18 @@ class AuthInstance(BaseModel):
class Meta: class Meta:
table_name = 'auth_instance' table_name = 'auth_instance'
class AuthInstanceHistory(BaseModel): class AuthInstanceHistory(BaseModel):
create_time = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) create_time = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")])
event_info = UnknownField(null=True) # json event_info = UnknownField(null=True) # json
event_type = CharField(null=True) event_type = CharField(null=True)
prev_time = DateTimeField(null=True) prev_time = DateTimeField(null=True)
ref = ForeignKeyField(column_name='ref', field='id', model=AuthInstance, null=True) ref = ForeignKeyField(
column_name='ref',
field='id',
model=AuthInstance,
null=True
)
request_id = CharField(null=True) request_id = CharField(null=True)
request_ip = CharField(null=True) request_ip = CharField(null=True)
request_owner = CharField(null=True) request_owner = CharField(null=True)
@ -132,6 +180,7 @@ class AuthInstanceHistory(BaseModel):
class Meta: class Meta:
table_name = 'auth_instance_history' table_name = 'auth_instance_history'
class AuthKey(BaseModel): class AuthKey(BaseModel):
expires_at = DateTimeField(null=True) expires_at = DateTimeField(null=True)
name = CharField(constraints=[SQL("DEFAULT ''")], unique=True) name = CharField(constraints=[SQL("DEFAULT ''")], unique=True)
@ -140,8 +189,15 @@ class AuthKey(BaseModel):
class Meta: class Meta:
table_name = 'auth_key' table_name = 'auth_key'
class AuthLicense(BaseModel): class AuthLicense(BaseModel):
instance = ForeignKeyField(column_name='instance', field='id', model=AuthInstance, null=True, unique=True) instance = ForeignKeyField(
column_name='instance',
field='id',
model=AuthInstance,
null=True,
unique=True
)
last_update = DateTimeField(null=True) last_update = DateTimeField(null=True)
lic_data = UnknownField(null=True) # json lic_data = UnknownField(null=True) # json
lic_request = UnknownField(null=True) # json lic_request = UnknownField(null=True) # json
@ -152,6 +208,7 @@ class AuthLicense(BaseModel):
class Meta: class Meta:
table_name = 'auth_license' table_name = 'auth_license'
class AuthPermission(BaseModel): class AuthPermission(BaseModel):
data = UnknownField() # json data = UnknownField() # json
plugin = CharField(constraints=[SQL("DEFAULT ''")]) plugin = CharField(constraints=[SQL("DEFAULT ''")])
@ -163,6 +220,7 @@ class AuthPermission(BaseModel):
(('service', 'plugin'), True), (('service', 'plugin'), True),
) )
class AuthPricelist(BaseModel): class AuthPricelist(BaseModel):
bill_id = IntegerField(null=True, unique=True) bill_id = IntegerField(null=True, unique=True)
name = CharField(null=True) name = CharField(null=True)
@ -171,6 +229,7 @@ class AuthPricelist(BaseModel):
class Meta: class Meta:
table_name = 'auth_pricelist' table_name = 'auth_pricelist'
class AuthRestrictions(BaseModel): class AuthRestrictions(BaseModel):
attempts_counting_duration = BigIntegerField() attempts_counting_duration = BigIntegerField()
attempts_max_count = IntegerField(null=True) attempts_max_count = IntegerField(null=True)
@ -181,6 +240,7 @@ class AuthRestrictions(BaseModel):
class Meta: class Meta:
table_name = 'auth_restrictions' table_name = 'auth_restrictions'
class AuthRestrictionsBans(BaseModel): class AuthRestrictionsBans(BaseModel):
banned_until = DateTimeField() banned_until = DateTimeField()
user = ForeignKeyField(column_name='user', field='id', model=AuthUser) user = ForeignKeyField(column_name='user', field='id', model=AuthUser)
@ -192,6 +252,7 @@ class AuthRestrictionsBans(BaseModel):
(('user', 'user_ip'), True), (('user', 'user_ip'), True),
) )
class AuthRole(BaseModel): class AuthRole(BaseModel):
data = UnknownField() # json data = UnknownField() # json
human_descr = CharField(null=True) human_descr = CharField(null=True)
@ -201,10 +262,17 @@ class AuthRole(BaseModel):
class Meta: class Meta:
table_name = 'auth_role' table_name = 'auth_role'
class AuthServer(BaseModel): class AuthServer(BaseModel):
demo = IntegerField(constraints=[SQL("DEFAULT 0")]) demo = IntegerField(constraints=[SQL("DEFAULT 0")])
host = CharField(null=True) host = CharField(null=True)
instance = ForeignKeyField(column_name='instance', field='id', model=AuthInstance, null=True, unique=True) instance = ForeignKeyField(
column_name='instance',
field='id',
model=AuthInstance,
null=True,
unique=True
)
login = CharField(null=True) login = CharField(null=True)
machine_id = CharField(null=True) machine_id = CharField(null=True)
password = CharField(null=True) password = CharField(null=True)
@ -216,10 +284,17 @@ class AuthServer(BaseModel):
(('host', 'port'), True), (('host', 'port'), True),
) )
class AuthService(BaseModel): class AuthService(BaseModel):
bill_id = IntegerField(null=True, unique=True) bill_id = IntegerField(null=True, unique=True)
info = UnknownField(null=True) # json info = UnknownField(null=True) # json
instance = ForeignKeyField(column_name='instance', field='id', model=AuthInstance, null=True, unique=True) instance = ForeignKeyField(
column_name='instance',
field='id',
model=AuthInstance,
null=True,
unique=True
)
params = UnknownField(null=True) # json params = UnknownField(null=True) # json
payment_form = TextField(null=True) payment_form = TextField(null=True)
status = CharField(null=True) status = CharField(null=True)
@ -230,6 +305,7 @@ class AuthService(BaseModel):
(('instance', 'bill_id'), True), (('instance', 'bill_id'), True),
) )
class AuthServiceDbkey(BaseModel): class AuthServiceDbkey(BaseModel):
dbkey = TextField(null=True) dbkey = TextField(null=True)
name = CharField(null=True, unique=True) name = CharField(null=True, unique=True)
@ -237,18 +313,31 @@ class AuthServiceDbkey(BaseModel):
class Meta: class Meta:
table_name = 'auth_service_dbkey' table_name = 'auth_service_dbkey'
class AuthSession(BaseModel): class AuthSession(BaseModel):
expires_at = DateTimeField(null=True) expires_at = DateTimeField(null=True)
is_internal = IntegerField(constraints=[SQL("DEFAULT 0")]) is_internal = IntegerField(constraints=[SQL("DEFAULT 0")])
name = CharField(null=True, unique=True) name = CharField(null=True, unique=True)
owner = ForeignKeyField(column_name='owner', field='id', model=AuthUser, null=True) owner = ForeignKeyField(
trustee = ForeignKeyField(backref='auth_user_trustee_set', column_name='trustee', field='id', model=AuthUser, null=True) column_name='owner',
field='id',
model=AuthUser,
null=True
)
trustee = ForeignKeyField(
backref='auth_user_trustee_set',
column_name='trustee',
field='id',
model=AuthUser,
null=True
)
updated_at = DateTimeField(null=True) updated_at = DateTimeField(null=True)
xsrf_token = CharField(null=True) xsrf_token = CharField(null=True)
class Meta: class Meta:
table_name = 'auth_session' table_name = 'auth_session'
class AuthToken(BaseModel): class AuthToken(BaseModel):
client_ip = CharField(null=True) client_ip = CharField(null=True)
description = CharField(constraints=[SQL("DEFAULT ''")]) description = CharField(constraints=[SQL("DEFAULT ''")])
@ -257,16 +346,38 @@ class AuthToken(BaseModel):
name = CharField(constraints=[SQL("DEFAULT ''")], unique=True) name = CharField(constraints=[SQL("DEFAULT ''")], unique=True)
need_2fa = IntegerField(constraints=[SQL("DEFAULT 0")]) need_2fa = IntegerField(constraints=[SQL("DEFAULT 0")])
owner = ForeignKeyField(column_name='owner', field='id', model=AuthUser) owner = ForeignKeyField(column_name='owner', field='id', model=AuthUser)
trustee = ForeignKeyField(backref='auth_user_trustee_set', column_name='trustee', field='id', model=AuthUser) trustee = ForeignKeyField(
backref='auth_user_trustee_set',
column_name='trustee',
field='id',
model=AuthUser
)
class Meta: class Meta:
table_name = 'auth_token' table_name = 'auth_token'
class AuthTrusteeUser(BaseModel): class AuthTrusteeUser(BaseModel):
instance = ForeignKeyField(column_name='instance', field='id', model=AuthInstance, null=True) instance = ForeignKeyField(
column_name='instance',
field='id',
model=AuthInstance,
null=True
)
role = CharField(null=True) role = CharField(null=True)
trustee = ForeignKeyField(column_name='trustee', field='id', model=AuthUser, null=True) trustee = ForeignKeyField(
user = ForeignKeyField(backref='auth_user_user_set', column_name='user', field='id', model=AuthUser, null=True) column_name='trustee',
field='id',
model=AuthUser,
null=True
)
user = ForeignKeyField(
backref='auth_user_user_set',
column_name='user',
field='id',
model=AuthUser,
null=True
)
class Meta: class Meta:
table_name = 'auth_trustee_user' table_name = 'auth_trustee_user'
@ -274,6 +385,7 @@ class AuthTrusteeUser(BaseModel):
(('user', 'trustee', 'instance'), True), (('user', 'trustee', 'instance'), True),
) )
class AuthUser2Acl(BaseModel): class AuthUser2Acl(BaseModel):
acl = ForeignKeyField(column_name='acl', field='id', model=AuthAcl) acl = ForeignKeyField(column_name='acl', field='id', model=AuthAcl)
user = ForeignKeyField(column_name='user', field='id', model=AuthUser) user = ForeignKeyField(column_name='user', field='id', model=AuthUser)
@ -284,12 +396,27 @@ class AuthUser2Acl(BaseModel):
(('user', 'acl'), True), (('user', 'acl'), True),
) )
class AuthUserRole(BaseModel): class AuthUserRole(BaseModel):
instance = ForeignKeyField(column_name='instance', field='id', model=AuthInstance, null=True) instance = ForeignKeyField(
column_name='instance',
field='id',
model=AuthInstance,
null=True
)
roles = UnknownField() # json roles = UnknownField() # json
state = CharField(constraints=[SQL("DEFAULT 'active'")]) state = CharField(constraints=[SQL("DEFAULT 'active'")])
trustee = ForeignKeyField(column_name='trustee', field='id', model=AuthUser) trustee = ForeignKeyField(
user = ForeignKeyField(backref='auth_user_user_set', column_name='user', field='id', model=AuthUser) column_name='trustee',
field='id',
model=AuthUser
)
user = ForeignKeyField(
backref='auth_user_user_set',
column_name='user',
field='id',
model=AuthUser
)
class Meta: class Meta:
table_name = 'auth_user_role' table_name = 'auth_user_role'
@ -297,11 +424,21 @@ class AuthUserRole(BaseModel):
(('user', 'trustee', 'instance'), True), (('user', 'trustee', 'instance'), True),
) )
class AuthUserSetting(BaseModel): class AuthUserSetting(BaseModel):
data = UnknownField(null=True) # json data = UnknownField(null=True) # json
instance = ForeignKeyField(column_name='instance', field='id', model=AuthInstance, null=True) instance = ForeignKeyField(
column_name='instance',
field='id',
model=AuthInstance,
null=True
)
name = CharField(null=True) name = CharField(null=True)
user = ForeignKeyField(column_name='user', field='id', model=AuthUser) user = ForeignKeyField(
column_name='user',
field='id',
model=AuthUser
)
class Meta: class Meta:
table_name = 'auth_user_setting' table_name = 'auth_user_setting'
@ -309,9 +446,15 @@ class AuthUserSetting(BaseModel):
(('user', 'name', 'instance'), True), (('user', 'name', 'instance'), True),
) )
class AuthUserSshkey(BaseModel): class AuthUserSshkey(BaseModel):
name = CharField(constraints=[SQL("DEFAULT ''")]) name = CharField(constraints=[SQL("DEFAULT ''")])
owner = ForeignKeyField(column_name='owner', field='id', model=AuthUser, null=True) owner = ForeignKeyField(
column_name='owner',
field='id',
model=AuthUser,
null=True
)
ssh_pub_key = TextField() ssh_pub_key = TextField()
class Meta: class Meta:
@ -320,6 +463,7 @@ class AuthUserSshkey(BaseModel):
(('name', 'owner'), True), (('name', 'owner'), True),
) )
class AuthUsersLocks(BaseModel): class AuthUsersLocks(BaseModel):
description = CharField(constraints=[SQL("DEFAULT ''")]) description = CharField(constraints=[SQL("DEFAULT ''")])
service_name = CharField() service_name = CharField()
@ -332,12 +476,14 @@ class AuthUsersLocks(BaseModel):
) )
primary_key = CompositeKey('service_name', 'user') primary_key = CompositeKey('service_name', 'user')
class BackupAlembicVersion(BaseModel): class BackupAlembicVersion(BaseModel):
version_num = CharField(primary_key=True) version_num = CharField(primary_key=True)
class Meta: class Meta:
table_name = 'backup_alembic_version' table_name = 'backup_alembic_version'
class BackupTask(BaseModel): class BackupTask(BaseModel):
connection_params = TextField() connection_params = TextField()
cron_expression = CharField() cron_expression = CharField()
@ -352,17 +498,24 @@ class BackupTask(BaseModel):
class Meta: class Meta:
table_name = 'backup_task' table_name = 'backup_task'
class BackupFile(BaseModel): class BackupFile(BaseModel):
date = DateTimeField() date = DateTimeField()
downloadable = IntegerField() downloadable = IntegerField()
name = CharField() name = CharField()
size = FloatField() size = FloatField()
storage_type = CharField() storage_type = CharField()
task = ForeignKeyField(column_name='task', field='id', model=BackupTask, null=True) task = ForeignKeyField(
column_name='task',
field='id',
model=BackupTask,
null=True
)
class Meta: class Meta:
table_name = 'backup_file' table_name = 'backup_file'
class CsDocuments(BaseModel): class CsDocuments(BaseModel):
lang = CharField(constraints=[SQL("DEFAULT ''")]) lang = CharField(constraints=[SQL("DEFAULT ''")])
name = CharField(constraints=[SQL("DEFAULT ''")]) name = CharField(constraints=[SQL("DEFAULT ''")])
@ -376,6 +529,7 @@ class CsDocuments(BaseModel):
(('product', 'lang', 'name'), True), (('product', 'lang', 'name'), True),
) )
class CsSettings(BaseModel): class CsSettings(BaseModel):
lang = CharField(constraints=[SQL("DEFAULT ''")]) lang = CharField(constraints=[SQL("DEFAULT ''")])
product = CharField(constraints=[SQL("DEFAULT ''")]) product = CharField(constraints=[SQL("DEFAULT ''")])
@ -388,12 +542,14 @@ class CsSettings(BaseModel):
(('product', 'lang', 'prop_key'), True), (('product', 'lang', 'prop_key'), True),
) )
class EserviceAlembicVersion(BaseModel): class EserviceAlembicVersion(BaseModel):
version_num = CharField(primary_key=True) version_num = CharField(primary_key=True)
class Meta: class Meta:
table_name = 'eservice_alembic_version' table_name = 'eservice_alembic_version'
class EserviceCustomEquipment(BaseModel): class EserviceCustomEquipment(BaseModel):
data = TextField(null=True) data = TextField(null=True)
device_type = CharField() device_type = CharField()
@ -408,6 +564,7 @@ class EserviceCustomEquipment(BaseModel):
class Meta: class Meta:
table_name = 'eservice_custom_equipment' table_name = 'eservice_custom_equipment'
class EserviceIpmiFru(BaseModel): class EserviceIpmiFru(BaseModel):
fru_info = UnknownField(null=True) # json fru_info = UnknownField(null=True) # json
ipmi_id = AutoField() ipmi_id = AutoField()
@ -416,6 +573,7 @@ class EserviceIpmiFru(BaseModel):
class Meta: class Meta:
table_name = 'eservice_ipmi_fru' table_name = 'eservice_ipmi_fru'
class EserviceIpmiInfo(BaseModel): class EserviceIpmiInfo(BaseModel):
ipmi_id = AutoField() ipmi_id = AutoField()
model = CharField() model = CharField()
@ -423,6 +581,7 @@ class EserviceIpmiInfo(BaseModel):
class Meta: class Meta:
table_name = 'eservice_ipmi_info' table_name = 'eservice_ipmi_info'
class EserviceIpmiSensors(BaseModel): class EserviceIpmiSensors(BaseModel):
ipmi_id = AutoField() ipmi_id = AutoField()
sensors_info = UnknownField(null=True) # json sensors_info = UnknownField(null=True) # json
@ -431,6 +590,7 @@ class EserviceIpmiSensors(BaseModel):
class Meta: class Meta:
table_name = 'eservice_ipmi_sensors' table_name = 'eservice_ipmi_sensors'
class IpmiProxyLocation(BaseModel): class IpmiProxyLocation(BaseModel):
docker_compose = TextField(null=True) docker_compose = TextField(null=True)
instance = IntegerField(null=True) instance = IntegerField(null=True)
@ -445,6 +605,7 @@ class IpmiProxyLocation(BaseModel):
(('instance', 'location'), True), (('instance', 'location'), True),
) )
class IpmiProxyConnection(BaseModel): class IpmiProxyConnection(BaseModel):
close_time = DateTimeField(null=True) close_time = DateTimeField(null=True)
connection_data = UnknownField(null=True) # json connection_data = UnknownField(null=True) # json
@ -452,7 +613,11 @@ class IpmiProxyConnection(BaseModel):
intel_amt = IntegerField(null=True) intel_amt = IntegerField(null=True)
ipmi = IntegerField(null=True) ipmi = IntegerField(null=True)
listen_web_port = IntegerField(null=True, unique=True) listen_web_port = IntegerField(null=True, unique=True)
location = ForeignKeyField(column_name='location_id', field='id', model=IpmiProxyLocation) location = ForeignKeyField(
column_name='location_id',
field='id',
model=IpmiProxyLocation
)
type = CharField(constraints=[SQL("DEFAULT 'web'")]) type = CharField(constraints=[SQL("DEFAULT 'web'")])
user = IntegerField(null=True) user = IntegerField(null=True)
vnc_port = IntegerField(null=True) vnc_port = IntegerField(null=True)
@ -460,6 +625,7 @@ class IpmiProxyConnection(BaseModel):
class Meta: class Meta:
table_name = 'ipmi_proxy_connection' table_name = 'ipmi_proxy_connection'
class IpmiProxyJavaAgreement(BaseModel): class IpmiProxyJavaAgreement(BaseModel):
instance = IntegerField(null=True, unique=True) instance = IntegerField(null=True, unique=True)
java_agree = IntegerField(constraints=[SQL("DEFAULT 1")]) java_agree = IntegerField(constraints=[SQL("DEFAULT 1")])
@ -467,12 +633,14 @@ class IpmiProxyJavaAgreement(BaseModel):
class Meta: class Meta:
table_name = 'ipmi_proxy_java_agreement' table_name = 'ipmi_proxy_java_agreement'
class IpmiProxyPlugin(BaseModel): class IpmiProxyPlugin(BaseModel):
instance = IntegerField(null=True, unique=True) instance = IntegerField(null=True, unique=True)
class Meta: class Meta:
table_name = 'ipmi_proxy_plugin' table_name = 'ipmi_proxy_plugin'
class IspSettings(BaseModel): class IspSettings(BaseModel):
name = CharField(primary_key=True) name = CharField(primary_key=True)
value = TextField() value = TextField()
@ -480,15 +648,19 @@ class IspSettings(BaseModel):
class Meta: class Meta:
table_name = 'isp_settings' table_name = 'isp_settings'
class JournalAlembicVersion(BaseModel): class JournalAlembicVersion(BaseModel):
version_num = CharField(primary_key=True) version_num = CharField(primary_key=True)
class Meta: class Meta:
table_name = 'journal_alembic_version' table_name = 'journal_alembic_version'
class JournalEvents(BaseModel): class JournalEvents(BaseModel):
data = UnknownField(null=True) # json data = UnknownField(null=True) # json
date_time = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP(3)")]) date_time = DateTimeField(
constraints=[SQL("DEFAULT CURRENT_TIMESTAMP(3)")]
)
entity_id = IntegerField() entity_id = IntegerField()
entity_name = CharField() entity_name = CharField()
entity_owner = IntegerField() entity_owner = IntegerField()
@ -504,6 +676,7 @@ class JournalEvents(BaseModel):
class Meta: class Meta:
table_name = 'journal_events' table_name = 'journal_events'
class MsgsChannel(BaseModel): class MsgsChannel(BaseModel):
comment = TextField(null=True) comment = TextField(null=True)
creation_date = DateTimeField(null=True) creation_date = DateTimeField(null=True)
@ -517,6 +690,7 @@ class MsgsChannel(BaseModel):
class Meta: class Meta:
table_name = 'msgs_channel' table_name = 'msgs_channel'
class MsgsDeliveryMethod(BaseModel): class MsgsDeliveryMethod(BaseModel):
delivery_method = CharField(primary_key=True) delivery_method = CharField(primary_key=True)
dm_params = UnknownField(null=True) # json dm_params = UnknownField(null=True) # json
@ -524,12 +698,14 @@ class MsgsDeliveryMethod(BaseModel):
class Meta: class Meta:
table_name = 'msgs_delivery_method' table_name = 'msgs_delivery_method'
class MsgsMessageDesign(BaseModel): class MsgsMessageDesign(BaseModel):
design = CharField(primary_key=True) design = CharField(primary_key=True)
class Meta: class Meta:
table_name = 'msgs_message_design' table_name = 'msgs_message_design'
class MsgsMessageDesignVariant(BaseModel): class MsgsMessageDesignVariant(BaseModel):
delivery_method = CharField() delivery_method = CharField()
design = CharField() design = CharField()
@ -544,6 +720,7 @@ class MsgsMessageDesignVariant(BaseModel):
) )
primary_key = CompositeKey('delivery_method', 'design', 'language') primary_key = CompositeKey('delivery_method', 'design', 'language')
class MsgsNoticeReceiver(BaseModel): class MsgsNoticeReceiver(BaseModel):
delivery_method = CharField() delivery_method = CharField()
receivers = UnknownField(null=True) # json receivers = UnknownField(null=True) # json
@ -555,6 +732,7 @@ class MsgsNoticeReceiver(BaseModel):
(('user', 'delivery_method'), True), (('user', 'delivery_method'), True),
) )
class MsgsTemplate(BaseModel): class MsgsTemplate(BaseModel):
priority = CharField() priority = CharField()
template = CharField(primary_key=True) template = CharField(primary_key=True)
@ -562,6 +740,7 @@ class MsgsTemplate(BaseModel):
class Meta: class Meta:
table_name = 'msgs_template' table_name = 'msgs_template'
class MsgsTemplate2Category(BaseModel): class MsgsTemplate2Category(BaseModel):
category = CharField() category = CharField()
template = CharField() template = CharField()
@ -574,6 +753,7 @@ class MsgsTemplate2Category(BaseModel):
) )
primary_key = CompositeKey('category', 'template') primary_key = CompositeKey('category', 'template')
class MsgsTemplateVariant(BaseModel): class MsgsTemplateVariant(BaseModel):
delivery_method = CharField() delivery_method = CharField()
language = CharField() language = CharField()
@ -588,6 +768,7 @@ class MsgsTemplateVariant(BaseModel):
) )
primary_key = CompositeKey('delivery_method', 'language', 'template') primary_key = CompositeKey('delivery_method', 'language', 'template')
class MsgsUser(BaseModel): class MsgsUser(BaseModel):
language = CharField() language = CharField()
user = AutoField() user = AutoField()
@ -595,6 +776,7 @@ class MsgsUser(BaseModel):
class Meta: class Meta:
table_name = 'msgs_user' table_name = 'msgs_user'
class MsgsUser2DeliveryMethod(BaseModel): class MsgsUser2DeliveryMethod(BaseModel):
delivery_method = CharField() delivery_method = CharField()
u2dm_params = UnknownField(null=True) # json u2dm_params = UnknownField(null=True) # json
@ -608,6 +790,7 @@ class MsgsUser2DeliveryMethod(BaseModel):
) )
primary_key = CompositeKey('delivery_method', 'user') primary_key = CompositeKey('delivery_method', 'user')
class MsgsUserSubscription(BaseModel): class MsgsUserSubscription(BaseModel):
category = CharField() category = CharField()
delivery_method = CharField() delivery_method = CharField()
@ -620,6 +803,7 @@ class MsgsUserSubscription(BaseModel):
) )
primary_key = CompositeKey('category', 'delivery_method', 'user') primary_key = CompositeKey('category', 'delivery_method', 'user')
class NcNotice(BaseModel): class NcNotice(BaseModel):
create_timestamp = IntegerField(null=True) create_timestamp = IntegerField(null=True)
entity = UnknownField(null=True) # json entity = UnknownField(null=True) # json
@ -631,6 +815,7 @@ class NcNotice(BaseModel):
class Meta: class Meta:
table_name = 'nc_notice' table_name = 'nc_notice'
class NcUser(BaseModel): class NcUser(BaseModel):
last_notice_timestamp = IntegerField(constraints=[SQL("DEFAULT 0")]) last_notice_timestamp = IntegerField(constraints=[SQL("DEFAULT 0")])
read_timestamp = IntegerField(constraints=[SQL("DEFAULT 0")]) read_timestamp = IntegerField(constraints=[SQL("DEFAULT 0")])
@ -638,10 +823,21 @@ class NcUser(BaseModel):
class Meta: class Meta:
table_name = 'nc_user' table_name = 'nc_user'
class NcNotice2User(BaseModel): class NcNotice2User(BaseModel):
notice = ForeignKeyField(column_name='notice', field='id', model=NcNotice, null=True) notice = ForeignKeyField(
column_name='notice',
field='id',
model=NcNotice,
null=True
)
read_timestamp = IntegerField(constraints=[SQL("DEFAULT 0")]) read_timestamp = IntegerField(constraints=[SQL("DEFAULT 0")])
user = ForeignKeyField(column_name='user', field='id', model=NcUser, null=True) user = ForeignKeyField(
column_name='user',
field='id',
model=NcUser,
null=True
)
class Meta: class Meta:
table_name = 'nc_notice2user' table_name = 'nc_notice2user'
@ -649,6 +845,7 @@ class NcNotice2User(BaseModel):
(('user', 'notice'), True), (('user', 'notice'), True),
) )
class NotifierNotify(BaseModel): class NotifierNotify(BaseModel):
additional_info = UnknownField() # json additional_info = UnknownField() # json
description = UnknownField() # json description = UnknownField() # json
@ -659,12 +856,16 @@ class NotifierNotify(BaseModel):
owner = IntegerField(null=True) owner = IntegerField(null=True)
request_id = CharField(null=True) request_id = CharField(null=True)
request_ip = CharField(null=True) request_ip = CharField(null=True)
time = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")], index=True) time = DateTimeField(
constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")],
index=True
)
trustee = IntegerField(null=True) trustee = IntegerField(null=True)
class Meta: class Meta:
table_name = 'notifier_notify' table_name = 'notifier_notify'
class PsPlugin(BaseModel): class PsPlugin(BaseModel):
content = TextField() content = TextField()
current_version = CharField(null=True) current_version = CharField(null=True)
@ -683,6 +884,7 @@ class PsPlugin(BaseModel):
class Meta: class Meta:
table_name = 'ps_plugin' table_name = 'ps_plugin'
class PsPluginLicense(BaseModel): class PsPluginLicense(BaseModel):
instance = IntegerField(null=True) instance = IntegerField(null=True)
license = UnknownField(null=True) # json license = UnknownField(null=True) # json
@ -694,12 +896,14 @@ class PsPluginLicense(BaseModel):
(('instance', 'plugin'), True), (('instance', 'plugin'), True),
) )
class ReportAlembicVersion(BaseModel): class ReportAlembicVersion(BaseModel):
version_num = CharField(primary_key=True) version_num = CharField(primary_key=True)
class Meta: class Meta:
table_name = 'report_alembic_version' table_name = 'report_alembic_version'
class ReportFile(BaseModel): class ReportFile(BaseModel):
additional_info = UnknownField(null=True) # json additional_info = UnknownField(null=True) # json
content = TextField(null=True) content = TextField(null=True)
@ -715,6 +919,7 @@ class ReportFile(BaseModel):
class Meta: class Meta:
table_name = 'report_file' table_name = 'report_file'
class TaskmgrTask(BaseModel): class TaskmgrTask(BaseModel):
before_execute = UnknownField(null=True) # json before_execute = UnknownField(null=True) # json
bin_args = UnknownField(null=True) # json bin_args = UnknownField(null=True) # json
@ -731,7 +936,9 @@ class TaskmgrTask(BaseModel):
on_start = UnknownField(null=True) # json on_start = UnknownField(null=True) # json
output = TextField() output = TextField()
queue = UnknownField(null=True) # json queue = UnknownField(null=True) # json
registration_time = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) registration_time = DateTimeField(
constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]
)
request_info = UnknownField(null=True) # json request_info = UnknownField(null=True) # json
return_code = IntegerField() return_code = IntegerField()
service = CharField(constraints=[SQL("DEFAULT ''")]) service = CharField(constraints=[SQL("DEFAULT ''")])
@ -744,6 +951,7 @@ class TaskmgrTask(BaseModel):
class Meta: class Meta:
table_name = 'taskmgr_task' table_name = 'taskmgr_task'
class Vault(BaseModel): class Vault(BaseModel):
key = CharField(unique=True) key = CharField(unique=True)
value = TextField() value = TextField()
@ -751,12 +959,14 @@ class Vault(BaseModel):
class Meta: class Meta:
table_name = 'vault' table_name = 'vault'
class VaultAlembicVersion(BaseModel): class VaultAlembicVersion(BaseModel):
version_num = CharField(primary_key=True) version_num = CharField(primary_key=True)
class Meta: class Meta:
table_name = 'vault_alembic_version' table_name = 'vault_alembic_version'
class VaultQueryLog(BaseModel): class VaultQueryLog(BaseModel):
date = DateTimeField() date = DateTimeField()
owner_email = CharField() owner_email = CharField()
@ -768,5 +978,3 @@ class VaultQueryLog(BaseModel):
class Meta: class Meta:
table_name = 'vault_query_log' table_name = 'vault_query_log'

View File

@ -0,0 +1,8 @@
from db.connection import guess_database
# The variable will contain an object of
# the MySQLDatabase or PostgresqlDatabase class as well as all connection data
# If in the future there will be more databases in the platform,
# they should be added here
isp_database = guess_database('isp')

File diff suppressed because it is too large Load Diff