
With [1] change the load references needs to be removed from the code. This commit removes the references regarding load such as software_load and target_load and changed to sw_version. Also creates a Host_v8 table and migrate from Host_v7 to Host_v8. Test Plan: PASS: SX install/bootstrap/unlocked. PASS: SX stx10 -> stx11 upgrade. PASS: DX Upgrade stx10 -> stx11 PASS: DX Rollback stx11 -> stx10 Story: 2011357 Task: 51752 [1]: https://review.opendev.org/c/starlingx/config/+/942000 Depends-On: https://review.opendev.org/c/starlingx/config/+/942000 Depends-On: https://review.opendev.org/c/starlingx/nfv/+/945400 Change-Id: I082df0c200fa9a3e7cb073ec7787ea88998d859c Signed-off-by: Luis Eduardo Bonatti <luizeduardo.bonatti@windriver.com>
63 lines
2.0 KiB
Python
Executable File
63 lines
2.0 KiB
Python
Executable File
#
|
|
# Copyright (c) 2016 Wind River Systems, Inc.
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
import json
|
|
|
|
from nfv_vim.database import model
|
|
|
|
from nfv_common import debug
|
|
|
|
DLOG = debug.debug_get_logger('nfv_vim.database')
|
|
|
|
|
|
def _migrate_hosts_v7_to_v8(session, hosts_v7, hosts_v8):
|
|
"""
|
|
Replace software_load, target_load with sw_version
|
|
"""
|
|
if 0 == len(hosts_v8):
|
|
for host_v7 in hosts_v7:
|
|
host_v8 = model.Host_v8()
|
|
host_v8.data = host_v7.data
|
|
nfvi_host_data = json.loads(host_v7.nfvi_host_data)
|
|
nfvi_host_data['sw_version'] = None
|
|
nfvi_host_data.pop('software_load', None)
|
|
nfvi_host_data.pop('target_load', None)
|
|
host_v8.nfvi_host_data = json.dumps(nfvi_host_data)
|
|
session.add(host_v8)
|
|
|
|
|
|
def _migrate_hosts_v6_to_v7(session, hosts_v6, hosts_v7):
|
|
"""
|
|
Migrate host_v6 table to host_v7 table
|
|
"""
|
|
if 0 == len(hosts_v7):
|
|
for host_v6 in hosts_v6:
|
|
host_v7 = model.Host_v7()
|
|
host_v7.data = host_v6.data
|
|
nfvi_host_data = json.loads(host_v6.nfvi_host_data)
|
|
nfvi_host_data['device_image_update'] = None
|
|
host_v7.nfvi_host_data = json.dumps(nfvi_host_data)
|
|
session.add(host_v7)
|
|
|
|
|
|
def migrate_tables(session, table_names):
|
|
"""
|
|
Migrate database tables
|
|
"""
|
|
if 'hosts_v6' in table_names and 'hosts_v7' in table_names:
|
|
hosts_v6_query = session.query(model.Host_v6)
|
|
hosts_v6 = hosts_v6_query.all()
|
|
hosts_v7_query = session.query(model.Host_v7)
|
|
hosts_v7 = hosts_v7_query.all()
|
|
_migrate_hosts_v6_to_v7(session, hosts_v6, hosts_v7)
|
|
hosts_v6_query.delete()
|
|
if 'hosts_v7' in table_names and 'hosts_v8' in table_names:
|
|
hosts_v7_query = session.query(model.Host_v7)
|
|
hosts_v7 = hosts_v7_query.all()
|
|
hosts_v8_query = session.query(model.Host_v8)
|
|
hosts_v8 = hosts_v8_query.all()
|
|
_migrate_hosts_v7_to_v8(session, hosts_v7, hosts_v8)
|
|
hosts_v7_query.delete()
|