forked from ISPsystem/isp-maintenance
		
	Update: models now follow PEP, add connection func, example app for show all vm6 users
This commit is contained in:
		
							parent
							
								
									867cd1c022
								
							
						
					
					
						commit
						f9a213fe3e
					
				| @ -1,12 +1,24 @@ | ||||
| import click | ||||
| 
 | ||||
| from db.vm6.databases import isp_database | ||||
| from db.vm6.models import AuthUser | ||||
| 
 | ||||
| 
 | ||||
| @click.group(help='access command for lazy example') | ||||
| @click.option('--debug/--no-debug', default=False) | ||||
| def cli(debug): | ||||
|     click.echo(f"Debug mode is {'on' if debug else 'off'}") | ||||
| def cli(): | ||||
|     pass | ||||
| 
 | ||||
| 
 | ||||
| @cli.command() | ||||
| def enable(): | ||||
|     click.echo('Access granted') | ||||
| @cli.command(help='show all users and their roles on platform (DEMO EXAMPLE)') | ||||
| def users(): | ||||
|     # 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() | ||||
|  | ||||
| @ -1,6 +0,0 @@ | ||||
| class UnknownField(object): | ||||
|     def __init__(self, *_, **__): pass | ||||
| 
 | ||||
| class BaseModel(Model): | ||||
|     class Meta: | ||||
|         database = db | ||||
							
								
								
									
										20
									
								
								isp_maintenance/db/common.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								isp_maintenance/db/common.py
									
									
									
									
									
										Normal 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 | ||||
							
								
								
									
										46
									
								
								isp_maintenance/db/connection.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								isp_maintenance/db/connection.py
									
									
									
									
									
										Normal 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 | ||||
|             } | ||||
|         ) | ||||
							
								
								
									
										9
									
								
								isp_maintenance/db/dci6/databases.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								isp_maintenance/db/dci6/databases.py
									
									
									
									
									
										Normal 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') | ||||
| @ -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 Meta: | ||||
|         database = database | ||||
|         database = auth_database | ||||
| 
 | ||||
| 
 | ||||
| class AlertSetting(BaseModel): | ||||
|     channel = UnknownField(null=True)  # json | ||||
| @ -17,6 +30,7 @@ class AlertSetting(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'alert_setting' | ||||
| 
 | ||||
| 
 | ||||
| class AuthAcl(BaseModel): | ||||
|     ip_list = UnknownField()  # json | ||||
|     name = CharField(constraints=[SQL("DEFAULT ''")], unique=True) | ||||
| @ -24,6 +38,7 @@ class AuthAcl(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'auth_acl' | ||||
| 
 | ||||
| 
 | ||||
| class AuthUser(BaseModel): | ||||
|     auth_source = CharField(constraints=[SQL("DEFAULT 'local'")]) | ||||
|     avatar = TextField(null=True) | ||||
| @ -50,15 +65,23 @@ class AuthUser(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'auth_user' | ||||
| 
 | ||||
| 
 | ||||
| class AuthConfirmToken(BaseModel): | ||||
|     expires_at = DateTimeField(null=True) | ||||
|     resend_token_after = DateTimeField(null=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: | ||||
|         table_name = 'auth_confirm_token' | ||||
| 
 | ||||
| 
 | ||||
| class AuthGdprDoc(BaseModel): | ||||
|     change_date = DateTimeField(null=True) | ||||
|     desc_condition = CharField(null=True) | ||||
| @ -72,16 +95,23 @@ class AuthGdprDoc(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'auth_gdpr_doc' | ||||
| 
 | ||||
| 
 | ||||
| class AuthGdprJournal(BaseModel): | ||||
|     action_date = DateTimeField(null=True) | ||||
|     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) | ||||
|     user_email = CharField() | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'auth_gdpr_journal' | ||||
| 
 | ||||
| 
 | ||||
| class AuthGeneratedSshkey(BaseModel): | ||||
|     generation_date = DateTimeField(null=True) | ||||
|     privkey = TextField(null=True) | ||||
| @ -90,6 +120,7 @@ class AuthGeneratedSshkey(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'auth_generated_sshkey' | ||||
| 
 | ||||
| 
 | ||||
| class AuthProduct(BaseModel): | ||||
|     docker_compose_file = TextField(null=True) | ||||
|     name = CharField(null=True) | ||||
| @ -102,6 +133,7 @@ class AuthProduct(BaseModel): | ||||
|             (('name', 'version'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class AuthInstance(BaseModel): | ||||
|     conn_params = UnknownField(null=True)  # json | ||||
|     dbkey = TextField(null=True) | ||||
| @ -109,8 +141,18 @@ class AuthInstance(BaseModel): | ||||
|     failure_reason = UnknownField(null=True)  # json | ||||
|     limits = UnknownField(null=True)  # json | ||||
|     name = CharField(null=True) | ||||
|     owner = ForeignKeyField(column_name='owner', field='id', model=AuthUser, null=True) | ||||
|     product = ForeignKeyField(column_name='product', field='id', model=AuthProduct, null=True) | ||||
|     owner = ForeignKeyField( | ||||
|         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 | ||||
|     started = DateTimeField(null=True) | ||||
|     status = CharField() | ||||
| @ -118,12 +160,18 @@ class AuthInstance(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'auth_instance' | ||||
| 
 | ||||
| 
 | ||||
| class AuthInstanceHistory(BaseModel): | ||||
|     create_time = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) | ||||
|     event_info = UnknownField(null=True)  # json | ||||
|     event_type = CharField(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_ip = CharField(null=True) | ||||
|     request_owner = CharField(null=True) | ||||
| @ -132,6 +180,7 @@ class AuthInstanceHistory(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'auth_instance_history' | ||||
| 
 | ||||
| 
 | ||||
| class AuthKey(BaseModel): | ||||
|     expires_at = DateTimeField(null=True) | ||||
|     name = CharField(constraints=[SQL("DEFAULT ''")], unique=True) | ||||
| @ -140,8 +189,15 @@ class AuthKey(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'auth_key' | ||||
| 
 | ||||
| 
 | ||||
| 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) | ||||
|     lic_data = UnknownField(null=True)  # json | ||||
|     lic_request = UnknownField(null=True)  # json | ||||
| @ -152,6 +208,7 @@ class AuthLicense(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'auth_license' | ||||
| 
 | ||||
| 
 | ||||
| class AuthPermission(BaseModel): | ||||
|     data = UnknownField()  # json | ||||
|     plugin = CharField(constraints=[SQL("DEFAULT ''")]) | ||||
| @ -163,6 +220,7 @@ class AuthPermission(BaseModel): | ||||
|             (('service', 'plugin'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class AuthPricelist(BaseModel): | ||||
|     bill_id = IntegerField(null=True, unique=True) | ||||
|     name = CharField(null=True) | ||||
| @ -171,6 +229,7 @@ class AuthPricelist(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'auth_pricelist' | ||||
| 
 | ||||
| 
 | ||||
| class AuthRestrictions(BaseModel): | ||||
|     attempts_counting_duration = BigIntegerField() | ||||
|     attempts_max_count = IntegerField(null=True) | ||||
| @ -181,6 +240,7 @@ class AuthRestrictions(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'auth_restrictions' | ||||
| 
 | ||||
| 
 | ||||
| class AuthRestrictionsBans(BaseModel): | ||||
|     banned_until = DateTimeField() | ||||
|     user = ForeignKeyField(column_name='user', field='id', model=AuthUser) | ||||
| @ -192,6 +252,7 @@ class AuthRestrictionsBans(BaseModel): | ||||
|             (('user', 'user_ip'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class AuthRole(BaseModel): | ||||
|     data = UnknownField()  # json | ||||
|     human_descr = CharField(null=True) | ||||
| @ -201,10 +262,17 @@ class AuthRole(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'auth_role' | ||||
| 
 | ||||
| 
 | ||||
| class AuthServer(BaseModel): | ||||
|     demo = IntegerField(constraints=[SQL("DEFAULT 0")]) | ||||
|     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) | ||||
|     machine_id = CharField(null=True) | ||||
|     password = CharField(null=True) | ||||
| @ -216,10 +284,17 @@ class AuthServer(BaseModel): | ||||
|             (('host', 'port'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class AuthService(BaseModel): | ||||
|     bill_id = IntegerField(null=True, unique=True) | ||||
|     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 | ||||
|     payment_form = TextField(null=True) | ||||
|     status = CharField(null=True) | ||||
| @ -230,6 +305,7 @@ class AuthService(BaseModel): | ||||
|             (('instance', 'bill_id'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class AuthServiceDbkey(BaseModel): | ||||
|     dbkey = TextField(null=True) | ||||
|     name = CharField(null=True, unique=True) | ||||
| @ -237,18 +313,31 @@ class AuthServiceDbkey(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'auth_service_dbkey' | ||||
| 
 | ||||
| 
 | ||||
| class AuthSession(BaseModel): | ||||
|     expires_at = DateTimeField(null=True) | ||||
|     is_internal = IntegerField(constraints=[SQL("DEFAULT 0")]) | ||||
|     name = CharField(null=True, unique=True) | ||||
|     owner = ForeignKeyField(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) | ||||
|     owner = ForeignKeyField( | ||||
|         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) | ||||
|     xsrf_token = CharField(null=True) | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'auth_session' | ||||
| 
 | ||||
| 
 | ||||
| class AuthToken(BaseModel): | ||||
|     client_ip = CharField(null=True) | ||||
|     description = CharField(constraints=[SQL("DEFAULT ''")]) | ||||
| @ -257,16 +346,38 @@ class AuthToken(BaseModel): | ||||
|     name = CharField(constraints=[SQL("DEFAULT ''")], unique=True) | ||||
|     need_2fa = IntegerField(constraints=[SQL("DEFAULT 0")]) | ||||
|     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: | ||||
|         table_name = 'auth_token' | ||||
| 
 | ||||
| 
 | ||||
| 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) | ||||
|     trustee = ForeignKeyField(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) | ||||
|     trustee = ForeignKeyField( | ||||
|         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: | ||||
|         table_name = 'auth_trustee_user' | ||||
| @ -274,6 +385,7 @@ class AuthTrusteeUser(BaseModel): | ||||
|             (('user', 'trustee', 'instance'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class AuthUser2Acl(BaseModel): | ||||
|     acl = ForeignKeyField(column_name='acl', field='id', model=AuthAcl) | ||||
|     user = ForeignKeyField(column_name='user', field='id', model=AuthUser) | ||||
| @ -284,12 +396,27 @@ class AuthUser2Acl(BaseModel): | ||||
|             (('user', 'acl'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| 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 | ||||
|     state = CharField(constraints=[SQL("DEFAULT 'active'")]) | ||||
|     trustee = ForeignKeyField(column_name='trustee', field='id', model=AuthUser) | ||||
|     user = ForeignKeyField(backref='auth_user_user_set', column_name='user', field='id', model=AuthUser) | ||||
|     trustee = ForeignKeyField( | ||||
|         column_name='trustee', | ||||
|         field='id', | ||||
|         model=AuthUser | ||||
|     ) | ||||
|     user = ForeignKeyField( | ||||
|         backref='auth_user_user_set', | ||||
|         column_name='user', | ||||
|         field='id', | ||||
|         model=AuthUser | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'auth_user_role' | ||||
| @ -297,11 +424,21 @@ class AuthUserRole(BaseModel): | ||||
|             (('user', 'trustee', 'instance'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class AuthUserSetting(BaseModel): | ||||
|     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) | ||||
|     user = ForeignKeyField(column_name='user', field='id', model=AuthUser) | ||||
|     user = ForeignKeyField( | ||||
|         column_name='user', | ||||
|         field='id', | ||||
|         model=AuthUser | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'auth_user_setting' | ||||
| @ -309,9 +446,15 @@ class AuthUserSetting(BaseModel): | ||||
|             (('user', 'name', 'instance'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class AuthUserSshkey(BaseModel): | ||||
|     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() | ||||
| 
 | ||||
|     class Meta: | ||||
| @ -320,6 +463,7 @@ class AuthUserSshkey(BaseModel): | ||||
|             (('name', 'owner'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class AuthUsersLocks(BaseModel): | ||||
|     description = CharField(constraints=[SQL("DEFAULT ''")]) | ||||
|     service_name = CharField() | ||||
| @ -332,12 +476,14 @@ class AuthUsersLocks(BaseModel): | ||||
|         ) | ||||
|         primary_key = CompositeKey('service_name', 'user') | ||||
| 
 | ||||
| 
 | ||||
| class BackupAlembicVersion(BaseModel): | ||||
|     version_num = CharField(primary_key=True) | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'backup_alembic_version' | ||||
| 
 | ||||
| 
 | ||||
| class BackupTask(BaseModel): | ||||
|     connection_params = TextField() | ||||
|     cron_expression = CharField() | ||||
| @ -352,17 +498,24 @@ class BackupTask(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'backup_task' | ||||
| 
 | ||||
| 
 | ||||
| class BackupFile(BaseModel): | ||||
|     date = DateTimeField() | ||||
|     downloadable = IntegerField() | ||||
|     name = CharField() | ||||
|     size = FloatField() | ||||
|     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: | ||||
|         table_name = 'backup_file' | ||||
| 
 | ||||
| 
 | ||||
| class CsDocuments(BaseModel): | ||||
|     lang = CharField(constraints=[SQL("DEFAULT ''")]) | ||||
|     name = CharField(constraints=[SQL("DEFAULT ''")]) | ||||
| @ -376,6 +529,7 @@ class CsDocuments(BaseModel): | ||||
|             (('product', 'lang', 'name'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class CsSettings(BaseModel): | ||||
|     lang = CharField(constraints=[SQL("DEFAULT ''")]) | ||||
|     product = CharField(constraints=[SQL("DEFAULT ''")]) | ||||
| @ -388,12 +542,14 @@ class CsSettings(BaseModel): | ||||
|             (('product', 'lang', 'prop_key'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class EserviceAlembicVersion(BaseModel): | ||||
|     version_num = CharField(primary_key=True) | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'eservice_alembic_version' | ||||
| 
 | ||||
| 
 | ||||
| class EserviceCustomEquipment(BaseModel): | ||||
|     data = TextField(null=True) | ||||
|     device_type = CharField() | ||||
| @ -408,6 +564,7 @@ class EserviceCustomEquipment(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'eservice_custom_equipment' | ||||
| 
 | ||||
| 
 | ||||
| class EserviceIpmiFru(BaseModel): | ||||
|     fru_info = UnknownField(null=True)  # json | ||||
|     ipmi_id = AutoField() | ||||
| @ -416,6 +573,7 @@ class EserviceIpmiFru(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'eservice_ipmi_fru' | ||||
| 
 | ||||
| 
 | ||||
| class EserviceIpmiInfo(BaseModel): | ||||
|     ipmi_id = AutoField() | ||||
|     model = CharField() | ||||
| @ -423,6 +581,7 @@ class EserviceIpmiInfo(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'eservice_ipmi_info' | ||||
| 
 | ||||
| 
 | ||||
| class EserviceIpmiSensors(BaseModel): | ||||
|     ipmi_id = AutoField() | ||||
|     sensors_info = UnknownField(null=True)  # json | ||||
| @ -431,6 +590,7 @@ class EserviceIpmiSensors(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'eservice_ipmi_sensors' | ||||
| 
 | ||||
| 
 | ||||
| class IpmiProxyLocation(BaseModel): | ||||
|     docker_compose = TextField(null=True) | ||||
|     instance = IntegerField(null=True) | ||||
| @ -445,6 +605,7 @@ class IpmiProxyLocation(BaseModel): | ||||
|             (('instance', 'location'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class IpmiProxyConnection(BaseModel): | ||||
|     close_time = DateTimeField(null=True) | ||||
|     connection_data = UnknownField(null=True)  # json | ||||
| @ -452,7 +613,11 @@ class IpmiProxyConnection(BaseModel): | ||||
|     intel_amt = IntegerField(null=True) | ||||
|     ipmi = IntegerField(null=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'")]) | ||||
|     user = IntegerField(null=True) | ||||
|     vnc_port = IntegerField(null=True) | ||||
| @ -460,6 +625,7 @@ class IpmiProxyConnection(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'ipmi_proxy_connection' | ||||
| 
 | ||||
| 
 | ||||
| class IpmiProxyJavaAgreement(BaseModel): | ||||
|     instance = IntegerField(null=True, unique=True) | ||||
|     java_agree = IntegerField(constraints=[SQL("DEFAULT 1")]) | ||||
| @ -467,12 +633,14 @@ class IpmiProxyJavaAgreement(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'ipmi_proxy_java_agreement' | ||||
| 
 | ||||
| 
 | ||||
| class IpmiProxyPlugin(BaseModel): | ||||
|     instance = IntegerField(null=True, unique=True) | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'ipmi_proxy_plugin' | ||||
| 
 | ||||
| 
 | ||||
| class IspSettings(BaseModel): | ||||
|     name = CharField(primary_key=True) | ||||
|     value = TextField() | ||||
| @ -480,15 +648,19 @@ class IspSettings(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'isp_settings' | ||||
| 
 | ||||
| 
 | ||||
| class JournalAlembicVersion(BaseModel): | ||||
|     version_num = CharField(primary_key=True) | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'journal_alembic_version' | ||||
| 
 | ||||
| 
 | ||||
| class JournalEvents(BaseModel): | ||||
|     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_name = CharField() | ||||
|     entity_owner = IntegerField() | ||||
| @ -504,6 +676,7 @@ class JournalEvents(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'journal_events' | ||||
| 
 | ||||
| 
 | ||||
| class MsgsChannel(BaseModel): | ||||
|     comment = TextField(null=True) | ||||
|     creation_date = DateTimeField(null=True) | ||||
| @ -517,6 +690,7 @@ class MsgsChannel(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'msgs_channel' | ||||
| 
 | ||||
| 
 | ||||
| class MsgsDeliveryMethod(BaseModel): | ||||
|     delivery_method = CharField(primary_key=True) | ||||
|     dm_params = UnknownField(null=True)  # json | ||||
| @ -524,12 +698,14 @@ class MsgsDeliveryMethod(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'msgs_delivery_method' | ||||
| 
 | ||||
| 
 | ||||
| class MsgsMessageDesign(BaseModel): | ||||
|     design = CharField(primary_key=True) | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'msgs_message_design' | ||||
| 
 | ||||
| 
 | ||||
| class MsgsMessageDesignVariant(BaseModel): | ||||
|     delivery_method = CharField() | ||||
|     design = CharField() | ||||
| @ -544,6 +720,7 @@ class MsgsMessageDesignVariant(BaseModel): | ||||
|         ) | ||||
|         primary_key = CompositeKey('delivery_method', 'design', 'language') | ||||
| 
 | ||||
| 
 | ||||
| class MsgsNoticeReceiver(BaseModel): | ||||
|     delivery_method = CharField() | ||||
|     receivers = UnknownField(null=True)  # json | ||||
| @ -555,6 +732,7 @@ class MsgsNoticeReceiver(BaseModel): | ||||
|             (('user', 'delivery_method'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class MsgsTemplate(BaseModel): | ||||
|     priority = CharField() | ||||
|     template = CharField(primary_key=True) | ||||
| @ -562,6 +740,7 @@ class MsgsTemplate(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'msgs_template' | ||||
| 
 | ||||
| 
 | ||||
| class MsgsTemplate2Category(BaseModel): | ||||
|     category = CharField() | ||||
|     template = CharField() | ||||
| @ -574,6 +753,7 @@ class MsgsTemplate2Category(BaseModel): | ||||
|         ) | ||||
|         primary_key = CompositeKey('category', 'template') | ||||
| 
 | ||||
| 
 | ||||
| class MsgsTemplateVariant(BaseModel): | ||||
|     delivery_method = CharField() | ||||
|     language = CharField() | ||||
| @ -588,6 +768,7 @@ class MsgsTemplateVariant(BaseModel): | ||||
|         ) | ||||
|         primary_key = CompositeKey('delivery_method', 'language', 'template') | ||||
| 
 | ||||
| 
 | ||||
| class MsgsUser(BaseModel): | ||||
|     language = CharField() | ||||
|     user = AutoField() | ||||
| @ -595,6 +776,7 @@ class MsgsUser(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'msgs_user' | ||||
| 
 | ||||
| 
 | ||||
| class MsgsUser2DeliveryMethod(BaseModel): | ||||
|     delivery_method = CharField() | ||||
|     u2dm_params = UnknownField(null=True)  # json | ||||
| @ -608,6 +790,7 @@ class MsgsUser2DeliveryMethod(BaseModel): | ||||
|         ) | ||||
|         primary_key = CompositeKey('delivery_method', 'user') | ||||
| 
 | ||||
| 
 | ||||
| class MsgsUserSubscription(BaseModel): | ||||
|     category = CharField() | ||||
|     delivery_method = CharField() | ||||
| @ -620,6 +803,7 @@ class MsgsUserSubscription(BaseModel): | ||||
|         ) | ||||
|         primary_key = CompositeKey('category', 'delivery_method', 'user') | ||||
| 
 | ||||
| 
 | ||||
| class NcNotice(BaseModel): | ||||
|     create_timestamp = IntegerField(null=True) | ||||
|     entity = UnknownField(null=True)  # json | ||||
| @ -631,6 +815,7 @@ class NcNotice(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'nc_notice' | ||||
| 
 | ||||
| 
 | ||||
| class NcUser(BaseModel): | ||||
|     last_notice_timestamp = IntegerField(constraints=[SQL("DEFAULT 0")]) | ||||
|     read_timestamp = IntegerField(constraints=[SQL("DEFAULT 0")]) | ||||
| @ -638,10 +823,21 @@ class NcUser(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'nc_user' | ||||
| 
 | ||||
| 
 | ||||
| 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")]) | ||||
|     user = ForeignKeyField(column_name='user', field='id', model=NcUser, null=True) | ||||
|     user = ForeignKeyField( | ||||
|         column_name='user', | ||||
|         field='id', | ||||
|         model=NcUser, | ||||
|         null=True | ||||
|     ) | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'nc_notice2user' | ||||
| @ -649,6 +845,7 @@ class NcNotice2User(BaseModel): | ||||
|             (('user', 'notice'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class NotifierNotify(BaseModel): | ||||
|     additional_info = UnknownField()  # json | ||||
|     description = UnknownField()  # json | ||||
| @ -659,12 +856,16 @@ class NotifierNotify(BaseModel): | ||||
|     owner = IntegerField(null=True) | ||||
|     request_id = 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) | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'notifier_notify' | ||||
| 
 | ||||
| 
 | ||||
| class PsPlugin(BaseModel): | ||||
|     content = TextField() | ||||
|     current_version = CharField(null=True) | ||||
| @ -683,6 +884,7 @@ class PsPlugin(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'ps_plugin' | ||||
| 
 | ||||
| 
 | ||||
| class PsPluginLicense(BaseModel): | ||||
|     instance = IntegerField(null=True) | ||||
|     license = UnknownField(null=True)  # json | ||||
| @ -694,12 +896,14 @@ class PsPluginLicense(BaseModel): | ||||
|             (('instance', 'plugin'), True), | ||||
|         ) | ||||
| 
 | ||||
| 
 | ||||
| class ReportAlembicVersion(BaseModel): | ||||
|     version_num = CharField(primary_key=True) | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'report_alembic_version' | ||||
| 
 | ||||
| 
 | ||||
| class ReportFile(BaseModel): | ||||
|     additional_info = UnknownField(null=True)  # json | ||||
|     content = TextField(null=True) | ||||
| @ -715,6 +919,7 @@ class ReportFile(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'report_file' | ||||
| 
 | ||||
| 
 | ||||
| class TaskmgrTask(BaseModel): | ||||
|     before_execute = UnknownField(null=True)  # json | ||||
|     bin_args = UnknownField(null=True)  # json | ||||
| @ -731,7 +936,9 @@ class TaskmgrTask(BaseModel): | ||||
|     on_start = UnknownField(null=True)  # json | ||||
|     output = TextField() | ||||
|     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 | ||||
|     return_code = IntegerField() | ||||
|     service = CharField(constraints=[SQL("DEFAULT ''")]) | ||||
| @ -744,6 +951,7 @@ class TaskmgrTask(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'taskmgr_task' | ||||
| 
 | ||||
| 
 | ||||
| class Vault(BaseModel): | ||||
|     key = CharField(unique=True) | ||||
|     value = TextField() | ||||
| @ -751,12 +959,14 @@ class Vault(BaseModel): | ||||
|     class Meta: | ||||
|         table_name = 'vault' | ||||
| 
 | ||||
| 
 | ||||
| class VaultAlembicVersion(BaseModel): | ||||
|     version_num = CharField(primary_key=True) | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'vault_alembic_version' | ||||
| 
 | ||||
| 
 | ||||
| class VaultQueryLog(BaseModel): | ||||
|     date = DateTimeField() | ||||
|     owner_email = CharField() | ||||
| @ -768,5 +978,3 @@ class VaultQueryLog(BaseModel): | ||||
| 
 | ||||
|     class Meta: | ||||
|         table_name = 'vault_query_log' | ||||
| 
 | ||||
| 
 | ||||
|  | ||||
							
								
								
									
										8
									
								
								isp_maintenance/db/vm6/databases.py
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								isp_maintenance/db/vm6/databases.py
									
									
									
									
									
										Normal 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
											
										
									
								
							
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user