Apply black formatter to dcorch/db

This commit applies the Black format to the `dcorch/db`
files to ensure that it adheres to the Black code style guidelines.

Test Plan:
PASS: Success in stx-distcloud-tox-black

Story: 2011149
Task: 50445

Change-Id: I2560e5947fd1561e6b97b31dc2e735690813b340
Signed-off-by: Hugo Brito <hugo.brito@windriver.com>
This commit is contained in:
Hugo Brito
2024-06-26 16:12:00 -03:00
committed by Hugo Nicodemos
parent fb82532bbf
commit 51bee5a605
15 changed files with 795 additions and 718 deletions

View File

@@ -28,7 +28,7 @@ from oslo_db import api
CONF = cfg.CONF
_BACKEND_MAPPING = {'sqlalchemy': 'dcorch.db.sqlalchemy.api'}
_BACKEND_MAPPING = {"sqlalchemy": "dcorch.db.sqlalchemy.api"}
IMPL = api.DBAPI.from_config(CONF, backend_mapping=_BACKEND_MAPPING)
@@ -116,10 +116,10 @@ def db_version(engine):
return IMPL.db_version(engine)
def service_create(context, service_id, host=None, binary=None,
topic=None):
return IMPL.service_create(context, service_id=service_id, host=host,
binary=binary, topic=topic)
def service_create(context, service_id, host=None, binary=None, topic=None):
return IMPL.service_create(
context, service_id=service_id, host=host, binary=binary, topic=topic
)
def service_update(context, service_id, values=None):
@@ -142,51 +142,60 @@ def subcloud_get(context, region_id):
return IMPL.subcloud_get(context, region_id)
def subcloud_get_all(context, region_name=None,
management_state=None,
availability_status=None,
initial_sync_state=None):
return IMPL.subcloud_get_all(context, region_name=region_name,
management_state=management_state,
availability_status=availability_status,
initial_sync_state=initial_sync_state)
def subcloud_capabilities_get_all(context, region_name=None,
management_state=None,
availability_status=None,
initial_sync_state=None):
return IMPL.subcloud_capabilities_get_all(
context, region_name=region_name,
def subcloud_get_all(
context,
region_name=None,
management_state=None,
availability_status=None,
initial_sync_state=None,
):
return IMPL.subcloud_get_all(
context,
region_name=region_name,
management_state=management_state,
availability_status=availability_status,
initial_sync_state=initial_sync_state)
initial_sync_state=initial_sync_state,
)
def subcloud_sync_update_all_to_in_progress(context,
management_state,
availability_status,
initial_sync_state,
sync_requests):
def subcloud_capabilities_get_all(
context,
region_name=None,
management_state=None,
availability_status=None,
initial_sync_state=None,
):
return IMPL.subcloud_capabilities_get_all(
context,
region_name=region_name,
management_state=management_state,
availability_status=availability_status,
initial_sync_state=initial_sync_state,
)
def subcloud_sync_update_all_to_in_progress(
context, management_state, availability_status, initial_sync_state, sync_requests
):
return IMPL.subcloud_sync_update_all_to_in_progress(
context,
management_state=management_state,
availability_status=availability_status,
initial_sync_state=initial_sync_state,
sync_requests=sync_requests)
sync_requests=sync_requests,
)
def subcloud_audit_update_all_to_in_progress(context,
management_state,
availability_status,
initial_sync_state,
audit_interval):
def subcloud_audit_update_all_to_in_progress(
context, management_state, availability_status, initial_sync_state, audit_interval
):
return IMPL.subcloud_audit_update_all_to_in_progress(
context,
management_state=management_state,
availability_status=availability_status,
initial_sync_state=initial_sync_state,
audit_interval=audit_interval)
audit_interval=audit_interval,
)
def subcloud_create(context, region_name, values):
@@ -201,21 +210,24 @@ def subcloud_delete(context, region_name):
return IMPL.subcloud_delete(context, region_name)
def subcloud_update_initial_state(context, subcloud_name,
pre_initial_sync_state, initial_sync_state):
def subcloud_update_initial_state(
context, subcloud_name, pre_initial_sync_state, initial_sync_state
):
return IMPL.subcloud_update_initial_state(
context, subcloud_name, pre_initial_sync_state, initial_sync_state)
context, subcloud_name, pre_initial_sync_state, initial_sync_state
)
def subcloud_update_all_initial_state(context, pre_initial_sync_state,
initial_sync_state):
def subcloud_update_all_initial_state(
context, pre_initial_sync_state, initial_sync_state
):
return IMPL.subcloud_update_all_initial_state(
context, pre_initial_sync_state, initial_sync_state)
context, pre_initial_sync_state, initial_sync_state
)
def resource_get_by_type_and_master_id(context, resource_type, master_id):
return IMPL.resource_get_by_type_and_master_id(
context, resource_type, master_id)
return IMPL.resource_get_by_type_and_master_id(context, resource_type, master_id)
def resource_get_by_id(context, id):
@@ -254,10 +266,10 @@ def subcloud_resources_get_by_resource(context, resource_id):
return IMPL.subcloud_resources_get_by_resource(context, resource_id)
def subcloud_resource_get_by_resource_and_subcloud(
context, resource_id, subcloud_id):
def subcloud_resource_get_by_resource_and_subcloud(context, resource_id, subcloud_id):
return IMPL.subcloud_resource_get_by_resource_and_subcloud(
context, resource_id, subcloud_id)
context, resource_id, subcloud_id
)
def subcloud_resources_get_all(context):
@@ -265,13 +277,11 @@ def subcloud_resources_get_all(context):
def subcloud_resource_create(context, subcloud_id, resource_id, values):
return IMPL.subcloud_resource_create(context,
subcloud_id, resource_id, values)
return IMPL.subcloud_resource_create(context, subcloud_id, resource_id, values)
def subcloud_resource_update(context, subcloud_resource_id, values):
return IMPL.subcloud_resource_update(context,
subcloud_resource_id, values)
return IMPL.subcloud_resource_update(context, subcloud_resource_id, values)
def subcloud_resource_delete(context, subcloud_resource_id):
@@ -286,10 +296,10 @@ def orch_job_get_all(context, resource_id=None):
return IMPL.orch_job_get_all(context, resource_id=resource_id)
def orch_job_create(context, resource_id, endpoint_type,
operation_type, values):
return IMPL.orch_job_create(context, resource_id, endpoint_type,
operation_type, values)
def orch_job_create(context, resource_id, endpoint_type, operation_type, values):
return IMPL.orch_job_create(
context, resource_id, endpoint_type, operation_type, values
)
def orch_job_update(context, orch_job_id, values):
@@ -312,11 +322,9 @@ def orch_request_get_all(context, orch_job_id=None):
return IMPL.orch_request_get_all(context, orch_job_id=orch_job_id)
def orch_request_get_by_attrs(context,
endpoint_type,
resource_type=None,
target_region_name=None,
states=None):
def orch_request_get_by_attrs(
context, endpoint_type, resource_type=None, target_region_name=None, states=None
):
"""Query OrchRequests by attributes.
:param context: authorization context
@@ -331,12 +339,12 @@ def orch_request_get_by_attrs(context,
endpoint_type,
resource_type=resource_type,
target_region_name=target_region_name,
states=states)
states=states,
)
def orch_request_create(context, orch_job_id, target_region_name, values):
return IMPL.orch_request_create(context, orch_job_id,
target_region_name, values)
return IMPL.orch_request_create(context, orch_job_id, target_region_name, values)
def orch_request_create_bulk(context, orch_requests):
@@ -356,8 +364,7 @@ def orch_request_delete_by_subcloud(context, region_name):
def orch_request_delete_previous_failed_requests(context, delete_timestamp):
return IMPL.orch_request_delete_previous_failed_requests(
context, delete_timestamp)
return IMPL.orch_request_delete_previous_failed_requests(context, delete_timestamp)
# Periodic cleanup
@@ -370,18 +377,17 @@ def subcloud_sync_get(context, subcloud_name, endpoint_type):
def subcloud_sync_update(context, subcloud_name, endpoint_type, values):
return IMPL.subcloud_sync_update(context, subcloud_name, endpoint_type,
values)
return IMPL.subcloud_sync_update(context, subcloud_name, endpoint_type, values)
def subcloud_sync_update_all(context, management_state, endpoint_type, values):
return IMPL.subcloud_sync_update_all(context, management_state, endpoint_type,
values)
return IMPL.subcloud_sync_update_all(
context, management_state, endpoint_type, values
)
def subcloud_sync_create(context, subcloud_name, endpoint_type, values):
return IMPL.subcloud_sync_create(context, subcloud_name, endpoint_type,
values)
return IMPL.subcloud_sync_create(context, subcloud_name, endpoint_type, values)
def subcloud_sync_delete(context, subcloud_name, endpoint_type):

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +1,10 @@
#!/usr/bin/env python
# Copyright (c) 2024 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
from migrate.versioning.shell import main
if __name__ == '__main__':
main(debug='False')
if __name__ == "__main__":
main(debug="False")

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2017-2018, 2024 Wind River Inc.
# Copyright (c) 2017-2018, 2024 Wind River Inc.
# All Rights Reserved.
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
@@ -32,9 +32,9 @@ from oslo_config import cfg
import sqlalchemy
QUOTA_CLASS_NAME_DEFAULT = 'default'
QUOTA_CLASS_NAME_DEFAULT = "default"
CONF = cfg.CONF
CONF.import_group('dc_orch_global_limit', 'dcorch.common.config')
CONF.import_group("dc_orch_global_limit", "dcorch.common.config")
def upgrade(migrate_engine):
@@ -42,55 +42,55 @@ def upgrade(migrate_engine):
meta.bind = migrate_engine
quotas = sqlalchemy.Table(
'quotas', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('project_id', sqlalchemy.String(36)),
sqlalchemy.Column('resource', sqlalchemy.String(255), nullable=False),
sqlalchemy.Column('hard_limit', sqlalchemy.Integer, nullable=False),
sqlalchemy.Column('capabilities', sqlalchemy.Text),
sqlalchemy.Column('created_at', sqlalchemy.DateTime),
sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted', sqlalchemy.Integer),
mysql_engine='InnoDB',
mysql_charset='utf8'
"quotas",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column("project_id", sqlalchemy.String(36)),
sqlalchemy.Column("resource", sqlalchemy.String(255), nullable=False),
sqlalchemy.Column("hard_limit", sqlalchemy.Integer, nullable=False),
sqlalchemy.Column("capabilities", sqlalchemy.Text),
sqlalchemy.Column("created_at", sqlalchemy.DateTime),
sqlalchemy.Column("updated_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted", sqlalchemy.Integer),
mysql_engine="InnoDB",
mysql_charset="utf8",
)
quota_classes = sqlalchemy.Table(
'quota_classes', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('class_name', sqlalchemy.String(length=255),
index=True),
sqlalchemy.Column('capabilities', sqlalchemy.Text),
sqlalchemy.Column('created_at', sqlalchemy.DateTime),
sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted', sqlalchemy.Integer),
sqlalchemy.Column('resource', sqlalchemy.String(length=255)),
sqlalchemy.Column('hard_limit', sqlalchemy.Integer,
nullable=True),
mysql_engine='InnoDB',
mysql_charset='utf8'
"quota_classes",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column("class_name", sqlalchemy.String(length=255), index=True),
sqlalchemy.Column("capabilities", sqlalchemy.Text),
sqlalchemy.Column("created_at", sqlalchemy.DateTime),
sqlalchemy.Column("updated_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted", sqlalchemy.Integer),
sqlalchemy.Column("resource", sqlalchemy.String(length=255)),
sqlalchemy.Column("hard_limit", sqlalchemy.Integer, nullable=True),
mysql_engine="InnoDB",
mysql_charset="utf8",
)
service = sqlalchemy.Table(
'service', meta,
sqlalchemy.Column('id', sqlalchemy.String(36),
primary_key=True, nullable=False),
sqlalchemy.Column('host', sqlalchemy.String(length=255)),
sqlalchemy.Column('binary', sqlalchemy.String(length=255)),
sqlalchemy.Column('topic', sqlalchemy.String(length=255)),
sqlalchemy.Column('disabled', sqlalchemy.Boolean, default=False),
sqlalchemy.Column('disabled_reason', sqlalchemy.String(length=255)),
sqlalchemy.Column('capabilities', sqlalchemy.Text),
sqlalchemy.Column('created_at', sqlalchemy.DateTime),
sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted', sqlalchemy.Integer),
mysql_engine='InnoDB',
mysql_charset='utf8'
"service",
meta,
sqlalchemy.Column(
"id", sqlalchemy.String(36), primary_key=True, nullable=False
),
sqlalchemy.Column("host", sqlalchemy.String(length=255)),
sqlalchemy.Column("binary", sqlalchemy.String(length=255)),
sqlalchemy.Column("topic", sqlalchemy.String(length=255)),
sqlalchemy.Column("disabled", sqlalchemy.Boolean, default=False),
sqlalchemy.Column("disabled_reason", sqlalchemy.String(length=255)),
sqlalchemy.Column("capabilities", sqlalchemy.Text),
sqlalchemy.Column("created_at", sqlalchemy.DateTime),
sqlalchemy.Column("updated_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted", sqlalchemy.Integer),
mysql_engine="InnoDB",
mysql_charset="utf8",
)
tables = (
@@ -108,25 +108,33 @@ def upgrade(migrate_engine):
meta.drop_all(tables=tables[:index])
raise
# pylint: disable-next=no-value-for-parameter
rows = quota_classes.count().where(
quota_classes.c.class_name == 'default').execute().scalar()
rows = (
quota_classes.count() # pylint: disable=no-value-for-parameter
.where(quota_classes.c.class_name == "default")
.execute()
.scalar()
)
# Do not add entries if there are already 'default' entries. We don't
# want to write over something the user added.
# Do not add entries if there are already 'default' entries. We don't want to write
# over something the user added.
if not rows:
created_at = datetime.datetime.now()
# Set default quota limits
qci = quota_classes.insert() # pylint: disable=E1120
qci = quota_classes.insert() # pylint: disable=no-value-for-parameter
for resource, default in CONF.dc_orch_global_limit.items():
qci.execute({'created_at': created_at,
'class_name': QUOTA_CLASS_NAME_DEFAULT,
'resource': resource[6:],
'hard_limit': default,
'deleted': 0})
qci.execute(
{
"created_at": created_at,
"class_name": QUOTA_CLASS_NAME_DEFAULT,
"resource": resource[6:],
"hard_limit": default,
"deleted": 0,
}
)
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade not supported - '
'would drop all tables')
raise NotImplementedError(
"Database downgrade not supported - would drop all tables"
)

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2017-2018 Wind River Inc.
# Copyright (c) 2017-2018, 2024 Wind River Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -21,181 +21,165 @@ def upgrade(migrate_engine):
meta.bind = migrate_engine
subcloud = sqlalchemy.Table(
'subcloud', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('uuid', sqlalchemy.String(36), unique=True),
sqlalchemy.Column('region_name', sqlalchemy.String(255), unique=True),
sqlalchemy.Column('software_version', sqlalchemy.String(255)),
sqlalchemy.Column('management_state', sqlalchemy.String(64)),
sqlalchemy.Column('availability_status', sqlalchemy.String(64),
default="offline"),
sqlalchemy.Column('capabilities', sqlalchemy.Text),
sqlalchemy.Column('created_at', sqlalchemy.DateTime),
sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted', sqlalchemy.Integer),
sqlalchemy.Index('subcloud_region_name_idx', 'region_name'),
mysql_engine='InnoDB',
mysql_charset='utf8'
"subcloud",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column("uuid", sqlalchemy.String(36), unique=True),
sqlalchemy.Column("region_name", sqlalchemy.String(255), unique=True),
sqlalchemy.Column("software_version", sqlalchemy.String(255)),
sqlalchemy.Column("management_state", sqlalchemy.String(64)),
sqlalchemy.Column(
"availability_status", sqlalchemy.String(64), default="offline"
),
sqlalchemy.Column("capabilities", sqlalchemy.Text),
sqlalchemy.Column("created_at", sqlalchemy.DateTime),
sqlalchemy.Column("updated_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted", sqlalchemy.Integer),
sqlalchemy.Index("subcloud_region_name_idx", "region_name"),
mysql_engine="InnoDB",
mysql_charset="utf8",
)
subcloud_alarms = sqlalchemy.Table(
'subcloud_alarms', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('uuid', sqlalchemy.String(36), unique=True),
sqlalchemy.Column('region_name', sqlalchemy.String(255), unique=True),
sqlalchemy.Column('critical_alarms', sqlalchemy.Integer),
sqlalchemy.Column('major_alarms', sqlalchemy.Integer),
sqlalchemy.Column('minor_alarms', sqlalchemy.Integer),
sqlalchemy.Column('warnings', sqlalchemy.Integer),
sqlalchemy.Column('cloud_status', sqlalchemy.String(64)),
sqlalchemy.Column('capabilities', sqlalchemy.Text),
sqlalchemy.Column('created_at', sqlalchemy.DateTime),
sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted', sqlalchemy.Integer),
sqlalchemy.Index('subcloud_alarm_region_name_idx', 'region_name'),
mysql_engine='InnoDB',
mysql_charset='utf8'
"subcloud_alarms",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column("uuid", sqlalchemy.String(36), unique=True),
sqlalchemy.Column("region_name", sqlalchemy.String(255), unique=True),
sqlalchemy.Column("critical_alarms", sqlalchemy.Integer),
sqlalchemy.Column("major_alarms", sqlalchemy.Integer),
sqlalchemy.Column("minor_alarms", sqlalchemy.Integer),
sqlalchemy.Column("warnings", sqlalchemy.Integer),
sqlalchemy.Column("cloud_status", sqlalchemy.String(64)),
sqlalchemy.Column("capabilities", sqlalchemy.Text),
sqlalchemy.Column("created_at", sqlalchemy.DateTime),
sqlalchemy.Column("updated_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted", sqlalchemy.Integer),
sqlalchemy.Index("subcloud_alarm_region_name_idx", "region_name"),
mysql_engine="InnoDB",
mysql_charset="utf8",
)
resource = sqlalchemy.Table(
'resource', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('uuid', sqlalchemy.String(36), unique=True),
sqlalchemy.Column('resource_type', sqlalchemy.String(128)),
sqlalchemy.Column('master_id', sqlalchemy.String(255)),
sqlalchemy.Column('created_at', sqlalchemy.DateTime),
sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted', sqlalchemy.Integer),
sqlalchemy.Column('capabilities', sqlalchemy.Text),
sqlalchemy.Index('resource_resource_type_idx', 'resource_type'),
sqlalchemy.Index('resource_master_id_idx', 'master_id'),
"resource",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column("uuid", sqlalchemy.String(36), unique=True),
sqlalchemy.Column("resource_type", sqlalchemy.String(128)),
sqlalchemy.Column("master_id", sqlalchemy.String(255)),
sqlalchemy.Column("created_at", sqlalchemy.DateTime),
sqlalchemy.Column("updated_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted", sqlalchemy.Integer),
sqlalchemy.Column("capabilities", sqlalchemy.Text),
sqlalchemy.Index("resource_resource_type_idx", "resource_type"),
sqlalchemy.Index("resource_master_id_idx", "master_id"),
sqlalchemy.UniqueConstraint(
'resource_type', 'master_id', 'deleted',
name='uniq_resource0resource_type0master_id0deleted'),
mysql_engine='InnoDB',
mysql_charset='utf8'
"resource_type",
"master_id",
"deleted",
name="uniq_resource0resource_type0master_id0deleted",
),
mysql_engine="InnoDB",
mysql_charset="utf8",
)
subcloud_resource = sqlalchemy.Table(
'subcloud_resource', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('uuid', sqlalchemy.String(36), unique=True),
sqlalchemy.Column('subcloud_resource_id', sqlalchemy.String(255)),
"subcloud_resource",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column("uuid", sqlalchemy.String(36), unique=True),
sqlalchemy.Column("subcloud_resource_id", sqlalchemy.String(255)),
# Could have also gotten this from subcloud.region_name
sqlalchemy.Column('subcloud_name', sqlalchemy.String(255)),
sqlalchemy.Column("subcloud_name", sqlalchemy.String(255)),
# Is this resource managed or unmanaged
sqlalchemy.Column('shared_config_state', sqlalchemy.String(64),
default="managed"),
sqlalchemy.Column('capabilities', sqlalchemy.Text),
sqlalchemy.Column('resource_id', sqlalchemy.Integer,
sqlalchemy.ForeignKey('resource.id',
ondelete='CASCADE')),
sqlalchemy.Column(
"shared_config_state", sqlalchemy.String(64), default="managed"
),
sqlalchemy.Column("capabilities", sqlalchemy.Text),
sqlalchemy.Column(
"resource_id",
sqlalchemy.Integer,
sqlalchemy.ForeignKey("resource.id", ondelete="CASCADE"),
),
# primary_key=True),
sqlalchemy.Column('subcloud_id', sqlalchemy.Integer,
sqlalchemy.ForeignKey('subcloud.id',
ondelete='CASCADE')),
sqlalchemy.Column(
"subcloud_id",
sqlalchemy.Integer,
sqlalchemy.ForeignKey("subcloud.id", ondelete="CASCADE"),
),
# primary_key=True),
sqlalchemy.Column('created_at', sqlalchemy.DateTime),
sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted', sqlalchemy.Integer),
sqlalchemy.Index('subcloud_resource_resource_id_idx', 'resource_id'),
sqlalchemy.Column("created_at", sqlalchemy.DateTime),
sqlalchemy.Column("updated_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted", sqlalchemy.Integer),
sqlalchemy.Index("subcloud_resource_resource_id_idx", "resource_id"),
sqlalchemy.UniqueConstraint(
'resource_id', 'subcloud_id',
name='uniq_subcloud_resource0resource_id0subcloud_id'),
mysql_engine='InnoDB',
mysql_charset='utf8'
"resource_id",
"subcloud_id",
name="uniq_subcloud_resource0resource_id0subcloud_id",
),
mysql_engine="InnoDB",
mysql_charset="utf8",
)
orch_job = sqlalchemy.Table(
'orch_job', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('uuid', sqlalchemy.String(36), unique=True),
sqlalchemy.Column('user_id', sqlalchemy.String(128)),
sqlalchemy.Column('project_id', sqlalchemy.String(128)),
"orch_job",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column("uuid", sqlalchemy.String(36), unique=True),
sqlalchemy.Column("user_id", sqlalchemy.String(128)),
sqlalchemy.Column("project_id", sqlalchemy.String(128)),
# filledin by x_orch_api
sqlalchemy.Column('endpoint_type', sqlalchemy.String(255),
nullable=False),
sqlalchemy.Column("endpoint_type", sqlalchemy.String(255), nullable=False),
# sqlalchemy.Column('resource_type', sqlalchemy.String(255),
# nullable=False),
sqlalchemy.Column('source_resource_id', sqlalchemy.String(255)),
sqlalchemy.Column("source_resource_id", sqlalchemy.String(255)),
# http type: e.g. post/put/patch/delete
sqlalchemy.Column('operation_type', sqlalchemy.String(255)),
sqlalchemy.Column('resource_id', sqlalchemy.Integer,
sqlalchemy.ForeignKey('resource.id')),
sqlalchemy.Column('resource_info', sqlalchemy.Text),
sqlalchemy.Column('capabilities', sqlalchemy.Text),
sqlalchemy.Column('created_at', sqlalchemy.DateTime),
sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted', sqlalchemy.Integer),
sqlalchemy.Index('orch_job_endpoint_type_idx', 'endpoint_type'),
sqlalchemy.Column("operation_type", sqlalchemy.String(255)),
sqlalchemy.Column(
"resource_id", sqlalchemy.Integer, sqlalchemy.ForeignKey("resource.id")
),
sqlalchemy.Column("resource_info", sqlalchemy.Text),
sqlalchemy.Column("capabilities", sqlalchemy.Text),
sqlalchemy.Column("created_at", sqlalchemy.DateTime),
sqlalchemy.Column("updated_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted", sqlalchemy.Integer),
sqlalchemy.Index("orch_job_endpoint_type_idx", "endpoint_type"),
# sqlalchemy.Index('orch_job_resource_type_idx', 'resource_type'),
mysql_engine='InnoDB',
mysql_charset='utf8'
mysql_engine="InnoDB",
mysql_charset="utf8",
)
orch_request = sqlalchemy.Table(
'orch_request', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('uuid', sqlalchemy.String(36), unique=True),
sqlalchemy.Column('state', sqlalchemy.String(128)),
sqlalchemy.Column('try_count', sqlalchemy.Integer, default=0),
sqlalchemy.Column('api_version', sqlalchemy.String(128)),
sqlalchemy.Column('target_region_name', sqlalchemy.String(255)),
sqlalchemy.Column('capabilities', sqlalchemy.Text),
sqlalchemy.Column('orch_job_id', sqlalchemy.Integer,
sqlalchemy.ForeignKey('orch_job.id')),
sqlalchemy.Column('created_at', sqlalchemy.DateTime),
sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted', sqlalchemy.Integer),
sqlalchemy.Index('orch_request_idx', 'state'),
"orch_request",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column("uuid", sqlalchemy.String(36), unique=True),
sqlalchemy.Column("state", sqlalchemy.String(128)),
sqlalchemy.Column("try_count", sqlalchemy.Integer, default=0),
sqlalchemy.Column("api_version", sqlalchemy.String(128)),
sqlalchemy.Column("target_region_name", sqlalchemy.String(255)),
sqlalchemy.Column("capabilities", sqlalchemy.Text),
sqlalchemy.Column(
"orch_job_id", sqlalchemy.Integer, sqlalchemy.ForeignKey("orch_job.id")
),
sqlalchemy.Column("created_at", sqlalchemy.DateTime),
sqlalchemy.Column("updated_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted", sqlalchemy.Integer),
sqlalchemy.Index("orch_request_idx", "state"),
sqlalchemy.UniqueConstraint(
'target_region_name', 'orch_job_id', 'deleted',
name='uniq_orchreq0target_region_name0orch_job_id0deleted'),
mysql_engine='InnoDB',
mysql_charset='utf8'
"target_region_name",
"orch_job_id",
"deleted",
name="uniq_orchreq0target_region_name0orch_job_id0deleted",
),
mysql_engine="InnoDB",
mysql_charset="utf8",
)
tables = (
@@ -204,7 +188,7 @@ def upgrade(migrate_engine):
resource,
subcloud_resource,
orch_job,
orch_request
orch_request,
)
for index, table in enumerate(tables):
@@ -218,5 +202,6 @@ def upgrade(migrate_engine):
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade not supported - '
'would drop all tables')
raise NotImplementedError(
"Database downgrade not supported - would drop all tables"
)

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2020 Wind River Inc.
# Copyright (c) 2020, 2024 Wind River Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -20,14 +20,15 @@ def upgrade(migrate_engine):
meta = sqlalchemy.MetaData()
meta.bind = migrate_engine
subcloud = sqlalchemy.Table('subcloud', meta, autoload=True)
subcloud = sqlalchemy.Table("subcloud", meta, autoload=True)
# Add the initial_sync_state attribute
subcloud.create_column(sqlalchemy.Column('initial_sync_state',
sqlalchemy.String(64),
default="none"))
subcloud.create_column(
sqlalchemy.Column("initial_sync_state", sqlalchemy.String(64), default="none")
)
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade not supported - '
'would drop all tables')
raise NotImplementedError(
"Database downgrade not supported - would drop all tables"
)

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2020-2021 Wind River Systems, Inc.
# Copyright (c) 2020-2021, 2024 Wind River Systems, Inc.
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
@@ -19,10 +19,11 @@ def upgrade(migrate_engine):
meta = sqlalchemy.MetaData()
meta.bind = migrate_engine
subcloud_alarms = sqlalchemy.Table('subcloud_alarms', meta, autoload=True)
subcloud_alarms = sqlalchemy.Table("subcloud_alarms", meta, autoload=True)
subcloud_alarms.drop()
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade not supported - '
'would drop all tables')
raise NotImplementedError(
"Database downgrade not supported - would drop all tables"
)

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2020 Wind River Inc.
# Copyright (c) 2020, 2024 Wind River Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -15,19 +15,20 @@
from sqlalchemy import MetaData, Table, Index
ORCH_JOB_ID_INDEX_NAME = 'orch_request_orch_job_id_idx'
UPDATED_AT_STATE_INDEX_NAME = 'orch_request_updated_at_state_idx'
DELETED_AT_INDEX_NAME = 'orch_request_deleted_at_idx'
ORCH_JOB_ID_INDEX_NAME = "orch_request_orch_job_id_idx"
UPDATED_AT_STATE_INDEX_NAME = "orch_request_updated_at_state_idx"
DELETED_AT_INDEX_NAME = "orch_request_deleted_at_idx"
def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
orch_request = Table('orch_request', meta, autoload=True)
orch_request = Table("orch_request", meta, autoload=True)
index = Index(UPDATED_AT_STATE_INDEX_NAME,
orch_request.c.updated_at, orch_request.c.state)
index = Index(
UPDATED_AT_STATE_INDEX_NAME, orch_request.c.updated_at, orch_request.c.state
)
index.create(migrate_engine)
index = Index(DELETED_AT_INDEX_NAME, orch_request.c.deleted_at)
@@ -38,5 +39,6 @@ def upgrade(migrate_engine):
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade not supported - '
'would drop all tables')
raise NotImplementedError(
"Database downgrade not supported - would drop all tables"
)

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2020 Wind River Inc.
# Copyright (c) 2020, 2024 Wind River Inc.
# All Rights Reserved.
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
@@ -33,25 +33,26 @@ def upgrade(migrate_engine):
meta.bind = migrate_engine
sync_lock = sqlalchemy.Table(
'sync_lock', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('subcloud_name', sqlalchemy.String(length=255),
nullable=False),
sqlalchemy.Column('endpoint_type', sqlalchemy.String(255)),
sqlalchemy.Column('engine_id', sqlalchemy.String(length=36),
nullable=False),
sqlalchemy.Column('action', sqlalchemy.String(64)),
sqlalchemy.Column('created_at', sqlalchemy.DateTime),
sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted', sqlalchemy.Integer),
"sync_lock",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column(
"subcloud_name", sqlalchemy.String(length=255), nullable=False
),
sqlalchemy.Column("endpoint_type", sqlalchemy.String(255)),
sqlalchemy.Column("engine_id", sqlalchemy.String(length=36), nullable=False),
sqlalchemy.Column("action", sqlalchemy.String(64)),
sqlalchemy.Column("created_at", sqlalchemy.DateTime),
sqlalchemy.Column("updated_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted", sqlalchemy.Integer),
sqlalchemy.UniqueConstraint(
'subcloud_name', 'endpoint_type', 'action',
name='uniq_sync_lock0subcloud_name0endpoint_type0action'),
mysql_engine='InnoDB',
mysql_charset='utf8'
"subcloud_name",
"endpoint_type",
"action",
name="uniq_sync_lock0subcloud_name0endpoint_type0action",
),
mysql_engine="InnoDB",
mysql_charset="utf8",
)
sync_lock.create()

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2020 Wind River Inc.
# Copyright (c) 2020, 2024 Wind River Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -21,40 +21,41 @@ def upgrade(migrate_engine):
meta = sqlalchemy.MetaData()
meta.bind = migrate_engine
sqlalchemy.Table('subcloud', meta, autoload=True)
sqlalchemy.Table("subcloud", meta, autoload=True)
subcloud_sync = sqlalchemy.Table(
'subcloud_sync', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('subcloud_id', sqlalchemy.Integer,
sqlalchemy.ForeignKey('subcloud.id',
ondelete='CASCADE')),
sqlalchemy.Column('subcloud_name', sqlalchemy.String(255)),
sqlalchemy.Column('endpoint_type', sqlalchemy.String(255),
default="none"),
sqlalchemy.Column('sync_request', sqlalchemy.String(64),
default="none"),
sqlalchemy.Column('sync_status_reported', sqlalchemy.String(64),
default="none"),
sqlalchemy.Column('sync_status_report_time', sqlalchemy.DateTime),
sqlalchemy.Column('audit_status', sqlalchemy.String(64),
default="none"),
sqlalchemy.Column('last_audit_time', sqlalchemy.DateTime),
sqlalchemy.Column('created_at', sqlalchemy.DateTime),
sqlalchemy.Column('updated_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted_at', sqlalchemy.DateTime),
sqlalchemy.Column('deleted', sqlalchemy.Integer),
sqlalchemy.Index('subcloud_sync_subcloud_name_endpoint_type_idx',
'subcloud_name',
'endpoint_type'),
"subcloud_sync",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column(
"subcloud_id",
sqlalchemy.Integer,
sqlalchemy.ForeignKey("subcloud.id", ondelete="CASCADE"),
),
sqlalchemy.Column("subcloud_name", sqlalchemy.String(255)),
sqlalchemy.Column("endpoint_type", sqlalchemy.String(255), default="none"),
sqlalchemy.Column("sync_request", sqlalchemy.String(64), default="none"),
sqlalchemy.Column(
"sync_status_reported", sqlalchemy.String(64), default="none"
),
sqlalchemy.Column("sync_status_report_time", sqlalchemy.DateTime),
sqlalchemy.Column("audit_status", sqlalchemy.String(64), default="none"),
sqlalchemy.Column("last_audit_time", sqlalchemy.DateTime),
sqlalchemy.Column("created_at", sqlalchemy.DateTime),
sqlalchemy.Column("updated_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted_at", sqlalchemy.DateTime),
sqlalchemy.Column("deleted", sqlalchemy.Integer),
sqlalchemy.Index(
"subcloud_sync_subcloud_name_endpoint_type_idx",
"subcloud_name",
"endpoint_type",
),
sqlalchemy.UniqueConstraint(
'subcloud_name', 'endpoint_type',
name='uniq_subcloud_sync0subcloud_name0endpoint_type'),
mysql_engine='InnoDB',
mysql_charset='utf8'
"subcloud_name",
"endpoint_type",
name="uniq_subcloud_sync0subcloud_name0endpoint_type",
),
mysql_engine="InnoDB",
mysql_charset="utf8",
)
subcloud_sync.create()

View File

@@ -11,9 +11,9 @@ def upgrade(migrate_engine):
meta = sqlalchemy.MetaData()
meta.bind = migrate_engine
sync_lock = sqlalchemy.Table('sync_lock', meta, autoload=True)
sync_lock = sqlalchemy.Table("sync_lock", meta, autoload=True)
sync_lock.drop()
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade not supported.')
raise NotImplementedError("Database downgrade not supported.")

View File

@@ -1,4 +1,5 @@
# Copyright (c) 2015 Ericsson AB.
# Copyright (c) 2024 Wind River Systems, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -22,19 +23,15 @@ INIT_VERSION = 0
def db_sync(engine, version=None):
path = os.path.join(os.path.abspath(os.path.dirname(__file__)),
'migrate_repo')
return oslo_migration.db_sync(engine, path, version,
init_version=INIT_VERSION)
path = os.path.join(os.path.abspath(os.path.dirname(__file__)), "migrate_repo")
return oslo_migration.db_sync(engine, path, version, init_version=INIT_VERSION)
def db_version(engine):
path = os.path.join(os.path.abspath(os.path.dirname(__file__)),
'migrate_repo')
path = os.path.join(os.path.abspath(os.path.dirname(__file__)), "migrate_repo")
return oslo_migration.db_version(engine, path, INIT_VERSION)
def db_version_control(engine, version=None):
path = os.path.join(os.path.abspath(os.path.dirname(__file__)),
'migrate_repo')
path = os.path.join(os.path.abspath(os.path.dirname(__file__)), "migrate_repo")
return oslo_migration.db_version_control(engine, path, version)

View File

@@ -21,8 +21,7 @@ import json
from oslo_db.sqlalchemy import models
from sqlalchemy.orm import session as orm_session
from sqlalchemy import (Column, Integer, String, Boolean, Index, schema,
DateTime)
from sqlalchemy import Column, Integer, String, Boolean, Index, schema, DateTime
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import ForeignKey, UniqueConstraint
from sqlalchemy.types import TypeDecorator, VARCHAR
@@ -56,12 +55,10 @@ class JSONEncodedDict(TypeDecorator):
return value
class OrchestratorBase(models.ModelBase,
models.SoftDeleteMixin,
models.TimestampMixin):
class OrchestratorBase(models.ModelBase, models.SoftDeleteMixin, models.TimestampMixin):
"""Base class for Orchestrator Models."""
__table_args__ = {'mysql_engine': 'InnoDB'}
__table_args__ = {"mysql_engine": "InnoDB"}
def expire(self, session=None, attrs=None):
if not session:
@@ -99,12 +96,16 @@ class Quota(BASE, OrchestratorBase):
Null, then the resource is unlimited.
"""
__tablename__ = 'quotas'
__tablename__ = "quotas"
__table_args__ = (
schema.UniqueConstraint("project_id", "resource", "deleted",
name="uniq_quotas0project_id0resource0deleted"
),)
schema.UniqueConstraint(
"project_id",
"resource",
"deleted",
name="uniq_quotas0project_id0resource0deleted",
),
)
id = Column(Integer, primary_key=True)
@@ -139,11 +140,11 @@ class QuotaClass(BASE, OrchestratorBase):
class Service(BASE, OrchestratorBase):
""""Orchestrator service engine registry"""
"""Orchestrator service engine registry"""
__tablename__ = 'service'
__tablename__ = "service"
id = Column('id', String(36), primary_key=True, nullable=False)
id = Column("id", String(36), primary_key=True, nullable=False)
host = Column(String(255))
@@ -162,54 +163,59 @@ class Service(BASE, OrchestratorBase):
class Subcloud(BASE, OrchestratorBase):
"""Represents a Distributed Cloud subcloud"""
__tablename__ = 'subcloud'
__table_args__ = (
Index('subcloud_region_name_idx', 'region_name'),
)
__tablename__ = "subcloud"
__table_args__ = (Index("subcloud_region_name_idx", "region_name"),)
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
uuid = Column(String(36), unique=True)
region_name = Column('region_name', String(255), unique=True) # keystone
software_version = Column('software_version', String(255))
region_name = Column("region_name", String(255), unique=True) # keystone
software_version = Column("software_version", String(255))
# dc manager updates the management and availability
# default management_state is None; could be set to 'deleting'
management_state = Column('management_state', String(64))
availability_status = Column('availability_status', String(64),
default=dccommon_consts.AVAILABILITY_OFFLINE)
management_state = Column("management_state", String(64))
availability_status = Column(
"availability_status", String(64), default=dccommon_consts.AVAILABILITY_OFFLINE
)
capabilities = Column(JSONEncodedDict)
initial_sync_state = Column('initial_sync_state', String(64),
default=consts.INITIAL_SYNC_STATE_NONE)
management_ip = Column('management_ip', String(64))
initial_sync_state = Column(
"initial_sync_state", String(64), default=consts.INITIAL_SYNC_STATE_NONE
)
management_ip = Column("management_ip", String(64))
class Resource(BASE, OrchestratorBase):
"""Represents a Distributed Cloud Orchestrator Resource"""
__tablename__ = 'resource'
__tablename__ = "resource"
__table_args__ = (
Index('resource_resource_type_idx', 'resource_type'),
Index('resource_master_id_idx', 'master_id'),
Index("resource_resource_type_idx", "resource_type"),
Index("resource_master_id_idx", "master_id"),
UniqueConstraint(
'resource_type', 'master_id', 'deleted',
name='uniq_resource0resource_type0master_id0deleted'),
"resource_type",
"master_id",
"deleted",
name="uniq_resource0resource_type0master_id0deleted",
),
)
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
uuid = Column(String(36), unique=True)
capabilities = Column(JSONEncodedDict)
resource_type = Column(String(128)) # e.g. quota_x,flavor_extra_spec,dns..
master_id = Column(String(255)) # id/uuid of resource in central region
master_id = Column(String(255)) # id/uuid of resource in central region
class SubcloudResource(BASE, OrchestratorBase):
"""Represents a Distributed Cloud Orchestrator Subcloud Resource"""
__tablename__ = 'subcloud_resource'
__tablename__ = "subcloud_resource"
__table_args__ = (
Index('subcloud_resource_resource_id_idx', 'resource_id'),
Index("subcloud_resource_resource_id_idx", "resource_id"),
UniqueConstraint(
'resource_id', 'subcloud_id',
name='uniq_subcloud_resource0resource_id0subcloud_id'),
"resource_id",
"subcloud_id",
name="uniq_subcloud_resource0resource_id0subcloud_id",
),
)
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
@@ -218,18 +224,19 @@ class SubcloudResource(BASE, OrchestratorBase):
# Could get subcloud_name (or target_region) from subcloud.region_name
# subcloud_name = Column('subcloud_name', String(255))
# Is this resource managed or unmanaged by orchestrator for some subcloud
shared_config_state = Column('shared_config_state', String(255),
default="managed")
shared_config_state = Column("shared_config_state", String(255), default="managed")
capabilities = Column(JSONEncodedDict)
subcloud_resource_id = Column(String(255)) # usually uuid, sometimes id
# if either resource_id or subcloud_id is set as primary key, id does not
# autoincrement
resource_id = Column('resource_id', Integer,
ForeignKey('resource.id', ondelete='CASCADE'))
resource_id = Column(
"resource_id", Integer, ForeignKey("resource.id", ondelete="CASCADE")
)
subcloud_id = Column('subcloud_id', Integer,
ForeignKey('subcloud.id', ondelete='CASCADE'))
subcloud_id = Column(
"subcloud_id", Integer, ForeignKey("subcloud.id", ondelete="CASCADE")
)
# todo: we shouldn't allow more than one row to have the same
# resource_id/subcloud_id tuple
@@ -237,16 +244,14 @@ class SubcloudResource(BASE, OrchestratorBase):
class OrchJob(BASE, OrchestratorBase):
"""Orchestrator Job registry"""
__tablename__ = 'orch_job'
__table_args__ = (
Index('orch_job_endpoint_type_idx', 'endpoint_type'),
)
__tablename__ = "orch_job"
__table_args__ = (Index("orch_job_endpoint_type_idx", "endpoint_type"),)
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
uuid = Column(String(36), unique=True)
user_id = Column('user_id', String(128))
project_id = Column('project_id', String(128))
user_id = Column("user_id", String(128))
project_id = Column("project_id", String(128))
# Filled in by x_orch_api e.g. platform, volumev2, compute, network
endpoint_type = Column(String(255), nullable=False)
@@ -256,8 +261,9 @@ class OrchJob(BASE, OrchestratorBase):
operation_type = Column(String(255)) # http type: post/put/patch/delete
capabilities = Column(JSONEncodedDict)
resource_id = Column('resource_id', Integer,
ForeignKey('resource.id')) # nullable=False?
resource_id = Column(
"resource_id", Integer, ForeignKey("resource.id")
) # nullable=False?
# resource_info cannot be derived from resource.master_values
# Represents resource info for a specific API call. In case of update, it
@@ -267,17 +273,20 @@ class OrchJob(BASE, OrchestratorBase):
# formatted dict. The exact contents will vary depending on resource.
resource_info = Column(String())
orchrequests = relationship('OrchRequest', backref='orch_job')
orchrequests = relationship("OrchRequest", backref="orch_job")
# orch_status can be derived from the underlying OrchRequests state
class OrchRequest(BASE, OrchestratorBase):
__tablename__ = 'orch_request'
__tablename__ = "orch_request"
__table_args__ = (
Index('orch_request_state_idx', 'state'),
Index("orch_request_state_idx", "state"),
UniqueConstraint(
'target_region_name', 'orch_job_id', 'deleted',
name='uniq_orchreq0target_region_name0orch_job_id0deleted'),
"target_region_name",
"orch_job_id",
"deleted",
name="uniq_orchreq0target_region_name0orch_job_id0deleted",
),
)
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
@@ -292,20 +301,20 @@ class OrchRequest(BASE, OrchestratorBase):
target_region_name = Column(String(255))
capabilities = Column(JSONEncodedDict)
orch_job_id = Column('orch_job_id', Integer,
ForeignKey('orch_job.id'), primary_key=True)
orch_job_id = Column(
"orch_job_id", Integer, ForeignKey("orch_job.id"), primary_key=True
)
class SubcloudSync(BASE, OrchestratorBase):
"""Store subcloud sync information to allow coordination of dcorch workload
"""Store subcloud sync information to allow coordination of dcorch workload"""
"""
__tablename__ = 'subcloud_sync'
__tablename__ = "subcloud_sync"
id = Column(Integer, primary_key=True)
subcloud_id = Column('subcloud_id', Integer,
ForeignKey('subcloud.id', ondelete='CASCADE'))
subcloud_id = Column(
"subcloud_id", Integer, ForeignKey("subcloud.id", ondelete="CASCADE")
)
subcloud_name = Column(String(255), nullable=False)
endpoint_type = Column(String(255), default="none")
sync_request = Column(String(64), default=consts.SYNC_STATUS_NONE)

View File

@@ -1,5 +1,5 @@
# Copyright (c) 2015 Ericsson AB.
# Copyright (c) 2020-2022 Wind River Systems, Inc.
# Copyright (c) 2020-2022, 2024 Wind River Systems, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -46,8 +46,8 @@ class LazyPluggable(object):
return getattr(backend, key)
IMPL = LazyPluggable('backend', sqlalchemy='dcorch.db.sqlalchemy.api')
IMPL = LazyPluggable("backend", sqlalchemy="dcorch.db.sqlalchemy.api")
def purge_deleted(age, granularity='days'):
def purge_deleted(age, granularity="days"):
IMPL.purge_deleted(age, granularity)

View File

@@ -27,6 +27,7 @@ formatted_modules = [
"dcdbsync",
"dcorch/api",
"dcorch/common",
"dcorch/db",
]