80 lines
2.2 KiB
Python
80 lines
2.2 KiB
Python
########################################################################
|
|
#
|
|
# Copyright (c) 2018 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
########################################################################
|
|
|
|
import uuid
|
|
|
|
from datetime import datetime
|
|
from sqlalchemy import Integer, String, Boolean, DateTime
|
|
from sqlalchemy import Column, MetaData, Table, ForeignKey
|
|
|
|
ENGINE = 'InnoDB'
|
|
CHARSET = 'utf8'
|
|
|
|
|
|
def _populate_ptp_table(migrate_engine, meta, ptp, i_system):
|
|
"""This function inserts all the initial data about journals,
|
|
into the ptp table.
|
|
"""
|
|
|
|
sys = list(i_system.select().where(i_system.c.uuid is not None).execute())
|
|
if len(sys) > 0:
|
|
ptp_insert = ptp.insert()
|
|
ptp_uuid = str(uuid.uuid4())
|
|
values = {'created_at': datetime.now(),
|
|
'updated_at': None,
|
|
'deleted_at': None,
|
|
'uuid': ptp_uuid,
|
|
'enabled': False,
|
|
'mode': 'hardware',
|
|
'transport': 'l2',
|
|
'mechanism': 'e2e',
|
|
'system_id': sys[0].id,
|
|
}
|
|
ptp_insert.execute(values)
|
|
|
|
|
|
def upgrade(migrate_engine):
|
|
|
|
meta = MetaData()
|
|
meta.bind = migrate_engine
|
|
|
|
i_system = Table('i_system', meta, autoload=True)
|
|
ptp = Table(
|
|
'ptp',
|
|
meta,
|
|
Column('created_at', DateTime),
|
|
Column('updated_at', DateTime),
|
|
Column('deleted_at', DateTime),
|
|
|
|
Column('id', Integer, primary_key=True, nullable=False),
|
|
Column('uuid', String(36), unique=True),
|
|
|
|
Column('enabled', Boolean, default=False),
|
|
Column('mode', String(16), default='hardware'),
|
|
Column('transport', String(4), default='l2'),
|
|
Column('mechanism', String(4), default='e2e'),
|
|
|
|
Column('system_id', Integer,
|
|
ForeignKey('i_system.id', ondelete="CASCADE"),
|
|
nullable=True),
|
|
|
|
mysql_engine=ENGINE,
|
|
mysql_charset=CHARSET,
|
|
)
|
|
ptp.create()
|
|
# Populate the new ptp table with the initial data
|
|
_populate_ptp_table(migrate_engine, meta, ptp, i_system)
|
|
|
|
|
|
def downgrade(migrate_engine):
|
|
meta = MetaData()
|
|
meta.bind = migrate_engine
|
|
|
|
ptp = Table('ptp', meta, autoload=True)
|
|
ptp.drop()
|