78 lines
3.5 KiB
Python
78 lines
3.5 KiB
Python
# Copyright (c) 2023 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
import sqlalchemy
|
|
|
|
ENGINE = 'InnoDB',
|
|
CHARSET = 'utf8'
|
|
|
|
|
|
def upgrade(migrate_engine):
|
|
meta = sqlalchemy.MetaData(bind=migrate_engine)
|
|
|
|
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))
|
|
|
|
# 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('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
|
|
)
|
|
subcloud_peer_group.create()
|
|
# Add the 'peer_greoup_id' column to the subclouds table.
|
|
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('heartbeat_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
|
|
)
|
|
system_peer.create()
|
|
|
|
|
|
def downgrade(migrate_engine):
|
|
raise NotImplementedError('Database downgrade is unsupported.')
|