From d8177c5b89fdc48be1aebb7d3c9ca280d2a40621 Mon Sep 17 00:00:00 2001 From: "a.garaev" Date: Fri, 9 Feb 2024 09:21:28 +0500 Subject: [PATCH] Add: db models vm6 --- isp_maintenance/db/vm6/models.py | 2306 ++++++++++++++++++++++++++++++ poetry.lock | 149 +- pyproject.toml | 1 + 3 files changed, 2455 insertions(+), 1 deletion(-) create mode 100644 isp_maintenance/db/vm6/models.py diff --git a/isp_maintenance/db/vm6/models.py b/isp_maintenance/db/vm6/models.py new file mode 100644 index 0000000..24a4783 --- /dev/null +++ b/isp_maintenance/db/vm6/models.py @@ -0,0 +1,2306 @@ +import os +import json + +from peewee import Model, MySQLDatabase, CharField + +CLIENT_HOST = os.environ.get("CLIENT_HOST", "replace_to_client_host") +PLATFORM = os.environ.get("PLATFORM", "vm") # or dci + +DB_ENGINE = os.environ.get("DB_ENGINE", "mysql") +DB_HOST = os.environ.get("DB_HOST", "mysql") +DB_PORT = os.environ.get("DB_PORT", 3306) +DB_USER = os.environ.get("DB_USER", "root") +DB_PASSWORD = os.environ.get("DB_PASSWORD", None) # not secure!!! +DB_NAME = os.environ.get("DB_NAME", "isp") # or auth for dci + +if DB_PASSWORD is None: + with open('config.json', 'r') as f: + platform_config = json.load(f) + DB_PASSWORD = platform_config.get("MysqlRootPassword") + + +# Подключение к базе данных +dn = 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 + } + ) + +class UnknownField(object): + def __init__(self, *_, **__): pass + +class BaseModel(Model): + class Meta: + database = db + +class AlertSetting(BaseModel): + channel = UnknownField(null=True) # json + enabled = IntegerField(constraints=[SQL("DEFAULT 1")]) + metric = UnknownField(null=True) # json + metric_id = CharField(null=True) + name = CharField(null=True) + + class Meta: + table_name = 'alert_setting' + +class AuthAcl(BaseModel): + ip_list = UnknownField() # json + name = CharField(constraints=[SQL("DEFAULT ''")], unique=True) + + class Meta: + table_name = 'auth_acl' + +class AuthUser(BaseModel): + auth_source = CharField(constraints=[SQL("DEFAULT 'local'")]) + avatar = TextField(null=True) + avatar_content_type = CharField(null=True) + avatar_filename = CharField(null=True) + created_date = DateTimeField(null=True) + email = CharField(constraints=[SQL("DEFAULT ''")], unique=True) + email_confirm = IntegerField(constraints=[SQL("DEFAULT 0")]) + full_name = CharField(null=True) + ip_list = UnknownField(null=True) # json + lang = CharField(constraints=[SQL("DEFAULT 'en'")]) + password = CharField(null=True) + phone_number = CharField(null=True) + property = UnknownField(null=True) # json + reserve_codes = UnknownField(null=True) # json + roles = UnknownField() # json + ssh_priv_key = TextField(null=True) + ssh_pub_key = TextField(null=True) + state = CharField(constraints=[SQL("DEFAULT 'active'")]) + timezone = CharField(null=True) + totp = CharField(null=True) + used_demo = IntegerField(constraints=[SQL("DEFAULT 0")]) + uuid = CharField(null=True, unique=True) + + 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) + + class Meta: + table_name = 'auth_confirm_token' + +class AuthGdprDoc(BaseModel): + change_date = DateTimeField(null=True) + desc_condition = CharField(null=True) + entry_date = DateTimeField(null=True) + locale = CharField(null=True) + name = CharField(unique=True) + required = IntegerField(constraints=[SQL("DEFAULT 0")]) + state = CharField() + url = CharField(null=True) + + 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) + 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) + pubkey = TextField(null=True) + + class Meta: + table_name = 'auth_generated_sshkey' + +class AuthProduct(BaseModel): + docker_compose_file = TextField(null=True) + name = CharField(null=True) + script = TextField(null=True) + version = CharField(null=True) + + class Meta: + table_name = 'auth_product' + indexes = ( + (('name', 'version'), True), + ) + +class AuthInstance(BaseModel): + branches = UnknownField(null=True) # json + conn_params = UnknownField(null=True) # json + dbkey = TextField(null=True) + demo = IntegerField(constraints=[SQL("DEFAULT 0")]) + expires_at = DateTimeField(null=True) + 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) + roles = UnknownField(null=True) # json + started = DateTimeField(null=True) + status = CharField() + + 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) + request_id = CharField(null=True) + request_ip = CharField(null=True) + request_owner = CharField(null=True) + request_user = CharField(null=True) + + class Meta: + table_name = 'auth_instance_history' + +class AuthKey(BaseModel): + expires_at = DateTimeField(null=True) + name = CharField(constraints=[SQL("DEFAULT ''")], unique=True) + user = ForeignKeyField(column_name='user', field='id', model=AuthUser) + + class Meta: + table_name = 'auth_key' + +class AuthLicense(BaseModel): + 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 + product = CharField(null=True) + signature_expire_date = DateTimeField(null=True) + status = CharField() + + class Meta: + table_name = 'auth_license' + +class AuthPermission(BaseModel): + data = UnknownField() # json + plugin = CharField(constraints=[SQL("DEFAULT ''")]) + service = CharField(constraints=[SQL("DEFAULT ''")]) + + class Meta: + table_name = 'auth_permission' + indexes = ( + (('service', 'plugin'), True), + ) + +class AuthPricelist(BaseModel): + bill_id = IntegerField(null=True, unique=True) + name = CharField(null=True) + params = UnknownField(null=True) # json + + class Meta: + table_name = 'auth_pricelist' + +class AuthRestrictions(BaseModel): + attempts_counting_duration = BigIntegerField() + attempts_max_count = IntegerField(null=True) + role = CharField(constraints=[SQL("DEFAULT ''")], unique=True) + time_between_attempts = BigIntegerField() + time_to_unban = BigIntegerField() + + class Meta: + table_name = 'auth_restrictions' + +class AuthRestrictionsBans(BaseModel): + banned_until = DateTimeField() + user = ForeignKeyField(column_name='user', field='id', model=AuthUser) + user_ip = CharField(null=True) + + class Meta: + table_name = 'auth_restrictions_bans' + indexes = ( + (('user', 'user_ip'), True), + ) + +class AuthRole(BaseModel): + data = UnknownField() # json + human_descr = CharField(null=True) + human_name = CharField(null=True) + name = CharField(constraints=[SQL("DEFAULT ''")], unique=True) + + 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) + login = CharField(null=True) + machine_id = CharField(null=True) + password = CharField(null=True) + port = IntegerField(null=True) + + class Meta: + table_name = 'auth_server' + indexes = ( + (('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) + params = UnknownField(null=True) # json + payment_form = TextField(null=True) + status = CharField(null=True) + + class Meta: + table_name = 'auth_service' + indexes = ( + (('instance', 'bill_id'), True), + ) + +class AuthServiceDbkey(BaseModel): + dbkey = TextField(null=True) + name = CharField(null=True, unique=True) + + 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) + 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 ''")]) + expires_at = DateTimeField(null=True) + last_used = DateTimeField() + 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) + + class Meta: + table_name = 'auth_token' + +class AuthTrusteeUser(BaseModel): + 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) + + class Meta: + table_name = 'auth_trustee_user' + indexes = ( + (('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) + + class Meta: + table_name = 'auth_user2acl' + indexes = ( + (('user', 'acl'), True), + ) + +class AuthUserRole(BaseModel): + 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) + + class Meta: + table_name = 'auth_user_role' + indexes = ( + (('user', 'trustee', 'instance'), True), + ) + +class AuthUserSetting(BaseModel): + data = UnknownField(null=True) # json + instance = ForeignKeyField(column_name='instance', field='id', model=AuthInstance, null=True) + name = CharField(null=True) + user = ForeignKeyField(column_name='user', field='id', model=AuthUser) + + class Meta: + table_name = 'auth_user_setting' + indexes = ( + (('user', 'name', 'instance'), True), + ) + +class AuthUserSshkey(BaseModel): + name = CharField(constraints=[SQL("DEFAULT ''")]) + owner = ForeignKeyField(column_name='owner', field='id', model=AuthUser, null=True) + ssh_pub_key = TextField() + + class Meta: + table_name = 'auth_user_sshkey' + indexes = ( + (('name', 'owner'), True), + ) + +class AuthUsersLocks(BaseModel): + description = CharField(constraints=[SQL("DEFAULT ''")]) + service_name = CharField() + user = ForeignKeyField(column_name='user', field='id', model=AuthUser) + + class Meta: + table_name = 'auth_users_locks' + indexes = ( + (('user', 'service_name'), True), + ) + primary_key = CompositeKey('service_name', 'user') + +class CsDocuments(BaseModel): + lang = CharField(constraints=[SQL("DEFAULT ''")]) + name = CharField(constraints=[SQL("DEFAULT ''")]) + product = CharField(constraints=[SQL("DEFAULT ''")]) + required = IntegerField(constraints=[SQL("DEFAULT 0")]) + url = CharField(constraints=[SQL("DEFAULT ''")]) + + class Meta: + table_name = 'cs_documents' + indexes = ( + (('product', 'lang', 'name'), True), + ) + +class CsSettings(BaseModel): + lang = CharField(constraints=[SQL("DEFAULT ''")]) + product = CharField(constraints=[SQL("DEFAULT ''")]) + prop_key = CharField(constraints=[SQL("DEFAULT ''")]) + prop_value = CharField(constraints=[SQL("DEFAULT ''")]) + + class Meta: + table_name = 'cs_settings' + indexes = ( + (('product', 'lang', 'prop_key'), True), + ) + +class DnsProxyZone(BaseModel): + name = CharField(null=True, unique=True) + status = CharField(constraints=[SQL("DEFAULT 'in_progress'")]) + status_info = UnknownField(null=True) # json + + class Meta: + table_name = 'dns_proxy_zone' + +class DnsProxyRecord(BaseModel): + content = CharField(null=True) + first = DecimalField() + last = DecimalField() + name = CharField(null=True) + status = CharField(constraints=[SQL("DEFAULT 'in_progress'")]) + status_info = UnknownField(null=True) # json + type = CharField() + zone = ForeignKeyField(column_name='zone', field='id', model=DnsProxyZone, null=True) + + class Meta: + table_name = 'dns_proxy_record' + indexes = ( + (('name', 'type'), True), + ) + +class Dnsbl(BaseModel): + name = CharField(null=True, unique=True) + + class Meta: + table_name = 'dnsbl' + +class Userspace(BaseModel): + is_public = IntegerField(constraints=[SQL("DEFAULT 0")]) + note = TextField(null=True) + + class Meta: + table_name = 'userspace' + +class Ipnet(BaseModel): + family = IntegerField(null=True) + first = DecimalField() + gateway = CharField(null=True) + last = DecimalField() + mask = IntegerField(null=True) + name = CharField(null=True) + need_reserve = IntegerField(constraints=[SQL("DEFAULT 1")]) + note = TextField(null=True) + size = DecimalField() + userspace = ForeignKeyField(column_name='userspace', field='id', model=Userspace) + vlan = CharField(null=True) + + class Meta: + table_name = 'ipnet' + +class Ippool(BaseModel): + name = CharField(null=True) + note = TextField(null=True) + userspace = ForeignKeyField(column_name='userspace', field='id', model=Userspace, null=True) + + class Meta: + table_name = 'ippool' + indexes = ( + (('name', 'userspace'), True), + ) + +class Ip(BaseModel): + domain = CharField(null=True) + family = IntegerField(null=True) + first = DecimalField() + ipnet = ForeignKeyField(column_name='ipnet', field='id', model=Ipnet) + ippool = ForeignKeyField(column_name='ippool', field='id', model=Ippool, null=True) + last = DecimalField() + locked = IntegerField(constraints=[SQL("DEFAULT 0")]) + name = CharField(null=True) + note = TextField(null=True) + parent = IntegerField(null=True) + size = DecimalField() + status = CharField() + userspace = ForeignKeyField(column_name='userspace', field='id', model=Userspace, null=True) + + class Meta: + table_name = 'ip' + indexes = ( + (('name', 'ipnet'), True), + ) + +class Ip2Dnsbl(BaseModel): + address = CharField(null=True) + dnsbl = CharField(null=True) + + class Meta: + table_name = 'ip2dnsbl' + +class IpHistory(BaseModel): + create_time = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + event_info = UnknownField(null=True) # json + event_type = CharField(null=True) + first = DecimalField() + last = DecimalField() + name = CharField(null=True) + prev_time = DateTimeField(null=True) + ref = IntegerField(index=True, null=True) + request_id = CharField(null=True) + request_ip = CharField(null=True) + request_owner = CharField(null=True) + request_user = CharField(null=True) + + class Meta: + table_name = 'ip_history' + +class IpSettings(BaseModel): + name = CharField(null=True, unique=True) + value = TextField(null=True) + + class Meta: + table_name = 'ip_settings' + +class IpmgrIpHistory(BaseModel): + data = UnknownField(null=True) # json + date_time = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + entity = ForeignKeyField(column_name='entity_id', field='id', model=Ip, null=True) + entity_name = CharField(null=True) + first = DecimalField() + instance_id = IntegerField(null=True) + ip = CharField(null=True) + last = DecimalField() + user_email = CharField(null=True) + user_id = IntegerField(null=True) + userspace = ForeignKeyField(column_name='userspace', field='id', model=Userspace, null=True) + + class Meta: + table_name = 'ipmgr_ip_history' + +class IppoolRange(BaseModel): + family = IntegerField(null=True) + first = DecimalField() + ippool = ForeignKeyField(column_name='ippool', field='id', model=Ippool) + last = DecimalField() + name = CharField(null=True) + size = DecimalField() + + class Meta: + table_name = 'ippool_range' + +class IspSettings(BaseModel): + name = CharField(primary_key=True) + value = TextField() + + class Meta: + table_name = 'isp_settings' + +class MsgsChannel(BaseModel): + comment = TextField(null=True) + creation_date = DateTimeField(null=True) + delivery_method = CharField() + enabled = IntegerField(constraints=[SQL("DEFAULT 1")]) + language = CharField() + name = CharField() + params = UnknownField(null=True) # json + state = CharField(null=True) + + class Meta: + table_name = 'msgs_channel' + +class MsgsDeliveryMethod(BaseModel): + delivery_method = CharField(primary_key=True) + dm_params = UnknownField(null=True) # json + + 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() + design_content = TextField(null=True) + language = CharField() + + class Meta: + table_name = 'msgs_message_design_variant' + indexes = ( + (('design', 'delivery_method', 'language'), True), + (('design', 'delivery_method', 'language'), True), + ) + primary_key = CompositeKey('delivery_method', 'design', 'language') + +class MsgsNoticeReceiver(BaseModel): + delivery_method = CharField() + receivers = UnknownField(null=True) # json + user = IntegerField(null=True) + + class Meta: + table_name = 'msgs_notice_receiver' + indexes = ( + (('user', 'delivery_method'), True), + ) + +class MsgsTemplate(BaseModel): + priority = CharField() + template = CharField(primary_key=True) + + class Meta: + table_name = 'msgs_template' + +class MsgsTemplate2Category(BaseModel): + category = CharField() + template = CharField() + + class Meta: + table_name = 'msgs_template2category' + indexes = ( + (('template', 'category'), True), + (('template', 'category'), True), + ) + primary_key = CompositeKey('category', 'template') + +class MsgsTemplateVariant(BaseModel): + delivery_method = CharField() + language = CharField() + template = CharField() + tv_params = UnknownField(null=True) # json + + class Meta: + table_name = 'msgs_template_variant' + indexes = ( + (('template', 'delivery_method', 'language'), True), + (('template', 'delivery_method', 'language'), True), + ) + primary_key = CompositeKey('delivery_method', 'language', 'template') + +class MsgsUser(BaseModel): + language = CharField() + user = AutoField() + + class Meta: + table_name = 'msgs_user' + +class MsgsUser2DeliveryMethod(BaseModel): + delivery_method = CharField() + u2dm_params = UnknownField(null=True) # json + user = IntegerField() + + class Meta: + table_name = 'msgs_user2delivery_method' + indexes = ( + (('user', 'delivery_method'), True), + (('user', 'delivery_method'), True), + ) + primary_key = CompositeKey('delivery_method', 'user') + +class MsgsUserSubscription(BaseModel): + category = CharField() + delivery_method = CharField() + user = IntegerField() + + class Meta: + table_name = 'msgs_user_subscription' + indexes = ( + (('user', 'delivery_method', 'category'), True), + ) + primary_key = CompositeKey('category', 'delivery_method', 'user') + +class NcNotice(BaseModel): + create_timestamp = IntegerField(null=True) + entity = UnknownField(null=True) # json + params = UnknownField(null=True) # json + status = CharField(constraints=[SQL("DEFAULT 'sended'")]) + timestamp = IntegerField(null=True) + type = CharField(null=True) + + class Meta: + table_name = 'nc_notice' + +class NcUser(BaseModel): + last_notice_timestamp = IntegerField(constraints=[SQL("DEFAULT 0")]) + read_timestamp = IntegerField(constraints=[SQL("DEFAULT 0")]) + + class Meta: + table_name = 'nc_user' + +class NcNotice2User(BaseModel): + 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) + + class Meta: + table_name = 'nc_notice2user' + indexes = ( + (('user', 'notice'), True), + ) + +class NginxKv(BaseModel): + name = CharField(primary_key=True) + value = TextField(null=True) + + class Meta: + table_name = 'nginx_kv' + +class NotifierNotify(BaseModel): + additional_info = UnknownField() # json + description = UnknownField() # json + instance_id = IntegerField(null=True) + modify_index = BigIntegerField() + name = CharField(null=True) + notify_type = CharField() + owner = IntegerField(null=True) + request_id = CharField(null=True) + request_ip = CharField(null=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) + deprecated = IntegerField(constraints=[SQL("DEFAULT 0")]) + filename = CharField(null=True) + intname = CharField(null=True, unique=True) + metadata = UnknownField() # json + name = CharField(null=True, unique=True) + obsoletes = UnknownField(null=True) # json + plugin_requirement = UnknownField(null=True) # json + product = CharField() + remote = IntegerField(constraints=[SQL("DEFAULT 0")]) + status = CharField(constraints=[SQL("DEFAULT 'disabled'")]) + version = CharField(null=True) + + class Meta: + table_name = 'ps_plugin' + +class PsPluginLicense(BaseModel): + instance = IntegerField(null=True) + license = UnknownField(null=True) # json + plugin = IntegerField(null=True) + + class Meta: + table_name = 'ps_plugin_license' + indexes = ( + (('instance', 'plugin'), True), + ) + +class Sampletable(BaseModel): + description = CharField() + name = CharField() + + class Meta: + table_name = 'sampletable' + +class TaskmgrTask(BaseModel): + before_execute = UnknownField(null=True) # json + bin_args = UnknownField(null=True) # json + bin_path = CharField(constraints=[SQL("DEFAULT ''")]) + callback_params = UnknownField(null=True) # json + defer_resolve = UnknownField(null=True) # json + defer_wait = UnknownField(null=True) # json + depends_on = UnknownField(null=True) # json + env = UnknownField(null=True) # json + instance_id = CharField(null=True) + lock_tag = UnknownField(null=True) # json + name = CharField(constraints=[SQL("DEFAULT ''")]) + notify = UnknownField(null=True) # json + on_start = UnknownField(null=True) # json + output = TextField() + queue = UnknownField(null=True) # json + registration_time = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + request_info = UnknownField(null=True) # json + return_code = IntegerField() + service = CharField(constraints=[SQL("DEFAULT ''")]) + status = CharField(constraints=[SQL("DEFAULT 'created'")], index=True) + stdin = UnknownField(null=True) # json + ttl = IntegerField() + work_dir = CharField(constraints=[SQL("DEFAULT ''")]) + worker_id = CharField(null=True) + + class Meta: + table_name = 'taskmgr_task' + +class Vault(BaseModel): + key = CharField(unique=True) + value = TextField() + + 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() + owner_id = IntegerField() + request_id = CharField() + request_ip = CharField() + service = CharField() + trustee_id = IntegerField() + + class Meta: + table_name = 'vault_query_log' + +class VmAccount(BaseModel): + auth_source = CharField(constraints=[SQL("DEFAULT 'local'")]) + email = CharField(unique=True) + roles = UnknownField() # json + state = CharField(constraints=[SQL("DEFAULT 'active'")]) + vm5_data = UnknownField(null=True) # json + + class Meta: + table_name = 'vm_account' + +class VmBackupLocation(BaseModel): + comment = CharField(null=True) + connection_params = UnknownField(null=True) # json + name = CharField(unique=True) + quota_mib = IntegerField(null=True) + state = CharField() + type = CharField(null=True) + + class Meta: + table_name = 'vm_backup_location' + +class VmCluster(BaseModel): + admin_name = CharField(null=True) + admin_password = CharField(null=True) + balancer_config = UnknownField(null=True) # json + balancer_mode = CharField(constraints=[SQL("DEFAULT 'off'")]) + comment = TextField(null=True) + cpu_overselling = FloatField(constraints=[SQL("DEFAULT -1")]) + datacenter_type = CharField(constraints=[SQL("DEFAULT 'common'")]) + dns_servers = UnknownField(null=True) # json + domain_change_allowed = IntegerField(constraints=[SQL("DEFAULT 0")]) + domain_template = CharField(constraints=[SQL("DEFAULT '.example.com'")]) + ha_agent_version = CharField(null=True) + ha_checking_host = CharField(null=True) + ha_cluster_id = IntegerField(null=True) + ha_enabled = IntegerField(constraints=[SQL("DEFAULT 0")]) + ha_error = CharField(constraints=[SQL("DEFAULT 'no_error'")]) + hdd_overselling = FloatField(constraints=[SQL("DEFAULT 1")]) + host_distribution_policy = CharField(constraints=[SQL("DEFAULT 'spread'")]) + host_filter = UnknownField(null=True) # json + host_per_node_limit = IntegerField(constraints=[SQL("DEFAULT -1")]) + image_storage_path = CharField(constraints=[SQL("DEFAULT '/images'")]) + imported_from = CharField(null=True) + interface_count = IntegerField(constraints=[SQL("DEFAULT 1")]) + iso_enabled = IntegerField(constraints=[SQL("DEFAULT 1")]) + manage_disk_enabled = IntegerField(constraints=[SQL("DEFAULT 0")]) + name = CharField(unique=True) + net_bandwidth_mbitps = IntegerField(null=True) + net_in_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + net_out_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + node_network_gateway = CharField(null=True) + node_network_timeout = IntegerField(constraints=[SQL("DEFAULT 300")]) + node_os_family = CharField(null=True) + os_storage_path = CharField(null=True) + overselling = FloatField(constraints=[SQL("DEFAULT 1")]) + proxy_enabled = IntegerField(constraints=[SQL("DEFAULT 0")]) + qemu_version = CharField(null=True) + spice_enabled = IntegerField(constraints=[SQL("DEFAULT 0")]) + storage_params = UnknownField(null=True) # json + storage_type = CharField() + time_zone = CharField(constraints=[SQL("DEFAULT 'UTC'")]) + type = CharField(constraints=[SQL("DEFAULT 'kvm'")]) + virtualization_type = CharField(constraints=[SQL("DEFAULT 'kvm'")]) + vm5_data = UnknownField(null=True) # json + vm_storage_path = CharField(null=True) + vmmgr_url = CharField(null=True) + volume_group = CharField(null=True) + vxlan_mode = CharField(constraints=[SQL("DEFAULT 'disabled'")]) + + class Meta: + table_name = 'vm_cluster' + +class VmBackupLocation2Cluster(BaseModel): + backup_location = ForeignKeyField(column_name='backup_location', field='id', model=VmBackupLocation, null=True) + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster, null=True) + + class Meta: + table_name = 'vm_backup_location2cluster' + indexes = ( + (('backup_location', 'cluster'), True), + ) + +class VmBalancerHistory(BaseModel): + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster) + dest_node = CharField(null=True) + finish_time = DateTimeField(null=True) + host = CharField() + reason = CharField(null=True) + src_node = CharField() + start_time = DateTimeField(null=True) + status = CharField() + + class Meta: + table_name = 'vm_balancer_history' + +class VmIpFabricSettings(BaseModel): + bgp_as = IntegerField(null=True) + bgp_as_v6 = IntegerField(null=True) + bgp_community = CharField(null=True) + bgp_community_v6 = CharField(null=True) + bgp_routing_type = CharField(constraints=[SQL("DEFAULT 'bird'")]) + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster, unique=True) + gateway = CharField(constraints=[SQL("DEFAULT '10.0.0.1'")]) + mac = CharField(constraints=[SQL("DEFAULT '02:00:00:00:00:01'")]) + + class Meta: + table_name = 'vm_ip_fabric_settings' + +class VmBgpSession(BaseModel): + bgp_as = IntegerField() + comment = CharField(null=True) + ip = CharField() + ip_fabric_settings = ForeignKeyField(column_name='ip_fabric_settings', field='id', model=VmIpFabricSettings) + type = CharField() + + class Meta: + table_name = 'vm_bgp_session' + +class VmBillOptions(BaseModel): + name = CharField(null=True, unique=True) + value = UnknownField(null=True) # json + + class Meta: + table_name = 'vm_bill_options' + +class VmStorage(BaseModel): + available_mib = IntegerField(null=True) + comment = CharField(constraints=[SQL("DEFAULT ''")]) + imported_from = CharField(null=True) + is_network = IntegerField(constraints=[SQL("DEFAULT 0")]) + mount_point = CharField(null=True) + name = CharField() + params = UnknownField(null=True) # json + path = CharField(null=True) + pool_name = CharField(null=True) + reserved_mib = IntegerField(constraints=[SQL("DEFAULT 0")]) + size_mib = IntegerField(null=True) + state = CharField() + storage_params = UnknownField(null=True) # json + type = CharField() + vm5_data = UnknownField(null=True) # json + + class Meta: + table_name = 'vm_storage' + +class VmCephMonitor(BaseModel): + ip_addr = CharField(unique=True) + port = IntegerField(constraints=[SQL("DEFAULT 6789")]) + storage = ForeignKeyField(column_name='storage', field='id', model=VmStorage, null=True) + + class Meta: + table_name = 'vm_ceph_monitor' + +class VmDcNetwork2Cluster(BaseModel): + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster, null=True) + dc_network = IntegerField(null=True) + name = CharField(null=True) + + class Meta: + table_name = 'vm_dc_network2cluster' + indexes = ( + (('dc_network', 'cluster'), True), + ) + +class VmOsGroup(BaseModel): + group_key = CharField(null=True) + name = CharField(null=True, unique=True) + + class Meta: + table_name = 'vm_os_group' + +class VmRepository(BaseModel): + hidden = IntegerField(constraints=[SQL("DEFAULT 0")]) + immortal = IntegerField(constraints=[SQL("DEFAULT 0")]) + name = CharField(unique=True) + type = CharField() + url = CharField(unique=True) + + class Meta: + table_name = 'vm_repository' + +class VmOs(BaseModel): + adminonly = IntegerField(constraints=[SQL("DEFAULT 0")]) + archive_size_mib = IntegerField(null=True) + checksum = CharField(null=True) + efi_boot = IntegerField(constraints=[SQL("DEFAULT 0")]) + expand_part = CharField(null=True) + file_name = CharField(null=True) + image_name = CharField(null=True, unique=True) + image_size_mib = IntegerField(null=True) + install_script_checksum = CharField(constraints=[SQL("DEFAULT ''")]) + install_script_name = CharField(constraints=[SQL("DEFAULT ''")]) + install_script_updated_at = DateTimeField(null=True) + ip_automation = CharField(constraints=[SQL("DEFAULT 'none'")]) + is_dummy = IntegerField(constraints=[SQL("DEFAULT 0")]) + is_lxd_image = IntegerField(constraints=[SQL("DEFAULT 0")]) + iso_data = UnknownField(null=True) # json + kms_supported = IntegerField(constraints=[SQL("DEFAULT 0")]) + min_size_mib = IntegerField(null=True) + name = CharField(null=True) + network_device = CharField(null=True) + os_group = ForeignKeyField(column_name='os_group', field='id', model=VmOsGroup, null=True) + repository = ForeignKeyField(column_name='repository', field='id', model=VmRepository, null=True) + state = CharField(constraints=[SQL("DEFAULT 'active'")]) + tags = UnknownField(null=True) # json + updated_at = DateTimeField(null=True) + vm5_data = UnknownField(null=True) # json + + class Meta: + table_name = 'vm_os' + indexes = ( + (('repository', 'name'), True), + ) + +class VmNode(BaseModel): + additional_data = TextField(null=True) + bird_error = UnknownField(null=True) # json + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster) + comment = CharField(null=True) + connection_error = CharField(null=True) + cpu_number = IntegerField(constraints=[SQL("DEFAULT 0")]) + disk_params = UnknownField(null=True) # json + frr_error = UnknownField(null=True) # json + gray_ips = UnknownField(null=True) # json + ha_disable_failed = IntegerField(constraints=[SQL("DEFAULT 0")]) + ha_error = CharField(constraints=[SQL("DEFAULT 'no_error'")]) + ha_state = CharField(constraints=[SQL("DEFAULT 'unknown'")]) + hdd_overselling = FloatField(constraints=[SQL("DEFAULT 1")]) + host_creation_blocked = IntegerField(constraints=[SQL("DEFAULT 0")]) + host_filter = UnknownField(null=True) # json + host_limit = IntegerField(constraints=[SQL("DEFAULT -1")]) + host_max_num = IntegerField(null=True) + hostname = CharField(null=True) + ip_addr = CharField(null=True, unique=True) + ip_addr_v6 = CharField(null=True, unique=True) + kernel_version = CharField(null=True) + libvirt_error = CharField(null=True) + libvirt_version = CharField(null=True) + lxd_error = CharField(null=True) + lxd_version = CharField(null=True) + maintenance_mode = IntegerField(constraints=[SQL("DEFAULT 0")]) + max_vcpu_number = IntegerField(null=True) + metrics_timestamp = IntegerField(null=True) + mon_install_date = DateTimeField(null=True) + mon_installed = IntegerField(constraints=[SQL("DEFAULT 1")]) + name = CharField(null=True, unique=True) + network_error = CharField(constraints=[SQL("DEFAULT 'no_error'")]) + network_settings_lock = IntegerField(constraints=[SQL("DEFAULT 0")]) + nm_ruled = IntegerField(constraints=[SQL("DEFAULT 0")]) + os_version = CharField(null=True) + overselling = FloatField(constraints=[SQL("DEFAULT 1")]) + problems = UnknownField(null=True) # json + property = UnknownField(null=True) # json + qemu_version = CharField(null=True) + ram_mib = IntegerField(constraints=[SQL("DEFAULT 0")]) + selinux_enforcing = IntegerField(constraints=[SQL("DEFAULT 0")]) + socket_number = IntegerField(constraints=[SQL("DEFAULT 1")]) + spice_error = UnknownField(null=True) # json + ssh_port = IntegerField(null=True) + ssh_user = CharField(constraints=[SQL("DEFAULT 'root'")]) + state = CharField(null=True) + update_dc_networks_failed = IntegerField(constraints=[SQL("DEFAULT 0")]) + uptime = IntegerField(constraints=[SQL("DEFAULT 0")]) + vcpu_limit = IntegerField(constraints=[SQL("DEFAULT -1")]) + vm5_data = UnknownField(null=True) # json + vnc_addr = CharField(null=True) + + class Meta: + table_name = 'vm_node' + +class VmPreset(BaseModel): + anti_spoofing = IntegerField(constraints=[SQL("DEFAULT 1")]) + anti_spoofing_settings = UnknownField(null=True) # json + comment = TextField(null=True) + cpu_custom_model = CharField(null=True) + cpu_mode = CharField(constraints=[SQL("DEFAULT 'default'")]) + cpu_number = IntegerField(constraints=[SQL("DEFAULT 0")]) + cpu_weight = IntegerField(constraints=[SQL("DEFAULT 1024")]) + firewall_rules = UnknownField(null=True) # json + hdd_mib = IntegerField(null=True) + hot_plug = IntegerField(constraints=[SQL("DEFAULT 0")]) + io_read_iops = IntegerField(constraints=[SQL("DEFAULT 0")]) + io_read_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + io_weight = IntegerField(constraints=[SQL("DEFAULT 500")]) + io_write_iops = IntegerField(constraints=[SQL("DEFAULT 0")]) + io_write_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + name = CharField(unique=True) + nesting = IntegerField(constraints=[SQL("DEFAULT 0")]) + net_in_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + net_out_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + net_weight = IntegerField(constraints=[SQL("DEFAULT 5")]) + process_number = IntegerField(constraints=[SQL("DEFAULT -1")]) + ram_mib = IntegerField(constraints=[SQL("DEFAULT 0")]) + snapshot_limit = IntegerField(constraints=[SQL("DEFAULT 3")]) + snapshot_ram = IntegerField(constraints=[SQL("DEFAULT 0")]) + spice_additional_enabled = IntegerField(constraints=[SQL("DEFAULT 0")]) + spice_enabled = IntegerField(constraints=[SQL("DEFAULT 0")]) + tcp_connections_in = IntegerField(constraints=[SQL("DEFAULT 0")]) + tcp_connections_out = IntegerField(constraints=[SQL("DEFAULT 0")]) + virtualization_type = CharField(constraints=[SQL("DEFAULT 'kvm'")]) + + class Meta: + table_name = 'vm_preset' + +class VmHost(BaseModel): + account = ForeignKeyField(column_name='account', field='id', model=VmAccount, null=True) + anti_spoofing = IntegerField(constraints=[SQL("DEFAULT 1")]) + anti_spoofing_settings = UnknownField(null=True) # json + autostart_enabled = IntegerField(constraints=[SQL("DEFAULT 1")]) + balancer_mode = CharField(constraints=[SQL("DEFAULT 'cluster'")]) + bandwidth_inbound_kibps = IntegerField(null=True) + bandwidth_outbound_kibps = IntegerField(null=True) + comment = TextField(null=True) + cpu_command = CharField(null=True) + cpu_custom_model = CharField(null=True) + cpu_mode = CharField(constraints=[SQL("DEFAULT 'default'")]) + cpu_model = CharField(null=True) + cpu_number = IntegerField(constraints=[SQL("DEFAULT 0")]) + cpu_number_new = IntegerField(null=True) + cpu_weight = IntegerField(constraints=[SQL("DEFAULT 1024")]) + disabled = IntegerField(constraints=[SQL("DEFAULT 0")]) + domain = CharField(null=True) + efi_boot = IntegerField(constraints=[SQL("DEFAULT 0")]) + expand_part = CharField(null=True) + extended_protection = IntegerField(constraints=[SQL("DEFAULT 0")]) + firewall_rules = UnknownField(null=True) # json + guest_agent = IntegerField(constraints=[SQL("DEFAULT 0")]) + ha_maintenance = IntegerField(constraints=[SQL("DEFAULT 0")]) + ha_restore_on_fail = IntegerField(constraints=[SQL("DEFAULT 0")]) + ha_restore_priority = IntegerField(constraints=[SQL("DEFAULT 100")]) + ha_sync_error = IntegerField(constraints=[SQL("DEFAULT 0")]) + hot_plug = IntegerField(constraints=[SQL("DEFAULT 0")]) + hot_plug_cell_counter = IntegerField(constraints=[SQL("DEFAULT 0")]) + internal_name = CharField(index=True, null=True) + io_read_iops = IntegerField(constraints=[SQL("DEFAULT 0")]) + io_read_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + io_weight = IntegerField(constraints=[SQL("DEFAULT 500")]) + io_write_iops = IntegerField(constraints=[SQL("DEFAULT 0")]) + io_write_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + iops = IntegerField(null=True) + ip_automation = CharField(constraints=[SQL("DEFAULT 'none'")]) + is_migrating = IntegerField(constraints=[SQL("DEFAULT 0")]) + is_protected = IntegerField(constraints=[SQL("DEFAULT 0")]) + iso = ForeignKeyField(column_name='iso', field='id', model=VmOs, null=True) + mac_address = CharField(null=True) + mon_install_date = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + mon_installed = IntegerField(constraints=[SQL("DEFAULT 0")]) + name = CharField(null=True) + nesting = IntegerField(constraints=[SQL("DEFAULT 0")]) + net_bandwidth_mbitps = IntegerField(null=True) + net_bandwidth_mbitps_changed = IntegerField(constraints=[SQL("DEFAULT 0")]) + net_bandwidth_mbitps_new = IntegerField(null=True) + net_in_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + net_is_synced = IntegerField(constraints=[SQL("DEFAULT 1")]) + net_out_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + net_weight = IntegerField(constraints=[SQL("DEFAULT 5")]) + network_device = CharField(null=True) + node = ForeignKeyField(column_name='node', field='id', model=VmNode) + os = ForeignKeyField(backref='vm_os_os_set', column_name='os', field='id', model=VmOs) + preset = ForeignKeyField(column_name='preset', field='id', model=VmPreset, null=True) + process_number = IntegerField(constraints=[SQL("DEFAULT -1")]) + property = UnknownField(null=True) # json + proxy_port = IntegerField(constraints=[SQL("DEFAULT 0")]) + ram_mib = IntegerField(constraints=[SQL("DEFAULT 0")]) + ram_mib_new = IntegerField(null=True) + rescue_mode = IntegerField(constraints=[SQL("DEFAULT 0")]) + reserved_node = ForeignKeyField(backref='vm_node_reserved_node_set', column_name='reserved_node', field='id', model=VmNode, null=True) + snapshot_curr = IntegerField(constraints=[SQL("DEFAULT 0")]) + snapshot_limit = IntegerField(constraints=[SQL("DEFAULT 3")]) + snapshot_num = IntegerField(null=True) + snapshot_ram = IntegerField(constraints=[SQL("DEFAULT 0")]) + spice_additional_enabled = IntegerField(constraints=[SQL("DEFAULT 0")]) + spice_enabled = IntegerField(constraints=[SQL("DEFAULT 0")]) + spice_password = TextField(null=True) + spice_port = IntegerField(constraints=[SQL("DEFAULT 0")]) + start_date = IntegerField(constraints=[SQL("DEFAULT 0")]) + state = CharField() + state_update_date = CharField(constraints=[SQL("DEFAULT '1970-01-01 00:00:00.000000'")]) + stopped = IntegerField(constraints=[SQL("DEFAULT 0")]) + tcp_connections_in = IntegerField(constraints=[SQL("DEFAULT 0")]) + tcp_connections_out = IntegerField(constraints=[SQL("DEFAULT 0")]) + transfer_limit = IntegerField(null=True) + used_time = CharField() + vm5_data = UnknownField(null=True) # json + vmmgr_id = IntegerField(null=True) + vnc_password = TextField(null=True) + vnc_port = IntegerField(constraints=[SQL("DEFAULT 0")]) + xml_version = IntegerField(constraints=[SQL("DEFAULT 0")]) + + class Meta: + table_name = 'vm_host' + +class VmStorage2Node(BaseModel): + available_mib = IntegerField(null=True) + hdd_overselling = FloatField(constraints=[SQL("DEFAULT 1")]) + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + size_mib = IntegerField(null=True) + state = CharField() + storage = ForeignKeyField(column_name='storage', field='id', model=VmStorage, null=True) + + class Meta: + table_name = 'vm_storage2node' + indexes = ( + (('storage', 'node'), True), + ) + +class VmDisk(BaseModel): + account = ForeignKeyField(column_name='account', field='id', model=VmAccount, null=True) + boot_order = IntegerField(null=True) + bus = CharField(null=True) + expand_part = CharField(null=True) + host = ForeignKeyField(column_name='host', field='id', model=VmHost, null=True) + internal_name = CharField(null=True, unique=True) + is_main = IntegerField(null=True) + iso = ForeignKeyField(column_name='iso', field='id', model=VmOs, null=True) + name = CharField(null=True) + reserved_storage2node = ForeignKeyField(column_name='reserved_storage2node', field='id', model=VmStorage2Node, null=True) + size_mib = IntegerField(null=True) + size_mib_new = IntegerField(null=True) + state = CharField(constraints=[SQL("DEFAULT 'creating'")]) + storage2node = ForeignKeyField(backref='vm_storage2node_storage2node_set', column_name='storage2node', field='id', model=VmStorage2Node, null=True) + tags = UnknownField(null=True) # json + target_dev = CharField(null=True) + type = CharField(constraints=[SQL("DEFAULT 'hard_drive'")]) + virt_pool = IntegerField(null=True) + vm5_data = UnknownField(null=True) # json + + class Meta: + table_name = 'vm_disk' + indexes = ( + (('host', 'boot_order'), True), + (('host', 'is_main'), True), + (('host', 'target_dev'), True), + ) + +class VmSchedule(BaseModel): + backup_mode = CharField(constraints=[SQL("DEFAULT 'host_main'")]) + comment = CharField(null=True) + day = IntegerField(null=True) + hour = IntegerField() + limit_count = IntegerField(null=True) + limit_size_mib = IntegerField(null=True) + minute = IntegerField() + name = CharField(null=True) + type = CharField() + week_day = IntegerField(null=True) + + class Meta: + table_name = 'vm_schedule' + +class VmDiskBackup(BaseModel): + actual_size_mib = IntegerField(null=True) + available_until = DateTimeField(null=True) + backup_location = ForeignKeyField(column_name='backup_location', field='id', model=VmBackupLocation, null=True) + comment = CharField(null=True) + date_create = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + destination_backup_location = ForeignKeyField(backref='vm_backup_location_destination_backup_location_set', column_name='destination_backup_location', field='id', model=VmBackupLocation, null=True) + estimated_size_mib = IntegerField() + expand_part = CharField(null=True) + internal_name = CharField(unique=True) + ip_automation = CharField(constraints=[SQL("DEFAULT 'none'")]) + name = CharField(null=True, unique=True) + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + of_linked_clone = IntegerField(constraints=[SQL("DEFAULT 0")]) + os = ForeignKeyField(column_name='os', field='id', model=VmOs, null=True) + parent_disk = ForeignKeyField(column_name='parent_disk', field='id', model=VmDisk) + schedule = ForeignKeyField(column_name='schedule', field='id', model=VmSchedule, null=True) + state = CharField() + + class Meta: + table_name = 'vm_disk_backup' + indexes = ( + (('internal_name', 'node'), True), + ) + +class VmDiskBackupHistory(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=VmDiskBackup, null=True) + request_id = CharField(null=True) + request_ip = CharField(null=True) + request_owner = CharField(null=True) + request_user = CharField(null=True) + + class Meta: + table_name = 'vm_disk_backup_history' + +class VmDiskHistory(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=VmDisk, null=True) + request_id = CharField(null=True) + request_ip = CharField(null=True) + request_owner = CharField(null=True) + request_user = CharField(null=True) + + class Meta: + table_name = 'vm_disk_history' + +class VmFix(BaseModel): + name = CharField(null=True) + + class Meta: + table_name = 'vm_fix' + +class VmHetznerSubnet(BaseModel): + family = IntegerField(constraints=[SQL("DEFAULT 2")]) + gateway = CharField(null=True) + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + subnet = CharField() + + class Meta: + table_name = 'vm_hetzner_subnet' + indexes = ( + (('subnet', 'node'), True), + ) + +class VmNodeBridge(BaseModel): + date_create = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + gateway_v4 = CharField(null=True) + gateway_v6 = CharField(null=True) + ipv4 = CharField(null=True) + ipv6 = CharField(null=True) + is_default = IntegerField(constraints=[SQL("DEFAULT 0")]) + is_main_network = IntegerField(constraints=[SQL("DEFAULT 1")]) + name = CharField() + nm_ruled = IntegerField(constraints=[SQL("DEFAULT 0")]) + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + old_values = UnknownField(null=True) # json + state = CharField(constraints=[SQL("DEFAULT 'unknown'")]) + take_slave_ip = IntegerField(constraints=[SQL("DEFAULT 0")]) + vlan = IntegerField(null=True) + + class Meta: + table_name = 'vm_node_bridge' + indexes = ( + (('is_default', 'is_main_network', 'node'), False), + (('name', 'node'), True), + (('vlan', 'node'), True), + ) + +class VmVxlan(BaseModel): + account = IntegerField() + comment = CharField(null=True) + ippool = IntegerField(unique=True) + name = CharField() + tag = IntegerField(unique=True) + + class Meta: + table_name = 'vm_vxlan' + indexes = ( + (('name', 'account'), True), + ) + +class VmHostInterfaces(BaseModel): + host = ForeignKeyField(column_name='host', field='id', model=VmHost, null=True) + mac_address = CharField(null=True, unique=True) + model = CharField(constraints=[SQL("DEFAULT 'virtio'")]) + name = CharField(null=True) + node_bridge = ForeignKeyField(column_name='node_bridge', field='id', model=VmNodeBridge, null=True) + node_interface = IntegerField(null=True) + vxlan = ForeignKeyField(column_name='vxlan', field='id', model=VmVxlan, null=True) + + class Meta: + table_name = 'vm_host_interfaces' + indexes = ( + (('name', 'host'), True), + (('node_bridge', 'host'), True), + ) + +class VmIp(BaseModel): + account = ForeignKeyField(column_name='account', field='id', model=VmAccount, null=True) + bin = DecimalField(null=True) + comment = CharField(null=True) + domain = CharField(null=True) + family = IntegerField() + first_addr = CharField(null=True) + gateway = CharField(null=True) + host = ForeignKeyField(column_name='host', field='id', model=VmHost, null=True) + host_interface = ForeignKeyField(column_name='host_interface', field='id', model=VmHostInterfaces, null=True) + internal = IntegerField(constraints=[SQL("DEFAULT 0")]) + ip_addr = CharField() + ippool = IntegerField(null=True) + net_prefix = IntegerField() + netmask = CharField(null=True) + network = IntegerField(null=True) + property = UnknownField(null=True) # json + remote_id = IntegerField(null=True) + state = CharField() + + class Meta: + table_name = 'vm_ip' + indexes = ( + (('ip_addr', 'network'), True), + ) + +class VmHetznerIp(BaseModel): + bin = DecimalField(null=True) + family = IntegerField() + ip = ForeignKeyField(column_name='ip', field='id', model=VmIp, null=True) + ip_addr = CharField() + net_prefix = IntegerField() + netmask = CharField(null=True) + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + state = CharField(constraints=[SQL("DEFAULT 'free'")]) + subnet = ForeignKeyField(column_name='subnet', field='id', model=VmHetznerSubnet, null=True) + + class Meta: + table_name = 'vm_hetzner_ip' + indexes = ( + (('ip_addr', 'node'), True), + ) + +class VmImage(BaseModel): + account = ForeignKeyField(column_name='account', field='id', model=VmAccount, null=True) + available_until = DateTimeField(null=True) + backup_location = IntegerField(null=True) + cleared = IntegerField(constraints=[SQL("DEFAULT 0")]) + comment = TextField(null=True) + cpu_number = IntegerField(constraints=[SQL("DEFAULT 0")]) + date_create = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + destination_backup_location = IntegerField(null=True) + efi_boot = IntegerField(constraints=[SQL("DEFAULT 0")]) + expand_part = CharField(null=True) + file_size_mib = IntegerField(null=True) + for_all = IntegerField(constraints=[SQL("DEFAULT 0")]) + image_name = CharField(null=True, unique=True) + ip_automation = CharField(constraints=[SQL("DEFAULT 'none'")]) + ipv4_number = IntegerField(constraints=[SQL("DEFAULT 1")]) + ipv6_number = IntegerField(constraints=[SQL("DEFAULT 0")]) + is_local = IntegerField(constraints=[SQL("DEFAULT 1")]) + name = CharField(null=True, unique=True) + network_device = CharField(null=True) + os = ForeignKeyField(column_name='os', field='id', model=VmOs) + parent_host = ForeignKeyField(column_name='parent_host', field='id', model=VmHost, null=True) + ram_mib = IntegerField(constraints=[SQL("DEFAULT 0")]) + schedule = IntegerField(null=True) + size_mib = IntegerField(null=True) + spice_additional_enabled = IntegerField(constraints=[SQL("DEFAULT 0")]) + spice_enabled = IntegerField(constraints=[SQL("DEFAULT 0")]) + state = CharField() + type = CharField() + virt_type = CharField() + virtualization_type = CharField() + + class Meta: + table_name = 'vm_image' + +class VmHost2Image(BaseModel): + host = ForeignKeyField(column_name='host', field='id', model=VmHost, unique=True) + image = ForeignKeyField(column_name='image', field='id', model=VmImage) + + class Meta: + table_name = 'vm_host2image' + +class VmHostBillOptions(BaseModel): + host = ForeignKeyField(column_name='host', field='id', model=VmHost, null=True, unique=True) + image_gib = IntegerField(null=True) + + class Meta: + table_name = 'vm_host_bill_options' + +class VmHostCache(BaseModel): + anti_spoofing = UnknownField(null=True) # json + anti_spoofing_settings = UnknownField(null=True) # json + balancer_mode = CharField(constraints=[SQL("DEFAULT 'cluster'")]) + bill_options_image_gib = IntegerField(null=True) + bill_options_image_gib_used = DecimalField(null=True) + bill_options_image_limit_exceeded = UnknownField(null=True) # json + cluster_balancer_mode = CharField(constraints=[SQL("DEFAULT 'off'")]) + cluster_datacenter_type = CharField(constraints=[SQL("DEFAULT 'common'")]) + cluster_domain_change_allowed = UnknownField(null=True) # json + cluster_ha_enabled = UnknownField(null=True) # json + cluster_id = IntegerField(constraints=[SQL("DEFAULT 0")]) + cluster_interface_count = IntegerField(constraints=[SQL("DEFAULT 1")]) + cluster_iso_enabled = UnknownField(null=True) # json + cluster_manage_disk_enabled = UnknownField(null=True) # json + cluster_name = CharField() + cluster_spice_enabled = UnknownField(null=True) # json + cluster_virtualization_type = CharField(constraints=[SQL("DEFAULT 'kvm'")]) + cluster_vxlan_mode = CharField(constraints=[SQL("DEFAULT 'disabled'")]) + comment = TextField(null=True) + cpu_custom_model = CharField(null=True) + cpu_mode = CharField(constraints=[SQL("DEFAULT 'default'")]) + cpu_number = IntegerField(constraints=[SQL("DEFAULT 0")]) + cpu_number_new = IntegerField(null=True) + cpu_weight = IntegerField(constraints=[SQL("DEFAULT 1024")]) + disabled = IntegerField(constraints=[SQL("DEFAULT 0")]) + disk_count = BigIntegerField(constraints=[SQL("DEFAULT 0")], null=True) + disk_disk_mib = IntegerField(null=True) + disk_disk_mib_new = IntegerField(null=True) + disk_id = IntegerField(constraints=[SQL("DEFAULT 0")], null=True) + disk_target_dev = CharField(null=True) + domain = CharField(null=True) + efi_boot = UnknownField(null=True) # json + expand_part = CharField(null=True) + extended_protection = UnknownField(null=True) # json + firewall_rules = UnknownField(null=True) # json + guest_agent = UnknownField(null=True) # json + ha_maintenance = UnknownField(null=True) # json + ha_restore_on_fail = UnknownField(null=True) # json + ha_restore_priority = IntegerField(constraints=[SQL("DEFAULT 100")]) + ha_sync_error = UnknownField(null=True) # json + has_failed_tasks = UnknownField(null=True) # json + has_noname_iface = UnknownField(null=True) # json + host2disk_id = IntegerField(null=True) + host2disk_storage2node = IntegerField(null=True) + host_account = IntegerField(null=True) + host_os = IntegerField() + host_start_date = IntegerField(constraints=[SQL("DEFAULT 0")]) + hot_plug = UnknownField(null=True) # json + hot_plug_cell_counter = IntegerField(constraints=[SQL("DEFAULT 0")]) + id = IntegerField(constraints=[SQL("DEFAULT 0")]) + interfaces = UnknownField(null=True) # json + internal_name = CharField(null=True) + io_read_iops = IntegerField(constraints=[SQL("DEFAULT 0")]) + io_read_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + io_weight = IntegerField(constraints=[SQL("DEFAULT 500")]) + io_write_iops = IntegerField(constraints=[SQL("DEFAULT 0")]) + io_write_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + ip4 = UnknownField(null=True) # json + ip6 = UnknownField(null=True) # json + ip_automation = CharField(constraints=[SQL("DEFAULT 'none'")]) + is_protected = UnknownField(null=True) # json + iso_mounted = UnknownField(null=True) # json + iso_reboot = UnknownField(null=True) # json + iso_status = UnknownField(null=True) # json + linked_clone_image_id = IntegerField(null=True) + mon_install_date = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + name = CharField(null=True) + nesting = UnknownField(null=True) # json + net_bandwidth_mbitps = IntegerField(null=True) + net_bandwidth_mbitps_changed = IntegerField(constraints=[SQL("DEFAULT 0")]) + net_bandwidth_mbitps_new = IntegerField(null=True) + net_in_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + net_is_synced = UnknownField(null=True) # json + net_out_mbitps = IntegerField(constraints=[SQL("DEFAULT 0")]) + net_weight = IntegerField(constraints=[SQL("DEFAULT 5")]) + node = IntegerField(index=True) + node_hot_plug_memory = UnknownField(null=True) # json + node_id = IntegerField(constraints=[SQL("DEFAULT 0")]) + node_ip_addr = CharField(null=True) + node_live_migration_allowed = UnknownField(null=True) # json + node_maintenance_mode = UnknownField(null=True) # json + node_name = CharField(null=True) + os_group = CharField(null=True) + os_id = IntegerField(constraints=[SQL("DEFAULT 0")], null=True) + os_name = CharField(null=True) + process_number = IntegerField(constraints=[SQL("DEFAULT -1")]) + ram_mib = IntegerField(constraints=[SQL("DEFAULT 0")]) + ram_mib_new = IntegerField(null=True) + rescue_mode = UnknownField(null=True) # json + snapshot_curr = IntegerField(constraints=[SQL("DEFAULT 0")]) + snapshot_limit = IntegerField(constraints=[SQL("DEFAULT 3")]) + snapshot_ram = UnknownField(null=True) # json + spice_additional_enabled = UnknownField(null=True) # json + spice_enabled = UnknownField(null=True) # json + state = CharField(constraints=[SQL("DEFAULT ''")]) + tags = UnknownField(null=True) # json + tcp_connections_in = IntegerField(constraints=[SQL("DEFAULT 0")]) + tcp_connections_out = IntegerField(constraints=[SQL("DEFAULT 0")]) + vm5_restrictions = UnknownField(null=True) # json + xml_version = IntegerField(constraints=[SQL("DEFAULT 0")]) + + class Meta: + table_name = 'vm_host_cache' + primary_key = False + +class VmHostHistory(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=VmHost, null=True) + request_id = CharField(null=True) + request_ip = CharField(null=True) + request_owner = CharField(null=True) + request_user = CharField(null=True) + + class Meta: + table_name = 'vm_host_history' + +class VmTaskLog(BaseModel): + consul_id = IntegerField(null=True) + date_create = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")], index=True) + date_end = DateTimeField(null=True) + date_start = DateTimeField(null=True) + defer_reason = CharField(index=True, null=True) + ha_cluster_id = IntegerField(null=True) + ha_id = IntegerField(null=True) + main_table = CharField(null=True) + main_table_id = IntegerField(null=True) + main_table_name = CharField(null=True) + message_params = UnknownField(null=True) # json + name = CharField() + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + output = TextField(null=True) + param = UnknownField(null=True) # json + password_hidden = IntegerField(constraints=[SQL("DEFAULT 0")]) + request_info = UnknownField(null=True) # json + security_action = CharField(null=True) + status = CharField(index=True) + + class Meta: + table_name = 'vm_task_log' + indexes = ( + (('consul_id', 'name'), True), + (('ha_cluster_id', 'ha_id'), False), + ) + +class VmHostLog(BaseModel): + date_create = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + host = ForeignKeyField(column_name='host', field='id', model=VmHost, null=True) + name = CharField(null=True) + params = UnknownField(null=True) # json + request_ip = CharField(null=True) + request_owner = IntegerField(null=True) + request_trustee = IntegerField(null=True) + rights = UnknownField(null=True) # json + state = CharField(null=True) + task = ForeignKeyField(column_name='task', field='id', model=VmTaskLog, null=True) + + class Meta: + table_name = 'vm_host_log' + +class VmNodeInterfaces(BaseModel): + date_create = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + gateway_v4 = CharField(null=True) + gateway_v6 = CharField(null=True) + ipv4 = CharField(null=True) + ipv6 = CharField(null=True) + is_default = IntegerField(constraints=[SQL("DEFAULT 0")]) + name = CharField() + network_switch = CharField(constraints=[SQL("DEFAULT 'vmbr0'")]) + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + old_values = UnknownField(null=True) # json + state = CharField(constraints=[SQL("DEFAULT 'unknown'")]) + + class Meta: + table_name = 'vm_node_interfaces' + indexes = ( + (('name', 'node'), True), + ) + +class VmNodeBond(BaseModel): + date_create = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + gateway_v4 = CharField(null=True) + gateway_v6 = CharField(null=True) + ipv4 = CharField(null=True) + ipv6 = CharField(null=True) + mode = CharField(constraints=[SQL("DEFAULT 'active-backup'")]) + name = CharField() + nm_ruled = IntegerField(constraints=[SQL("DEFAULT 0")]) + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + old_values = UnknownField(null=True) # json + slave_ip = CharField(null=True) + state = CharField(constraints=[SQL("DEFAULT 'unknown'")]) + take_slave_ip = IntegerField(constraints=[SQL("DEFAULT 0")]) + + class Meta: + table_name = 'vm_node_bond' + indexes = ( + (('name', 'node'), True), + ) + +class VmIface2Bond2Bridge(BaseModel): + bond = ForeignKeyField(column_name='bond', field='id', model=VmNodeBond, null=True) + bridge = ForeignKeyField(column_name='bridge', field='id', model=VmNodeBridge, null=True) + iface = ForeignKeyField(column_name='iface', field='id', model=VmNodeInterfaces, null=True) + + class Meta: + table_name = 'vm_iface2bond2bridge' + indexes = ( + (('bond', 'bridge'), False), + (('iface', 'bond'), False), + (('iface', 'bridge'), False), + ) + +class VmImage2Node(BaseModel): + image = ForeignKeyField(column_name='image', field='id', model=VmImage, null=True) + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + state = CharField(constraints=[SQL("DEFAULT 'active'")]) + + class Meta: + table_name = 'vm_image2node' + indexes = ( + (('image', 'node'), True), + ) + +class VmImage2Storage(BaseModel): + image = ForeignKeyField(column_name='image', field='id', model=VmImage, null=True, unique=True) + storage = ForeignKeyField(column_name='storage', field='id', model=VmStorage, null=True) + + class Meta: + table_name = 'vm_image2storage' + +class VmImageHistory(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=VmImage, null=True) + request_id = CharField(null=True) + request_ip = CharField(null=True) + request_owner = CharField(null=True) + request_user = CharField(null=True) + + class Meta: + table_name = 'vm_image_history' + +class VmPlatformBackupSchedule(BaseModel): + comment = CharField(null=True) + cron_expression = CharField() + enabled = IntegerField(constraints=[SQL("DEFAULT 1")]) + local_backups_to_keep = IntegerField(constraints=[SQL("DEFAULT 5")]) + name = CharField(null=True) + schedule_type = CharField(null=True) + + class Meta: + table_name = 'vm_platform_backup_schedule' + +class VmPlatformBackup(BaseModel): + date = DateTimeField() + location = CharField() + name = CharField() + platform_backup_schedule = ForeignKeyField(column_name='platform_backup_schedule', field='id', model=VmPlatformBackupSchedule, null=True) + size_mib = FloatField() + state = CharField(constraints=[SQL("DEFAULT 'active'")]) + + class Meta: + table_name = 'vm_platform_backup' + +class VmImportHistory(BaseModel): + account = ForeignKeyField(column_name='account', field='id', model=VmAccount, null=True) + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster, null=True) + data = UnknownField(null=True) # json + date_create = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + date_end = DateTimeField(null=True) + date_start = DateTimeField(null=True) + initiator_ip = CharField(null=True) + platform_backup = ForeignKeyField(column_name='platform_backup', field='id', model=VmPlatformBackup, null=True) + state = CharField(constraints=[SQL("DEFAULT 'created'")]) + task_id = IntegerField(null=True) + type = CharField() + url = CharField(null=True) + + class Meta: + table_name = 'vm_import_history' + +class VmIpmgr5MigrationHistory(BaseModel): + date_create = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + host = CharField(null=True) + status = CharField(constraints=[SQL("DEFAULT 'created'")]) + + class Meta: + table_name = 'vm_ipmgr5_migration_history' + +class VmIppool2Cluster(BaseModel): + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster, null=True) + interface = IntegerField(constraints=[SQL("DEFAULT 0")]) + ippool = IntegerField(null=True) + + class Meta: + table_name = 'vm_ippool2cluster' + indexes = ( + (('ippool', 'cluster'), True), + ) + +class VmMac(BaseModel): + ip = CharField(null=True) + name = CharField(null=True) + + class Meta: + table_name = 'vm_mac' + +class VmMaintenance(BaseModel): + created_date = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + finished_date = DateTimeField(null=True) + ignore_images_and_backups = IntegerField(constraints=[SQL("DEFAULT 1")]) + is_cancelled = IntegerField(constraints=[SQL("DEFAULT 0")]) + need_evacuation = IntegerField(constraints=[SQL("DEFAULT 1")]) + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True, unique=True) + state = CharField(constraints=[SQL("DEFAULT 'planned'")]) + + class Meta: + table_name = 'vm_maintenance' + +class VmMaintenance2Entity(BaseModel): + additional_data = UnknownField(null=True) # json + created_date = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + destination_id = IntegerField(null=True) + entity_id = IntegerField() + entity_name = CharField() + execution_date = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + finished_date = DateTimeField(null=True) + maintenance = ForeignKeyField(column_name='maintenance', field='id', model=VmMaintenance, null=True) + output = UnknownField(null=True) # json + source_id = IntegerField() + status = CharField(constraints=[SQL("DEFAULT 'planned'")]) + + class Meta: + table_name = 'vm_maintenance2entity' + indexes = ( + (('maintenance', 'entity_name', 'entity_id'), True), + ) + +class VmMaintenanceHistory(BaseModel): + created_date = DateTimeField() + finished_date = DateTimeField(null=True) + maintenance = IntegerField(null=True) + maintenance_info = UnknownField() # json + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + + class Meta: + table_name = 'vm_maintenance_history' + +class VmNetworkStorage(BaseModel): + available_mib = IntegerField(null=True) + checked_time = DateTimeField(null=True) + ip_addr = CharField(null=True) + login = CharField(null=True) + name = CharField(null=True, unique=True) + password = CharField(null=True) + port = IntegerField(null=True) + size_mib = IntegerField(null=True) + state = CharField(null=True) + + class Meta: + table_name = 'vm_network_storage' + +class VmNodeFiles(BaseModel): + directory = CharField(null=True) + entity = UnknownField(null=True) # json + entity_id = IntegerField(null=True) + entity_name = CharField(null=True) + internal_name = CharField(null=True) + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + path = CharField(null=True) + size_mib = IntegerField(null=True) + storage = ForeignKeyField(column_name='storage', field='id', model=VmStorage, null=True) + type = CharField(constraints=[SQL("DEFAULT 'unknown'")]) + + class Meta: + table_name = 'vm_node_files' + indexes = ( + (('path', 'node'), True), + ) + +class VmNodeHistory(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=VmNode, null=True) + request_id = CharField(null=True) + request_ip = CharField(null=True) + request_owner = CharField(null=True) + request_user = CharField(null=True) + + class Meta: + table_name = 'vm_node_history' + +class VmNodeLog(BaseModel): + date_create = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + destination_node = IntegerField(null=True) + host = ForeignKeyField(column_name='host', field='id', model=VmHost, null=True) + name = CharField(null=True) + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + params = UnknownField(null=True) # json + request_owner = IntegerField(null=True) + request_trustee = IntegerField(null=True) + state = CharField(null=True) + task = ForeignKeyField(column_name='task', field='id', model=VmTaskLog, null=True) + + class Meta: + table_name = 'vm_node_log' + +class VmNodeScript(BaseModel): + account = ForeignKeyField(column_name='account', field='id', model=VmAccount, null=True) + description = CharField(null=True) + immortal = IntegerField(constraints=[SQL("DEFAULT 0")]) + name = CharField(null=True) + priority = IntegerField(constraints=[SQL("DEFAULT 0")]) + script = TextField(null=True) + type = CharField(constraints=[SQL("DEFAULT 'shell'")]) + updated_at = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + updated_by = ForeignKeyField(backref='vm_account_updated_by_set', column_name='updated_by', field='id', model=VmAccount, null=True) + + class Meta: + table_name = 'vm_node_script' + +class VmNodeScript2Cluster(BaseModel): + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster, null=True) + script = ForeignKeyField(column_name='script', field='id', model=VmNodeScript, null=True) + + class Meta: + table_name = 'vm_node_script2cluster' + indexes = ( + (('script', 'cluster'), True), + ) + +class VmOs2Cluster(BaseModel): + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster, null=True) + os = ForeignKeyField(column_name='os', field='id', model=VmOs, null=True) + + class Meta: + table_name = 'vm_os2cluster' + indexes = ( + (('os', 'cluster'), True), + ) + +class VmOs2Node(BaseModel): + install_script_updated_at = DateTimeField(null=True) + node = ForeignKeyField(column_name='node', field='id', model=VmNode) + os = ForeignKeyField(column_name='os', field='id', model=VmOs) + state = CharField(null=True) + + class Meta: + table_name = 'vm_os2node' + indexes = ( + (('os', 'node'), True), + ) + +class VmOsHistory(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=VmOs, null=True) + request_id = CharField(null=True) + request_ip = CharField(null=True) + request_owner = CharField(null=True) + request_user = CharField(null=True) + + class Meta: + table_name = 'vm_os_history' + +class VmOsOptions(BaseModel): + name = CharField() + os = ForeignKeyField(column_name='os', field='id', model=VmOs) + value = CharField(null=True) + + class Meta: + table_name = 'vm_os_options' + indexes = ( + (('name', 'os'), True), + ) + +class VmPlatformBackupStorage(BaseModel): + connection_params = UnknownField(null=True) # json + storage_type = CharField(null=True) + + class Meta: + table_name = 'vm_platform_backup_storage' + +class VmPlatformBackupStorage2Schedule(BaseModel): + platform_backup_schedule = ForeignKeyField(column_name='platform_backup_schedule', field='id', model=VmPlatformBackupSchedule, null=True) + platform_backup_storage = ForeignKeyField(column_name='platform_backup_storage', field='id', model=VmPlatformBackupStorage, null=True) + + class Meta: + table_name = 'vm_platform_backup_storage2schedule' + indexes = ( + (('platform_backup_schedule', 'platform_backup_storage'), True), + ) + +class VmPresetDisk(BaseModel): + boot_order = IntegerField() + preset = ForeignKeyField(column_name='preset', field='id', model=VmPreset, null=True) + size_mib = IntegerField() + + class Meta: + table_name = 'vm_preset_disk' + indexes = ( + (('preset', 'boot_order'), True), + ) + +class VmTag(BaseModel): + immortal = IntegerField(constraints=[SQL("DEFAULT 0")]) + name = CharField(unique=True) + note = CharField(null=True) + + class Meta: + table_name = 'vm_tag' + +class VmPresetDisk2Tag(BaseModel): + preset_disk = ForeignKeyField(column_name='preset_disk', field='id', model=VmPresetDisk, null=True) + tag = ForeignKeyField(column_name='tag', field='id', model=VmTag, null=True) + + class Meta: + table_name = 'vm_preset_disk2tag' + indexes = ( + (('preset_disk', 'tag'), True), + ) + +class VmRecipe(BaseModel): + account = ForeignKeyField(column_name='account', field='id', model=VmAccount, null=True) + description = CharField(null=True) + file_name = CharField(null=True) + for_all = IntegerField(constraints=[SQL("DEFAULT 0")]) + name = CharField(null=True) + repository = ForeignKeyField(column_name='repository', field='id', model=VmRepository, null=True) + script = TextField(null=True) + script_filter = UnknownField(null=True) # json + state = CharField(null=True) + tags = UnknownField(null=True) # json + type = CharField(constraints=[SQL("DEFAULT 'shell'")]) + updated_at = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + user_visible = IntegerField(constraints=[SQL("DEFAULT 1")]) + + class Meta: + table_name = 'vm_recipe' + indexes = ( + (('repository', 'name'), True), + ) + +class VmRecipeEmail(BaseModel): + content = TextField(null=True) + lang = CharField(null=True) + recipe = ForeignKeyField(column_name='recipe', field='id', model=VmRecipe, null=True) + subject = CharField(null=True) + + class Meta: + table_name = 'vm_recipe_email' + indexes = ( + (('recipe', 'lang'), True), + ) + +class VmRecipeParam(BaseModel): + description = CharField(null=True) + name = CharField(null=True) + recipe = ForeignKeyField(column_name='recipe', field='id', model=VmRecipe) + required = IntegerField(constraints=[SQL("DEFAULT 0")]) + select_values = UnknownField(null=True) # json + type = CharField(constraints=[SQL("DEFAULT 'input'")]) + + class Meta: + table_name = 'vm_recipe_param' + indexes = ( + (('recipe', 'name'), True), + ) + +class VmSchedule2BackupLocation(BaseModel): + backup_location = ForeignKeyField(column_name='backup_location', field='id', model=VmBackupLocation, null=True) + schedule = ForeignKeyField(column_name='schedule', field='id', model=VmSchedule, null=True) + + class Meta: + table_name = 'vm_schedule2backup_location' + indexes = ( + (('schedule', 'backup_location'), True), + ) + +class VmSchedule2Cluster(BaseModel): + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster, null=True) + schedule = ForeignKeyField(column_name='schedule', field='id', model=VmSchedule, null=True) + + class Meta: + table_name = 'vm_schedule2cluster' + indexes = ( + (('schedule', 'cluster'), True), + ) + +class VmSchedule2Disk(BaseModel): + disk = ForeignKeyField(column_name='disk', field='id', model=VmDisk, null=True) + schedule = ForeignKeyField(column_name='schedule', field='id', model=VmSchedule, null=True) + + class Meta: + table_name = 'vm_schedule2disk' + indexes = ( + (('schedule', 'disk'), True), + ) + +class VmSchedule2Host(BaseModel): + host = ForeignKeyField(column_name='host', field='id', model=VmHost, null=True) + schedule = ForeignKeyField(column_name='schedule', field='id', model=VmSchedule, null=True) + + class Meta: + table_name = 'vm_schedule2host' + indexes = ( + (('schedule', 'host'), True), + ) + +class VmSchedule2Node(BaseModel): + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + schedule = ForeignKeyField(column_name='schedule', field='id', model=VmSchedule, null=True) + + class Meta: + table_name = 'vm_schedule2node' + indexes = ( + (('schedule', 'node'), True), + ) + +class VmSchedule2Preset(BaseModel): + preset = ForeignKeyField(column_name='preset', field='id', model=VmPreset, null=True) + schedule = ForeignKeyField(column_name='schedule', field='id', model=VmSchedule, null=True) + + class Meta: + table_name = 'vm_schedule2preset' + indexes = ( + (('schedule', 'preset'), True), + ) + +class VmScriptVariable(BaseModel): + account = ForeignKeyField(column_name='account', field='id', model=VmAccount, null=True) + builtin = IntegerField(constraints=[SQL("DEFAULT 0")]) + comment = TextField(null=True) + enabled = IntegerField(constraints=[SQL("DEFAULT 1")]) + hidden = IntegerField(constraints=[SQL("DEFAULT 0")]) + name = CharField(null=True) + scope = CharField(constraints=[SQL("DEFAULT 'global'")]) + value = TextField(null=True) + + class Meta: + table_name = 'vm_script_variable' + indexes = ( + (('account', 'name'), True), + ) + +class VmSettings(BaseModel): + name = CharField(null=True, unique=True) + value = TextField(null=True) + + class Meta: + table_name = 'vm_settings' + +class VmSnapshot(BaseModel): + created = DateTimeField(constraints=[SQL("DEFAULT CURRENT_TIMESTAMP")]) + data = UnknownField(null=True) # json + description = CharField(constraints=[SQL("DEFAULT ''")]) + ext_name = CharField(constraints=[SQL("DEFAULT ''")]) + host = ForeignKeyField(column_name='host', field='id', model=VmHost) + name = CharField() + parent = IntegerField(constraints=[SQL("DEFAULT 0")]) + state = CharField() + type = CharField() + vm5_data = UnknownField(null=True) # json + with_ram = IntegerField(constraints=[SQL("DEFAULT 0")]) + + class Meta: + table_name = 'vm_snapshot' + indexes = ( + (('host', 'name'), True), + ) + +class VmSshKey(BaseModel): + name = CharField(null=True) + ssh_key = TextField(null=True) + + class Meta: + table_name = 'vm_ssh_key' + +class VmSshKey2Cluster(BaseModel): + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster, null=True) + ssh_key = ForeignKeyField(column_name='ssh_key', field='id', model=VmSshKey, null=True) + + class Meta: + table_name = 'vm_ssh_key2cluster' + indexes = ( + (('ssh_key', 'cluster'), True), + ) + +class VmStatInstance(BaseModel): + name = CharField(primary_key=True) + value = TextField(null=True) + + class Meta: + table_name = 'vm_stat_instance' + +class VmStatPolicy(BaseModel): + name = CharField(primary_key=True) + value = TextField(null=True) + + class Meta: + table_name = 'vm_stat_policy' + +class VmStatSettings(BaseModel): + name = CharField(primary_key=True) + value = TextField(null=True) + + class Meta: + table_name = 'vm_stat_settings' + +class VmStorage2Cluster(BaseModel): + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster, null=True) + enabled = IntegerField(constraints=[SQL("DEFAULT 1")]) + ha_params = UnknownField(null=True) # json + hdd_overselling = FloatField(constraints=[SQL("DEFAULT 1")]) + is_main = IntegerField(constraints=[SQL("DEFAULT 0")]) + params = UnknownField(null=True) # json + pool_name = CharField(null=True) + storage = ForeignKeyField(column_name='storage', field='id', model=VmStorage, null=True) + + class Meta: + table_name = 'vm_storage2cluster' + indexes = ( + (('storage', 'cluster'), True), + ) + +class VmStorage2Tag(BaseModel): + storage = ForeignKeyField(column_name='storage', field='id', model=VmStorage, null=True) + tag = ForeignKeyField(column_name='tag', field='id', model=VmTag, null=True) + + class Meta: + table_name = 'vm_storage2tag' + indexes = ( + (('storage', 'tag'), True), + ) + +class VmStorageTag(BaseModel): + comment = CharField(null=True) + name = CharField(null=True, unique=True) + + class Meta: + table_name = 'vm_storage_tag' + +class VmTag2NetworkStorage(BaseModel): + storage = ForeignKeyField(column_name='storage', field='id', model=VmNetworkStorage, null=True) + tag = IntegerField(index=True, null=True) + + class Meta: + table_name = 'vm_tag2network_storage' + +class VmTag2Storage(BaseModel): + storage = ForeignKeyField(column_name='storage', field='id', model=VmStorage, null=True) + tag = ForeignKeyField(column_name='tag', field='id', model=VmStorageTag, null=True) + + class Meta: + table_name = 'vm_tag2storage' + +class VmUserLimitsAccount(BaseModel): + account = ForeignKeyField(column_name='account', field='id', model=VmAccount, null=True, unique=True) + cpu_number = IntegerField(null=True) + cpu_number_total = IntegerField(null=True) + hdd_mib = IntegerField(null=True) + hdd_mib_total = IntegerField(null=True) + host_count = IntegerField(null=True) + image_count = IntegerField(null=True) + image_count_total = IntegerField(null=True) + ipv4_number = IntegerField(null=True) + ipv4_number_total = IntegerField(null=True) + ram_mib = IntegerField(null=True) + ram_mib_total = IntegerField(null=True) + vxlan_count_total = IntegerField(null=True) + + class Meta: + table_name = 'vm_user_limits_account' + +class VmUserLimitsRole(BaseModel): + cpu_number = IntegerField(null=True) + cpu_number_total = IntegerField(null=True) + hdd_mib = IntegerField(null=True) + hdd_mib_total = IntegerField(null=True) + host_count = IntegerField(null=True) + image_count = IntegerField(null=True) + image_count_total = IntegerField(null=True) + ipv4_number = IntegerField(null=True) + ipv4_number_total = IntegerField(null=True) + ram_mib = IntegerField(null=True) + ram_mib_total = IntegerField(null=True) + role = CharField(null=True, unique=True) + vxlan_count_total = IntegerField(null=True) + + class Meta: + table_name = 'vm_user_limits_role' + +class VmVirtPool(BaseModel): + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster, null=True) + name = CharField() + params = UnknownField(null=True) # json + storage = ForeignKeyField(column_name='storage', field='id', model=VmStorage, null=True) + + class Meta: + table_name = 'vm_virt_pool' + +class VmVirtPool2Node(BaseModel): + node = ForeignKeyField(column_name='node', field='id', model=VmNode, null=True) + virt_pool = ForeignKeyField(column_name='virt_pool', field='id', model=VmVirtPool, null=True) + + class Meta: + table_name = 'vm_virt_pool2node' + indexes = ( + (('virt_pool', 'node'), True), + ) + +class VmVxlan2Cluster(BaseModel): + cluster = ForeignKeyField(column_name='cluster', field='id', model=VmCluster) + vxlan = ForeignKeyField(column_name='vxlan', field='id', model=VmVxlan) + + class Meta: + table_name = 'vm_vxlan2cluster' + indexes = ( + (('vxlan', 'cluster'), True), + ) + +class Vmnode(BaseModel): + ip_addr = CharField() + name = CharField() + + class Meta: + table_name = 'vmnode' + diff --git a/poetry.lock b/poetry.lock index c582194..3b0e2da 100644 --- a/poetry.lock +++ b/poetry.lock @@ -11,6 +11,70 @@ files = [ {file = "certifi-2024.2.2.tar.gz", hash = "sha256:0569859f95fc761b18b45ef421b1290a0f65f147e92a1e5eb3e635f9a5e4e66f"}, ] +[[package]] +name = "cffi" +version = "1.16.0" +description = "Foreign Function Interface for Python calling C code." +optional = false +python-versions = ">=3.8" +files = [ + {file = "cffi-1.16.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088"}, + {file = "cffi-1.16.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7"}, + {file = "cffi-1.16.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743"}, + {file = "cffi-1.16.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d"}, + {file = "cffi-1.16.0-cp310-cp310-win32.whl", hash = "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a"}, + {file = "cffi-1.16.0-cp310-cp310-win_amd64.whl", hash = "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404"}, + {file = "cffi-1.16.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56"}, + {file = "cffi-1.16.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc"}, + {file = "cffi-1.16.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb"}, + {file = "cffi-1.16.0-cp311-cp311-win32.whl", hash = "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab"}, + {file = "cffi-1.16.0-cp311-cp311-win_amd64.whl", hash = "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956"}, + {file = "cffi-1.16.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6"}, + {file = "cffi-1.16.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969"}, + {file = "cffi-1.16.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520"}, + {file = "cffi-1.16.0-cp312-cp312-win32.whl", hash = "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b"}, + {file = "cffi-1.16.0-cp312-cp312-win_amd64.whl", hash = "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235"}, + {file = "cffi-1.16.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b"}, + {file = "cffi-1.16.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324"}, + {file = "cffi-1.16.0-cp38-cp38-win32.whl", hash = "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a"}, + {file = "cffi-1.16.0-cp38-cp38-win_amd64.whl", hash = "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed"}, + {file = "cffi-1.16.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4"}, + {file = "cffi-1.16.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000"}, + {file = "cffi-1.16.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe"}, + {file = "cffi-1.16.0-cp39-cp39-win32.whl", hash = "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4"}, + {file = "cffi-1.16.0-cp39-cp39-win_amd64.whl", hash = "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8"}, + {file = "cffi-1.16.0.tar.gz", hash = "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0"}, +] + +[package.dependencies] +pycparser = "*" + [[package]] name = "charset-normalizer" version = "3.3.2" @@ -135,6 +199,60 @@ files = [ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] +[[package]] +name = "cryptography" +version = "42.0.2" +description = "cryptography is a package which provides cryptographic recipes and primitives to Python developers." +optional = false +python-versions = ">=3.7" +files = [ + {file = "cryptography-42.0.2-cp37-abi3-macosx_10_12_universal2.whl", hash = "sha256:701171f825dcab90969596ce2af253143b93b08f1a716d4b2a9d2db5084ef7be"}, + {file = "cryptography-42.0.2-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:61321672b3ac7aade25c40449ccedbc6db72c7f5f0fdf34def5e2f8b51ca530d"}, + {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea2c3ffb662fec8bbbfce5602e2c159ff097a4631d96235fcf0fb00e59e3ece4"}, + {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b15c678f27d66d247132cbf13df2f75255627bcc9b6a570f7d2fd08e8c081d2"}, + {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:8e88bb9eafbf6a4014d55fb222e7360eef53e613215085e65a13290577394529"}, + {file = "cryptography-42.0.2-cp37-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:a047682d324ba56e61b7ea7c7299d51e61fd3bca7dad2ccc39b72bd0118d60a1"}, + {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:36d4b7c4be6411f58f60d9ce555a73df8406d484ba12a63549c88bd64f7967f1"}, + {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:a00aee5d1b6c20620161984f8ab2ab69134466c51f58c052c11b076715e72929"}, + {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b97fe7d7991c25e6a31e5d5e795986b18fbbb3107b873d5f3ae6dc9a103278e9"}, + {file = "cryptography-42.0.2-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:5fa82a26f92871eca593b53359c12ad7949772462f887c35edaf36f87953c0e2"}, + {file = "cryptography-42.0.2-cp37-abi3-win32.whl", hash = "sha256:4b063d3413f853e056161eb0c7724822a9740ad3caa24b8424d776cebf98e7ee"}, + {file = "cryptography-42.0.2-cp37-abi3-win_amd64.whl", hash = "sha256:841ec8af7a8491ac76ec5a9522226e287187a3107e12b7d686ad354bb78facee"}, + {file = "cryptography-42.0.2-cp39-abi3-macosx_10_12_universal2.whl", hash = "sha256:55d1580e2d7e17f45d19d3b12098e352f3a37fe86d380bf45846ef257054b242"}, + {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:28cb2c41f131a5758d6ba6a0504150d644054fd9f3203a1e8e8d7ac3aea7f73a"}, + {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9097a208875fc7bbeb1286d0125d90bdfed961f61f214d3f5be62cd4ed8a446"}, + {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:44c95c0e96b3cb628e8452ec060413a49002a247b2b9938989e23a2c8291fc90"}, + {file = "cryptography-42.0.2-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2f9f14185962e6a04ab32d1abe34eae8a9001569ee4edb64d2304bf0d65c53f3"}, + {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_1_aarch64.whl", hash = "sha256:09a77e5b2e8ca732a19a90c5bca2d124621a1edb5438c5daa2d2738bfeb02589"}, + {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_1_x86_64.whl", hash = "sha256:ad28cff53f60d99a928dfcf1e861e0b2ceb2bc1f08a074fdd601b314e1cc9e0a"}, + {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:130c0f77022b2b9c99d8cebcdd834d81705f61c68e91ddd614ce74c657f8b3ea"}, + {file = "cryptography-42.0.2-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:fa3dec4ba8fb6e662770b74f62f1a0c7d4e37e25b58b2bf2c1be4c95372b4a33"}, + {file = "cryptography-42.0.2-cp39-abi3-win32.whl", hash = "sha256:3dbd37e14ce795b4af61b89b037d4bc157f2cb23e676fa16932185a04dfbf635"}, + {file = "cryptography-42.0.2-cp39-abi3-win_amd64.whl", hash = "sha256:8a06641fb07d4e8f6c7dda4fc3f8871d327803ab6542e33831c7ccfdcb4d0ad6"}, + {file = "cryptography-42.0.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:087887e55e0b9c8724cf05361357875adb5c20dec27e5816b653492980d20380"}, + {file = "cryptography-42.0.2-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:a7ef8dd0bf2e1d0a27042b231a3baac6883cdd5557036f5e8df7139255feaac6"}, + {file = "cryptography-42.0.2-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:4383b47f45b14459cab66048d384614019965ba6c1a1a141f11b5a551cace1b2"}, + {file = "cryptography-42.0.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:fbeb725c9dc799a574518109336acccaf1303c30d45c075c665c0793c2f79a7f"}, + {file = "cryptography-42.0.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:320948ab49883557a256eab46149df79435a22d2fefd6a66fe6946f1b9d9d008"}, + {file = "cryptography-42.0.2-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:5ef9bc3d046ce83c4bbf4c25e1e0547b9c441c01d30922d812e887dc5f125c12"}, + {file = "cryptography-42.0.2-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:52ed9ebf8ac602385126c9a2fe951db36f2cb0c2538d22971487f89d0de4065a"}, + {file = "cryptography-42.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:141e2aa5ba100d3788c0ad7919b288f89d1fe015878b9659b307c9ef867d3a65"}, + {file = "cryptography-42.0.2.tar.gz", hash = "sha256:e0ec52ba3c7f1b7d813cd52649a5b3ef1fc0d433219dc8c93827c57eab6cf888"}, +] + +[package.dependencies] +cffi = {version = ">=1.12", markers = "platform_python_implementation != \"PyPy\""} + +[package.extras] +docs = ["sphinx (>=5.3.0)", "sphinx-rtd-theme (>=1.1.1)"] +docstest = ["pyenchant (>=1.6.11)", "readme-renderer", "sphinxcontrib-spelling (>=4.0.1)"] +nox = ["nox"] +pep8test = ["check-sdist", "click", "mypy", "ruff"] +sdist = ["build"] +ssh = ["bcrypt (>=3.1.5)"] +test = ["certifi", "pretend", "pytest (>=6.2.0)", "pytest-benchmark", "pytest-cov", "pytest-xdist"] +test-randomorder = ["pytest-randomly"] + [[package]] name = "environs" version = "10.3.0" @@ -246,6 +364,17 @@ files = [ {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"}, ] +[[package]] +name = "pycparser" +version = "2.21" +description = "C parser in Python" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" +files = [ + {file = "pycparser-2.21-py2.py3-none-any.whl", hash = "sha256:8ee45429555515e1f6b185e78100aea234072576aa43ab53aefcae078162fca9"}, + {file = "pycparser-2.21.tar.gz", hash = "sha256:e644fdec12f7872f86c58ff790da456218b10f863970249516d60a5eaca77206"}, +] + [[package]] name = "pyflakes" version = "3.2.0" @@ -257,6 +386,24 @@ files = [ {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"}, ] +[[package]] +name = "pymysql" +version = "1.1.0" +description = "Pure Python MySQL Driver" +optional = false +python-versions = ">=3.7" +files = [ + {file = "PyMySQL-1.1.0-py3-none-any.whl", hash = "sha256:8969ec6d763c856f7073c4c64662882675702efcb114b4bcbb955aea3a069fa7"}, + {file = "PyMySQL-1.1.0.tar.gz", hash = "sha256:4f13a7df8bf36a51e81dd9f3605fede45a4878fe02f9236349fd82a3f0612f96"}, +] + +[package.dependencies] +cryptography = {version = "*", optional = true, markers = "extra == \"rsa\""} + +[package.extras] +ed25519 = ["PyNaCl (>=1.4.0)"] +rsa = ["cryptography"] + [[package]] name = "python-dotenv" version = "1.0.1" @@ -312,4 +459,4 @@ zstd = ["zstandard (>=0.18.0)"] [metadata] lock-version = "2.0" python-versions = "^3.11" -content-hash = "f031f9e86074966762fb83b3386f11c109c7a17ea31937dd03f66701676b632e" +content-hash = "f2862a3776d17b9796c16dd2e729452428b7eee8c3be248c9e8dd9ff9a6926f8" diff --git a/pyproject.toml b/pyproject.toml index c218ab6..3519c13 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,6 +12,7 @@ peewee = "^3.17.0" click = "^8.1.7" requests = "^2.31.0" environs = "^10.3.0" +pymysql = {extras = ["rsa"], version = "^1.1.0"} [tool.poetry.group.dev.dependencies] flake8 = "^7.0.0"