Apply black formatter to dcmanager/db

This commit applies the Black format to the `dcmanager/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: 50444

Change-Id: Id6b0e2f15ea7c8ee79b3c35b534bf3a27893256b
Signed-off-by: Hugo Brito <hugo.brito@windriver.com>
This commit is contained in:
Hugo Brito
2024-06-29 11:49:55 -03:00
parent 591956c86a
commit 9c91fffa07
24 changed files with 1573 additions and 1175 deletions

File diff suppressed because it is too large Load Diff

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

@@ -25,133 +25,138 @@ def upgrade(migrate_engine):
meta.bind = migrate_engine
subclouds = sqlalchemy.Table(
'subclouds', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('name', sqlalchemy.String(255), unique=True),
sqlalchemy.Column('description', sqlalchemy.String(255)),
sqlalchemy.Column('location', sqlalchemy.String(255)),
sqlalchemy.Column('software_version', sqlalchemy.String(255)),
sqlalchemy.Column('management_state', sqlalchemy.String(255)),
sqlalchemy.Column('availability_status', sqlalchemy.String(255)),
sqlalchemy.Column('management_subnet', sqlalchemy.String(255)),
sqlalchemy.Column('management_gateway_ip', sqlalchemy.String(255)),
sqlalchemy.Column('management_start_ip', sqlalchemy.String(255)),
sqlalchemy.Column('management_end_ip', sqlalchemy.String(255)),
sqlalchemy.Column('systemcontroller_gateway_ip',
sqlalchemy.String(255)),
sqlalchemy.Column('audit_fail_count', sqlalchemy.Integer, default=0),
sqlalchemy.Column('reserved_1', sqlalchemy.Text),
sqlalchemy.Column('reserved_2', 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'
"subclouds",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column("name", sqlalchemy.String(255), unique=True),
sqlalchemy.Column("description", sqlalchemy.String(255)),
sqlalchemy.Column("location", sqlalchemy.String(255)),
sqlalchemy.Column("software_version", sqlalchemy.String(255)),
sqlalchemy.Column("management_state", sqlalchemy.String(255)),
sqlalchemy.Column("availability_status", sqlalchemy.String(255)),
sqlalchemy.Column("management_subnet", sqlalchemy.String(255)),
sqlalchemy.Column("management_gateway_ip", sqlalchemy.String(255)),
sqlalchemy.Column("management_start_ip", sqlalchemy.String(255)),
sqlalchemy.Column("management_end_ip", sqlalchemy.String(255)),
sqlalchemy.Column("systemcontroller_gateway_ip", sqlalchemy.String(255)),
sqlalchemy.Column("audit_fail_count", sqlalchemy.Integer, default=0),
sqlalchemy.Column("reserved_1", sqlalchemy.Text),
sqlalchemy.Column("reserved_2", 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",
)
subcloud_status = sqlalchemy.Table(
'subcloud_status', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('subcloud_id', sqlalchemy.Integer,
sqlalchemy.ForeignKey('subclouds.id',
ondelete='CASCADE')),
sqlalchemy.Column('endpoint_type', sqlalchemy.String(255)),
sqlalchemy.Column('sync_status', sqlalchemy.String(255)),
sqlalchemy.Column('reserved_1', sqlalchemy.Text),
sqlalchemy.Column('reserved_2', 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'
"subcloud_status",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column(
"subcloud_id",
sqlalchemy.Integer,
sqlalchemy.ForeignKey("subclouds.id", ondelete="CASCADE"),
),
sqlalchemy.Column("endpoint_type", sqlalchemy.String(255)),
sqlalchemy.Column("sync_status", sqlalchemy.String(255)),
sqlalchemy.Column("reserved_1", sqlalchemy.Text),
sqlalchemy.Column("reserved_2", 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",
)
sw_update_strategy = sqlalchemy.Table(
'sw_update_strategy', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('type', sqlalchemy.String(255), unique=True),
sqlalchemy.Column('subcloud_apply_type', sqlalchemy.String(255)),
sqlalchemy.Column('max_parallel_subclouds', sqlalchemy.Integer),
sqlalchemy.Column('stop_on_failure', sqlalchemy.Boolean),
sqlalchemy.Column('state', sqlalchemy.String(255)),
sqlalchemy.Column('reserved_1', sqlalchemy.Text),
sqlalchemy.Column('reserved_2', 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'
"sw_update_strategy",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column("type", sqlalchemy.String(255), unique=True),
sqlalchemy.Column("subcloud_apply_type", sqlalchemy.String(255)),
sqlalchemy.Column("max_parallel_subclouds", sqlalchemy.Integer),
sqlalchemy.Column("stop_on_failure", sqlalchemy.Boolean),
sqlalchemy.Column("state", sqlalchemy.String(255)),
sqlalchemy.Column("reserved_1", sqlalchemy.Text),
sqlalchemy.Column("reserved_2", 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",
)
sw_update_opts_default = sqlalchemy.Table(
'sw_update_opts_default', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('subcloud_id', sqlalchemy.Integer),
sqlalchemy.Column('storage_apply_type', sqlalchemy.String(255)),
sqlalchemy.Column('compute_apply_type', sqlalchemy.String(255)),
sqlalchemy.Column('max_parallel_computes', sqlalchemy.Integer),
sqlalchemy.Column('default_instance_action', sqlalchemy.String(255)),
sqlalchemy.Column('alarm_restriction_type', sqlalchemy.String(255)),
sqlalchemy.Column('reserved_1', sqlalchemy.Text),
sqlalchemy.Column('reserved_2', 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'
"sw_update_opts_default",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column("subcloud_id", sqlalchemy.Integer),
sqlalchemy.Column("storage_apply_type", sqlalchemy.String(255)),
sqlalchemy.Column("compute_apply_type", sqlalchemy.String(255)),
sqlalchemy.Column("max_parallel_computes", sqlalchemy.Integer),
sqlalchemy.Column("default_instance_action", sqlalchemy.String(255)),
sqlalchemy.Column("alarm_restriction_type", sqlalchemy.String(255)),
sqlalchemy.Column("reserved_1", sqlalchemy.Text),
sqlalchemy.Column("reserved_2", 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",
)
sw_update_opts = sqlalchemy.Table(
'sw_update_opts', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('subcloud_id', sqlalchemy.Integer,
sqlalchemy.ForeignKey('subclouds.id',
ondelete='CASCADE')),
sqlalchemy.Column('storage_apply_type', sqlalchemy.String(255)),
sqlalchemy.Column('compute_apply_type', sqlalchemy.String(255)),
sqlalchemy.Column('max_parallel_computes', sqlalchemy.Integer),
sqlalchemy.Column('default_instance_action', sqlalchemy.String(255)),
sqlalchemy.Column('alarm_restriction_type', sqlalchemy.String(255)),
sqlalchemy.Column('reserved_1', sqlalchemy.Text),
sqlalchemy.Column('reserved_2', 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'
"sw_update_opts",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column(
"subcloud_id",
sqlalchemy.Integer,
sqlalchemy.ForeignKey("subclouds.id", ondelete="CASCADE"),
),
sqlalchemy.Column("storage_apply_type", sqlalchemy.String(255)),
sqlalchemy.Column("compute_apply_type", sqlalchemy.String(255)),
sqlalchemy.Column("max_parallel_computes", sqlalchemy.Integer),
sqlalchemy.Column("default_instance_action", sqlalchemy.String(255)),
sqlalchemy.Column("alarm_restriction_type", sqlalchemy.String(255)),
sqlalchemy.Column("reserved_1", sqlalchemy.Text),
sqlalchemy.Column("reserved_2", 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",
)
strategy_steps = sqlalchemy.Table(
'strategy_steps', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True, nullable=False),
sqlalchemy.Column('subcloud_id', sqlalchemy.Integer,
sqlalchemy.ForeignKey('subclouds.id',
ondelete='CASCADE'),
unique=True),
sqlalchemy.Column('stage', sqlalchemy.Integer),
sqlalchemy.Column('state', sqlalchemy.String(255)),
sqlalchemy.Column('details', sqlalchemy.String(255)),
sqlalchemy.Column('started_at', sqlalchemy.DateTime),
sqlalchemy.Column('finished_at', sqlalchemy.DateTime),
sqlalchemy.Column('reserved_1', sqlalchemy.Text),
sqlalchemy.Column('reserved_2', 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'
"strategy_steps",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column(
"subcloud_id",
sqlalchemy.Integer,
sqlalchemy.ForeignKey("subclouds.id", ondelete="CASCADE"),
unique=True,
),
sqlalchemy.Column("stage", sqlalchemy.Integer),
sqlalchemy.Column("state", sqlalchemy.String(255)),
sqlalchemy.Column("details", sqlalchemy.String(255)),
sqlalchemy.Column("started_at", sqlalchemy.DateTime),
sqlalchemy.Column("finished_at", sqlalchemy.DateTime),
sqlalchemy.Column("reserved_1", sqlalchemy.Text),
sqlalchemy.Column("reserved_2", 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 = (
@@ -160,7 +165,7 @@ def upgrade(migrate_engine):
sw_update_strategy,
strategy_steps,
sw_update_opts,
sw_update_opts_default
sw_update_opts_default,
)
for index, table in enumerate(tables):
@@ -176,18 +181,21 @@ def upgrade(migrate_engine):
# populate the sw_update_opts_default with the default values.
con = migrate_engine.connect()
con.execute(sw_update_opts_default.insert(), # pylint: disable=E1120
storage_apply_type=vim.APPLY_TYPE_PARALLEL,
compute_apply_type=vim.APPLY_TYPE_PARALLEL,
max_parallel_computes=10,
default_instance_action=vim.INSTANCE_ACTION_MIGRATE,
alarm_restriction_type=vim.ALARM_RESTRICTIONS_RELAXED,
deleted=0)
con.execute(
sw_update_opts_default.insert(), # pylint: disable=E1120
storage_apply_type=vim.APPLY_TYPE_PARALLEL,
compute_apply_type=vim.APPLY_TYPE_PARALLEL,
max_parallel_computes=10,
default_instance_action=vim.INSTANCE_ACTION_MIGRATE,
alarm_restriction_type=vim.ALARM_RESTRICTIONS_RELAXED,
deleted=0,
)
except Exception:
# We can survive if this fails.
pass
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) 2019-2021 Wind River Systems, Inc.
# Copyright (c) 2019-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
@@ -20,12 +20,13 @@ def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
sw_update_opts_default = Table('sw_update_opts_default', meta,
autoload=True)
sw_update_opts = Table('sw_update_opts', meta, autoload=True)
sw_update_opts_default = Table("sw_update_opts_default", meta, autoload=True)
sw_update_opts = Table("sw_update_opts", meta, autoload=True)
columns_to_rename = {'compute_apply_type': 'worker_apply_type',
'max_parallel_computes': 'max_parallel_workers'}
columns_to_rename = {
"compute_apply_type": "worker_apply_type",
"max_parallel_computes": "max_parallel_workers",
}
for k, v in columns_to_rename.items():
getattr(sw_update_opts_default.c, k).alter(name=v)
getattr(sw_update_opts.c, k).alter(name=v)
@@ -34,4 +35,4 @@ def upgrade(migrate_engine):
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2019-2021 Wind River Systems, Inc.
# Copyright (c) 2019-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,13 +19,13 @@ def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
subclouds = Table('subclouds', meta, autoload=True)
subclouds = Table("subclouds", meta, autoload=True)
# Add the 'deploy_status' column to the subclouds table.
subclouds.create_column(Column('deploy_status', String(255)))
subclouds.create_column(Column("deploy_status", String(255)))
return True
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2019-2021 Wind River Systems, Inc.
# Copyright (c) 2019-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,15 +19,21 @@ def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
subclouds = Table('subclouds', meta, autoload=True)
subclouds = Table("subclouds", meta, autoload=True)
# Add the 'openstack_installed' column to the subclouds table.
subclouds.create_column(Column('openstack_installed', Boolean,
nullable=False, default=False,
server_default='0'))
subclouds.create_column(
Column(
"openstack_installed",
Boolean,
nullable=False,
default=False,
server_default="0",
)
)
return True
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

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
@@ -20,30 +20,28 @@ def upgrade(migrate_engine):
meta.bind = migrate_engine
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('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('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'
"subcloud_alarms",
meta,
sqlalchemy.Column("id", sqlalchemy.Integer, primary_key=True, nullable=False),
sqlalchemy.Column("uuid", sqlalchemy.String(36), unique=True),
sqlalchemy.Column("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("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",
)
subcloud_alarms.create()
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
@@ -17,8 +17,8 @@ import sqlalchemy
from dcmanager.common import consts
ENGINE = 'InnoDB',
CHARSET = 'utf8'
ENGINE = ("InnoDB",)
CHARSET = "utf8"
def upgrade(migrate_engine):
@@ -26,27 +26,31 @@ def upgrade(migrate_engine):
# Declare the new subcloud_group table
subcloud_group = sqlalchemy.Table(
'subcloud_group', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True,
autoincrement=True,
nullable=False),
sqlalchemy.Column('name', sqlalchemy.String(255), unique=True),
sqlalchemy.Column('description', sqlalchemy.String(255)),
sqlalchemy.Column('update_apply_type', sqlalchemy.String(255)),
sqlalchemy.Column('max_parallel_subclouds', sqlalchemy.Integer),
sqlalchemy.Column('reserved_1', sqlalchemy.Text),
sqlalchemy.Column('reserved_2', 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, default=0),
"subcloud_group",
meta,
sqlalchemy.Column(
"id",
sqlalchemy.Integer,
primary_key=True,
autoincrement=True,
nullable=False,
),
sqlalchemy.Column("name", sqlalchemy.String(255), unique=True),
sqlalchemy.Column("description", sqlalchemy.String(255)),
sqlalchemy.Column("update_apply_type", sqlalchemy.String(255)),
sqlalchemy.Column("max_parallel_subclouds", sqlalchemy.Integer),
sqlalchemy.Column("reserved_1", sqlalchemy.Text),
sqlalchemy.Column("reserved_2", 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, default=0),
mysql_engine=ENGINE,
mysql_charset=CHARSET
mysql_charset=CHARSET,
)
subcloud_group.create()
subclouds = sqlalchemy.Table('subclouds', meta, autoload=True)
subclouds = sqlalchemy.Table("subclouds", meta, autoload=True)
# TODO(abailey) do we want to fix the missing constraint for strategy_steps
# strat_steps = sqlalchemy.Table('strategy_steps', meta, autoload=True)
@@ -62,37 +66,36 @@ def upgrade(migrate_engine):
"name": consts.DEFAULT_SUBCLOUD_GROUP_NAME,
"description": consts.DEFAULT_SUBCLOUD_GROUP_DESCRIPTION,
"update_apply_type": consts.DEFAULT_SUBCLOUD_GROUP_UPDATE_APPLY_TYPE,
"max_parallel_subclouds":
consts.DEFAULT_SUBCLOUD_GROUP_MAX_PARALLEL_SUBCLOUDS,
"deleted": 0
"max_parallel_subclouds": consts.DEFAULT_SUBCLOUD_GROUP_MAX_PARALLEL_SUBCLOUDS,
"deleted": 0,
}
# Inserting the GROUP as ID 1,
# This should increment the pkey to 2
with migrate_engine.begin() as conn:
conn.execute(
subcloud_group.insert(), # pylint: disable=E1120
default_group)
conn.execute(subcloud_group.insert(), default_group) # pylint: disable=E1120
# postgres does not increment the subcloud group id sequence
# after the insert above as part of the migrate.
# Note: use different SQL syntax if using mysql or sqlite
if migrate_engine.name == 'postgresql':
if migrate_engine.name == "postgresql":
with migrate_engine.begin() as conn:
conn.execute("ALTER SEQUENCE subcloud_group_id_seq RESTART WITH 2")
# Add group_id column to subclouds table
group_id = \
sqlalchemy.Column('group_id',
sqlalchemy.Integer,
server_default=str(consts.DEFAULT_SUBCLOUD_GROUP_ID))
group_id = sqlalchemy.Column(
"group_id",
sqlalchemy.Integer,
server_default=str(consts.DEFAULT_SUBCLOUD_GROUP_ID),
)
group_id.create(subclouds)
subcloud_fkey = constraint.ForeignKeyConstraint(
columns=[subclouds.c.group_id],
refcolumns=[subcloud_group.c.id],
name='subclouds_group_ref')
name="subclouds_group_ref",
)
subclouds.append_constraint(subcloud_fkey)
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

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
@@ -22,14 +22,14 @@ def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
subclouds = Table('subclouds', meta, autoload=True)
subclouds = Table("subclouds", meta, autoload=True)
# Add the 'data_install' to persist data_install data
subclouds.create_column(Column('data_install', Text))
subclouds.create_column(Column("data_install", Text))
# Add the data_upgrade which persist over an upgrade
subclouds.create_column(Column('data_upgrade', Text))
subclouds.create_column(Column("data_upgrade", Text))
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

View File

@@ -29,40 +29,47 @@ def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
subclouds = Table('subclouds', meta, autoload=True)
subclouds = Table("subclouds", meta, autoload=True)
subcloud_audits = Table(
'subcloud_audits', meta,
Column('id', Integer, primary_key=True,
autoincrement=True, nullable=False),
Column('subcloud_id', Integer,
ForeignKey('subclouds.id', ondelete='CASCADE'),
unique=True),
Column('created_at', DateTime),
Column('updated_at', DateTime),
Column('deleted_at', DateTime),
Column('deleted', Integer, default=0),
Column('audit_started_at', DateTime, default=datetime.datetime.min),
Column('audit_finished_at', DateTime, default=datetime.datetime.min),
Column('state_update_requested', Boolean, nullable=False, default=False),
Column('patch_audit_requested', Boolean, nullable=False, default=False),
Column('load_audit_requested', Boolean, nullable=False, default=False),
Column('firmware_audit_requested', Boolean, nullable=False, default=False),
Column('kubernetes_audit_requested', Boolean, nullable=False, default=False),
Column('spare_audit_requested', Boolean, nullable=False, default=False),
Column('spare2_audit_requested', Boolean, nullable=False, default=False),
Column('reserved', Text),
mysql_engine='InnoDB',
mysql_charset='utf8'
"subcloud_audits",
meta,
Column("id", Integer, primary_key=True, autoincrement=True, nullable=False),
Column(
"subcloud_id",
Integer,
ForeignKey("subclouds.id", ondelete="CASCADE"),
unique=True,
),
Column("created_at", DateTime),
Column("updated_at", DateTime),
Column("deleted_at", DateTime),
Column("deleted", Integer, default=0),
Column("audit_started_at", DateTime, default=datetime.datetime.min),
Column("audit_finished_at", DateTime, default=datetime.datetime.min),
Column("state_update_requested", Boolean, nullable=False, default=False),
Column("patch_audit_requested", Boolean, nullable=False, default=False),
Column("load_audit_requested", Boolean, nullable=False, default=False),
Column("firmware_audit_requested", Boolean, nullable=False, default=False),
Column("kubernetes_audit_requested", Boolean, nullable=False, default=False),
Column("spare_audit_requested", Boolean, nullable=False, default=False),
Column("spare2_audit_requested", Boolean, nullable=False, default=False),
Column("reserved", Text),
mysql_engine="InnoDB",
mysql_charset="utf8",
)
subcloud_audits.create()
# Create rows in the new table for each non-deleted subcloud.
subcloud_list = list(subclouds.select().where(subclouds.c.deleted == 0)
.order_by(subclouds.c.id).execute())
subcloud_list = list(
subclouds.select()
.where(subclouds.c.deleted == 0)
.order_by(subclouds.c.id)
.execute()
)
for subcloud in subcloud_list:
# pylint: disable-next=no-value-for-parameter
subcloud_audits.insert().execute({'subcloud_id': subcloud['id']})
subcloud_audits.insert().execute({"subcloud_id": subcloud["id"]})
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

View File

@@ -1,8 +1,9 @@
#
# Copyright (c) 2021 Wind River Systems, Inc.
# Copyright (c) 2021, 2024 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
from sqlalchemy import Boolean
from sqlalchemy import Column
from sqlalchemy import MetaData
@@ -13,16 +14,20 @@ def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
subcloud_audits = Table('subcloud_audits', meta, autoload=True)
subcloud_audits = Table("subcloud_audits", meta, autoload=True)
# Add the kube_rootca_update_audit_requested column to the audits table.
subcloud_audits.create_column(Column('kube_rootca_update_audit_requested',
Boolean,
nullable=False,
default=False,
server_default='0'))
subcloud_audits.create_column(
Column(
"kube_rootca_update_audit_requested",
Boolean,
nullable=False,
default=False,
server_default="0",
)
)
return True
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

View File

@@ -1,8 +1,9 @@
#
# Copyright (c) 2021 Wind River Systems, Inc.
# Copyright (c) 2021, 2024 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
import sqlalchemy
@@ -11,14 +12,11 @@ def upgrade(migrate_engine):
meta.bind = migrate_engine
# Add the 'extra_args' column to the sw_update_strategy table.
sw_update_strategy = sqlalchemy.Table('sw_update_strategy',
meta,
autoload=True)
sw_update_strategy = sqlalchemy.Table("sw_update_strategy", meta, autoload=True)
# JSONEncodedDict is stored in the database as Text
sw_update_strategy.create_column(sqlalchemy.Column('extra_args',
sqlalchemy.Text))
sw_update_strategy.create_column(sqlalchemy.Column("extra_args", sqlalchemy.Text))
return True
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2022 Wind River Systems, Inc.
# Copyright (c) 2022, 2024 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -11,14 +11,14 @@ def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
subclouds = Table('subclouds', meta, autoload=True)
subclouds = Table("subclouds", meta, autoload=True)
# Add the backup-related columns to the subclouds table.
subclouds.create_column(Column('backup_status', String(255)))
subclouds.create_column(Column('backup_datetime', DateTime(timezone=False)))
subclouds.create_column(Column("backup_status", String(255)))
subclouds.create_column(Column("backup_datetime", DateTime(timezone=False)))
return True
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2022 Wind River Systems, Inc.
# Copyright (c) 2022, 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,15 +19,15 @@ def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
subclouds = Table('subclouds', meta, autoload=True)
subclouds = Table("subclouds", meta, autoload=True)
# Add the 'error_description' column to the subclouds table.
subclouds.create_column(Column('error_description',
String(2048),
default="No errors present"))
subclouds.create_column(
Column("error_description", String(2048), default="No errors present")
)
return True
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2023 Wind River Systems, Inc.
# Copyright (c) 2023-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,14 +19,13 @@ def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
subclouds = Table('subclouds', meta, autoload=True)
subclouds = Table("subclouds", meta, autoload=True)
# Add the 'region_name' column to the subclouds table.
subclouds.create_column(Column('region_name',
String(255)))
subclouds.create_column(Column("region_name", String(255)))
# populates region_name with name field value for existing subclouds
if migrate_engine.name == 'postgresql':
if migrate_engine.name == "postgresql":
with migrate_engine.begin() as conn:
conn.execute("UPDATE subclouds SET region_name = name")
@@ -34,4 +33,4 @@ def upgrade(migrate_engine):
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

View File

@@ -1,106 +1,122 @@
# Copyright (c) 2023 Wind River Systems, Inc.
# Copyright (c) 2023-2024 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
import sqlalchemy
ENGINE = 'InnoDB',
CHARSET = 'utf8'
ENGINE = ("InnoDB",)
CHARSET = "utf8"
def upgrade(migrate_engine):
meta = sqlalchemy.MetaData(bind=migrate_engine)
subclouds = sqlalchemy.Table('subclouds', meta, autoload=True)
subclouds = sqlalchemy.Table("subclouds", meta, autoload=True)
# Add the 'rehome_data' column to the subclouds table.
subclouds.create_column(sqlalchemy.Column('rehome_data', sqlalchemy.Text))
subclouds.create_column(sqlalchemy.Column("rehome_data", sqlalchemy.Text))
# Declare the new subcloud_peer_group table
subcloud_peer_group = sqlalchemy.Table(
'subcloud_peer_group', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True,
autoincrement=True,
nullable=False),
sqlalchemy.Column('peer_group_name', sqlalchemy.String(255), unique=True),
sqlalchemy.Column('group_priority', sqlalchemy.Integer),
sqlalchemy.Column('group_state', sqlalchemy.String(255)),
sqlalchemy.Column('system_leader_id', sqlalchemy.String(255)),
sqlalchemy.Column('system_leader_name', sqlalchemy.String(255)),
sqlalchemy.Column('max_subcloud_rehoming', sqlalchemy.Integer),
sqlalchemy.Column('migration_status', sqlalchemy.String(255)),
sqlalchemy.Column('reserved_1', sqlalchemy.Text),
sqlalchemy.Column('reserved_2', 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, default=0),
"subcloud_peer_group",
meta,
sqlalchemy.Column(
"id",
sqlalchemy.Integer,
primary_key=True,
autoincrement=True,
nullable=False,
),
sqlalchemy.Column("peer_group_name", sqlalchemy.String(255), unique=True),
sqlalchemy.Column("group_priority", sqlalchemy.Integer),
sqlalchemy.Column("group_state", sqlalchemy.String(255)),
sqlalchemy.Column("system_leader_id", sqlalchemy.String(255)),
sqlalchemy.Column("system_leader_name", sqlalchemy.String(255)),
sqlalchemy.Column("max_subcloud_rehoming", sqlalchemy.Integer),
sqlalchemy.Column("migration_status", sqlalchemy.String(255)),
sqlalchemy.Column("reserved_1", sqlalchemy.Text),
sqlalchemy.Column("reserved_2", 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, default=0),
mysql_engine=ENGINE,
mysql_charset=CHARSET
mysql_charset=CHARSET,
)
subcloud_peer_group.create()
# Add the 'peer_greoup_id' column to the subclouds table.
subclouds.create_column(sqlalchemy.Column('peer_group_id', sqlalchemy.Integer))
subclouds.create_column(sqlalchemy.Column("peer_group_id", sqlalchemy.Integer))
# Declare the new system_peer table
system_peer = sqlalchemy.Table(
'system_peer', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True,
autoincrement=True,
nullable=False),
sqlalchemy.Column('peer_uuid', sqlalchemy.String(36), unique=True),
sqlalchemy.Column('peer_name', sqlalchemy.String(255), unique=True),
sqlalchemy.Column('manager_endpoint', sqlalchemy.String(255)),
sqlalchemy.Column('manager_username', sqlalchemy.String(255)),
sqlalchemy.Column('manager_password', sqlalchemy.String(255)),
sqlalchemy.Column('peer_controller_gateway_ip', sqlalchemy.String(255)),
sqlalchemy.Column('administrative_state', sqlalchemy.String(255)),
sqlalchemy.Column('heartbeat_interval', sqlalchemy.Integer),
sqlalchemy.Column('heartbeat_failure_threshold', sqlalchemy.Integer),
sqlalchemy.Column('heartbeat_failure_policy', sqlalchemy.String(255)),
sqlalchemy.Column('heartbeat_maintenance_timeout', sqlalchemy.Integer),
sqlalchemy.Column('availability_state', sqlalchemy.String(255)),
sqlalchemy.Column('reserved_1', sqlalchemy.Text),
sqlalchemy.Column('reserved_2', 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, default=0),
"system_peer",
meta,
sqlalchemy.Column(
"id",
sqlalchemy.Integer,
primary_key=True,
autoincrement=True,
nullable=False,
),
sqlalchemy.Column("peer_uuid", sqlalchemy.String(36), unique=True),
sqlalchemy.Column("peer_name", sqlalchemy.String(255), unique=True),
sqlalchemy.Column("manager_endpoint", sqlalchemy.String(255)),
sqlalchemy.Column("manager_username", sqlalchemy.String(255)),
sqlalchemy.Column("manager_password", sqlalchemy.String(255)),
sqlalchemy.Column("peer_controller_gateway_ip", sqlalchemy.String(255)),
sqlalchemy.Column("administrative_state", sqlalchemy.String(255)),
sqlalchemy.Column("heartbeat_interval", sqlalchemy.Integer),
sqlalchemy.Column("heartbeat_failure_threshold", sqlalchemy.Integer),
sqlalchemy.Column("heartbeat_failure_policy", sqlalchemy.String(255)),
sqlalchemy.Column("heartbeat_maintenance_timeout", sqlalchemy.Integer),
sqlalchemy.Column("availability_state", sqlalchemy.String(255)),
sqlalchemy.Column("reserved_1", sqlalchemy.Text),
sqlalchemy.Column("reserved_2", 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, default=0),
mysql_engine=ENGINE,
mysql_charset=CHARSET
mysql_charset=CHARSET,
)
system_peer.create()
# Declare the new peer_group_association table
peer_group_association = sqlalchemy.Table(
'peer_group_association', meta,
sqlalchemy.Column('id', sqlalchemy.Integer,
primary_key=True,
autoincrement=True,
nullable=False),
sqlalchemy.Column('peer_group_id', sqlalchemy.Integer,
sqlalchemy.ForeignKey('subcloud_peer_group.id',
ondelete='CASCADE')),
sqlalchemy.Column('system_peer_id', sqlalchemy.Integer,
sqlalchemy.ForeignKey('system_peer.id',
ondelete='CASCADE')),
sqlalchemy.Column('peer_group_priority', sqlalchemy.Integer),
sqlalchemy.Column('association_type', sqlalchemy.String(255)),
sqlalchemy.Column('sync_status', sqlalchemy.String(255)),
sqlalchemy.Column('sync_message', sqlalchemy.Text),
sqlalchemy.Column('reserved_1', sqlalchemy.Text),
sqlalchemy.Column('reserved_2', 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, default=0),
"peer_group_association",
meta,
sqlalchemy.Column(
"id",
sqlalchemy.Integer,
primary_key=True,
autoincrement=True,
nullable=False,
),
sqlalchemy.Column(
"peer_group_id",
sqlalchemy.Integer,
sqlalchemy.ForeignKey("subcloud_peer_group.id", ondelete="CASCADE"),
),
sqlalchemy.Column(
"system_peer_id",
sqlalchemy.Integer,
sqlalchemy.ForeignKey("system_peer.id", ondelete="CASCADE"),
),
sqlalchemy.Column("peer_group_priority", sqlalchemy.Integer),
sqlalchemy.Column("association_type", sqlalchemy.String(255)),
sqlalchemy.Column("sync_status", sqlalchemy.String(255)),
sqlalchemy.Column("sync_message", sqlalchemy.Text),
sqlalchemy.Column("reserved_1", sqlalchemy.Text),
sqlalchemy.Column("reserved_2", 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, default=0),
mysql_engine=ENGINE,
mysql_charset=CHARSET
mysql_charset=CHARSET,
)
peer_group_association.create()
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2023 Wind River Systems, Inc.
# Copyright (c) 2023-2024 Wind River Systems, Inc.
#
# SPDX-License-Identifier: Apache-2.0
#
@@ -11,13 +11,13 @@ def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
subclouds = Table('subclouds', meta, autoload=True)
subclouds = Table("subclouds", meta, autoload=True)
# Add the 'rehomed' column to the subclouds table.
subclouds.create_column(Column('rehomed', Boolean, default=False))
subclouds.create_column(Column("rehomed", Boolean, default=False))
return True
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

View File

@@ -1,4 +1,4 @@
# Copyright (c) 2023 Wind River Systems, Inc.
# Copyright (c) 2023-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
@@ -18,13 +18,16 @@ import sqlalchemy
def upgrade(migrate_engine):
meta = sqlalchemy.MetaData()
meta.bind = migrate_engine
subcloud = sqlalchemy.Table('subclouds', meta, autoload=True)
subcloud = sqlalchemy.Table("subclouds", meta, autoload=True)
# Add the first_identity_sync_complete column
subcloud.create_column(sqlalchemy.Column('first_identity_sync_complete',
sqlalchemy.Boolean,
default=False))
subcloud.create_column(
sqlalchemy.Column(
"first_identity_sync_complete", sqlalchemy.Boolean, default=False
)
)
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

@@ -11,20 +11,20 @@ def upgrade(migrate_engine):
meta = MetaData()
meta.bind = migrate_engine
subclouds = Table('subclouds', meta, autoload=True)
subclouds = Table("subclouds", meta, autoload=True)
# Add the 'prestage_status' and 'prestage_versions' columns to
# the subclouds table.
subclouds.create_column(Column('prestage_status', String(255)))
subclouds.create_column(Column('prestage_versions', String(255)))
subclouds.create_column(Column("prestage_status", String(255)))
subclouds.create_column(Column("prestage_versions", String(255)))
# Update existing subclouds that have the old prestaging deploy status
subclouds.update().where( # pylint: disable=E1120
subclouds.c.deploy_status.like('prestage%')).values(
{'deploy_status': 'complete'}).execute()
subclouds.c.deploy_status.like("prestage%")
).values({"deploy_status": "complete"}).execute()
return True
def downgrade(migrate_engine):
raise NotImplementedError('Database downgrade is unsupported.')
raise NotImplementedError("Database downgrade is unsupported.")

View File

@@ -1,5 +1,5 @@
# Copyright (c) 2015 Ericsson AB.
# Copyright (c) 2017, 2019, 2021 Wind River Systems, Inc.
# Copyright (c) 2017, 2019, 2021, 2024 Wind River Systems, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -24,19 +24,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

@@ -62,9 +62,7 @@ class JSONEncodedDict(TypeDecorator):
return value
class DCManagerBase(models.ModelBase,
models.SoftDeleteMixin,
models.TimestampMixin):
class DCManagerBase(models.ModelBase, models.SoftDeleteMixin, models.TimestampMixin):
"""Base class for DC Manager Models."""
# __table_args__ = {'mysql_engine': 'InnoDB'}
@@ -98,7 +96,7 @@ class DCManagerBase(models.ModelBase,
class SystemPeer(BASE, DCManagerBase):
"""Represents a system peer"""
__tablename__ = 'system_peer'
__tablename__ = "system_peer"
id = Column(Integer, primary_key=True, autoincrement=True, nullable=False)
peer_uuid = Column(String(36), unique=True)
@@ -118,7 +116,7 @@ class SystemPeer(BASE, DCManagerBase):
class SubcloudGroup(BASE, DCManagerBase):
"""Represents a subcloud group"""
__tablename__ = 'subcloud_group'
__tablename__ = "subcloud_group"
id = Column(Integer, primary_key=True, autoincrement=True, nullable=False)
name = Column(String(255), unique=True)
@@ -130,7 +128,7 @@ class SubcloudGroup(BASE, DCManagerBase):
class SubcloudPeerGroup(BASE, DCManagerBase):
"""Represents a subcloud group"""
__tablename__ = 'subcloud_peer_group'
__tablename__ = "subcloud_peer_group"
id = Column(Integer, primary_key=True, autoincrement=True, nullable=False)
peer_group_name = Column(String(255), unique=True)
@@ -145,7 +143,7 @@ class SubcloudPeerGroup(BASE, DCManagerBase):
class PeerGroupAssociation(BASE, DCManagerBase):
"""Represents a Peer Group Association"""
__tablename__ = 'peer_group_association'
__tablename__ = "peer_group_association"
id = Column(Integer, primary_key=True, autoincrement=True, nullable=False)
peer_group_id = Column(Integer)
@@ -159,7 +157,7 @@ class PeerGroupAssociation(BASE, DCManagerBase):
class Subcloud(BASE, DCManagerBase):
"""Represents a subcloud"""
__tablename__ = 'subclouds'
__tablename__ = "subclouds"
id = Column(Integer, primary_key=True, nullable=False)
name = Column(String(255), unique=True)
@@ -183,43 +181,34 @@ class Subcloud(BASE, DCManagerBase):
systemcontroller_gateway_ip = Column(String(255))
audit_fail_count = Column(Integer)
first_identity_sync_complete = Column(Boolean, default=False)
peer_group_id = Column(Integer,
ForeignKey('subcloud_peer_group.id'))
peer_group_id = Column(Integer, ForeignKey("subcloud_peer_group.id"))
rehome_data = Column(Text())
prestage_status = Column(String(255))
prestage_versions = Column(String(255))
# multiple subclouds can be in a particular group
group_id = Column(Integer,
ForeignKey('subcloud_group.id'))
group = relationship(SubcloudGroup,
backref=backref('subcloud'))
group_id = Column(Integer, ForeignKey("subcloud_group.id"))
group = relationship(SubcloudGroup, backref=backref("subcloud"))
rehomed = Column(Boolean, default=False)
class SubcloudAudits(BASE, DCManagerBase):
"""Represents the various audits for a subcloud"""
__tablename__ = 'subcloud_audits'
__tablename__ = "subcloud_audits"
id = Column(Integer, primary_key=True, nullable=False)
subcloud_id = Column(
Integer, ForeignKey('subclouds.id', ondelete='CASCADE'), unique=True
)
audit_started_at = Column(
DateTime(timezone=False), default=datetime.datetime.min
)
audit_finished_at = Column(
DateTime(timezone=False), default=datetime.datetime.min
Integer, ForeignKey("subclouds.id", ondelete="CASCADE"), unique=True
)
audit_started_at = Column(DateTime(timezone=False), default=datetime.datetime.min)
audit_finished_at = Column(DateTime(timezone=False), default=datetime.datetime.min)
state_update_requested = Column(Boolean, nullable=False, default=False)
patch_audit_requested = Column(Boolean, nullable=False, default=False)
load_audit_requested = Column(Boolean, nullable=False, default=False)
firmware_audit_requested = Column(Boolean, nullable=False, default=False)
kubernetes_audit_requested = Column(Boolean, nullable=False, default=False)
kube_rootca_update_audit_requested = Column(
Boolean, nullable=False, default=False
)
kube_rootca_update_audit_requested = Column(Boolean, nullable=False, default=False)
spare_audit_requested = Column(Boolean, nullable=False, default=False)
spare2_audit_requested = Column(Boolean, nullable=False, default=False)
reserved = Column(Text)
@@ -231,8 +220,7 @@ class SubcloudStatus(BASE, DCManagerBase):
__tablename__ = "subcloud_status"
id = Column(Integer, primary_key=True, nullable=False)
subcloud_id = Column(Integer,
ForeignKey('subclouds.id', ondelete='CASCADE'))
subcloud_id = Column(Integer, ForeignKey("subclouds.id", ondelete="CASCADE"))
endpoint_type = Column(String(255))
sync_status = Column(String(255))
@@ -257,8 +245,7 @@ class SwUpdateOpts(BASE, DCManagerBase):
__tablename__ = "sw_update_opts"
id = Column(Integer, primary_key=True, nullable=False)
subcloud_id = Column(Integer,
ForeignKey('subclouds.id', ondelete='CASCADE'))
subcloud_id = Column(Integer, ForeignKey("subclouds.id", ondelete="CASCADE"))
storage_apply_type = Column(String(255))
worker_apply_type = Column(String(255))
@@ -288,26 +275,28 @@ class StrategyStep(BASE, DCManagerBase):
__tablename__ = "strategy_steps"
id = Column(Integer, primary_key=True, nullable=False)
subcloud_id = Column(Integer,
ForeignKey('subclouds.id', ondelete='CASCADE'),
unique=True)
subcloud_id = Column(
Integer, ForeignKey("subclouds.id", ondelete="CASCADE"), unique=True
)
stage = Column(Integer)
state = Column(String(255))
details = Column(String(255))
started_at = Column(DateTime)
finished_at = Column(DateTime)
subcloud = relationship('Subcloud', backref=backref("strategy_steps",
cascade="all,delete"))
subcloud = relationship(
"Subcloud", backref=backref("strategy_steps", cascade="all,delete")
)
class SubcloudAlarmSummary(BASE, DCManagerBase):
"""Represents a Distributed Cloud subcloud alarm aggregate"""
__tablename__ = 'subcloud_alarms'
__tablename__ = "subcloud_alarms"
id = Column(Integer, primary_key=True, nullable=False, autoincrement=True)
uuid = Column(String(36), unique=True)
name = Column('name', String(255), unique=True)
critical_alarms = Column('critical_alarms', Integer)
major_alarms = Column('major_alarms', Integer)
minor_alarms = Column('minor_alarms', Integer)
warnings = Column('warnings', Integer)
cloud_status = Column('cloud_status', String(64))
name = Column("name", String(255), unique=True)
critical_alarms = Column("critical_alarms", Integer)
major_alarms = Column("major_alarms", Integer)
minor_alarms = Column("minor_alarms", Integer)
warnings = Column("warnings", Integer)
cloud_status = Column("cloud_status", String(64))

View File

@@ -1,5 +1,5 @@
# Copyright (c) 2015 Ericsson AB.
# Copyright (c) 2017, 2019, 2021, 2022 Wind River Systems, Inc.
# Copyright (c) 2017, 2019, 2021, 2022, 2024 Wind River Systems, Inc.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
@@ -47,8 +47,8 @@ class LazyPluggable(object):
return getattr(backend, key)
IMPL = LazyPluggable('backend', sqlalchemy='dcmanager.db.sqlalchemy.api')
IMPL = LazyPluggable("backend", sqlalchemy="dcmanager.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 = [
"dcmanager/api",
"dcmanager/audit",
"dcmanager/common",
"dcmanager/db",
]