Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[test][db migrator] Enhancement: handle the case that no buffer change in the latest database version #1566

Merged
merged 1 commit into from
May 3, 2021
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions tests/db_migrator_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,16 @@ def check_appl_db(self, result, expected):
for key in keys:
assert expected.get_all(expected.APPL_DB, key) == result.get_all(result.APPL_DB, key)

def advance_version_for_expected_database(self, migrated_db, expected_db):
# In case there are new db versions greater than the latest one that mellanox buffer migrator is interested,
# we just advance the database version in the expected database to make the test pass
expected_dbversion = expected_db.get_entry('VERSIONS', 'DATABASE')
dbmgtr_dbversion = migrated_db.get_entry('VERSIONS', 'DATABASE')
if expected_dbversion and dbmgtr_dbversion:
if expected_dbversion['VERSION'] == self.version_list[-1] and dbmgtr_dbversion['VERSION'] > expected_dbversion['VERSION']:
expected_dbversion['VERSION'] = dbmgtr_dbversion['VERSION']
expected_db.set_entry('VERSIONS', 'DATABASE', expected_dbversion)

@pytest.mark.parametrize('scenario',
['empty-config',
'non-default-config',
Expand All @@ -93,6 +103,7 @@ def test_mellanox_buffer_migrator_negative_cold_reboot(self, scenario):
dbmgtr = db_migrator.DBMigrator(None)
dbmgtr.migrate()
expected_db = self.mock_dedicated_config_db(db_after_migrate)
self.advance_version_for_expected_database(dbmgtr.configDB, expected_db.cfgdb)
self.check_config_db(dbmgtr.configDB, expected_db.cfgdb)
assert not dbmgtr.mellanox_buffer_migrator.is_buffer_config_default

Expand All @@ -119,8 +130,6 @@ def test_mellanox_buffer_migrator_for_cold_reboot(self, sku_version, topo):
sku, start_version = sku_version
version = start_version
start_index = self.version_list.index(start_version)
# Eventually, the config db should be migrated to the latest version
expected_db = self.mock_dedicated_config_db(self.make_db_name_by_sku_topo_version(sku, topo, self.version_list[-1]))

# start_version represents the database version from which the SKU is supported
# For each SKU,
Expand All @@ -130,6 +139,9 @@ def test_mellanox_buffer_migrator_for_cold_reboot(self, sku_version, topo):
import db_migrator
dbmgtr = db_migrator.DBMigrator(None)
dbmgtr.migrate()
# Eventually, the config db should be migrated to the latest version
expected_db = self.mock_dedicated_config_db(self.make_db_name_by_sku_topo_version(sku, topo, self.version_list[-1]))
self.advance_version_for_expected_database(dbmgtr.configDB, expected_db.cfgdb)
self.check_config_db(dbmgtr.configDB, expected_db.cfgdb)
assert dbmgtr.mellanox_buffer_migrator.is_buffer_config_default

Expand All @@ -145,6 +157,7 @@ def mellanox_buffer_migrator_warm_reboot_runner(self, input_config_db, input_app
import db_migrator
dbmgtr = db_migrator.DBMigrator(None)
dbmgtr.migrate()
self.advance_version_for_expected_database(dbmgtr.configDB, expected_config_db.cfgdb)
assert dbmgtr.mellanox_buffer_migrator.is_buffer_config_default == is_buffer_config_default_expected
self.check_config_db(dbmgtr.configDB, expected_config_db.cfgdb)
self.check_appl_db(dbmgtr.appDB, expected_appl_db)
Expand Down Expand Up @@ -173,6 +186,7 @@ def test_mellanox_buffer_migrator_for_warm_reboot(self, sku, topo):
self.mellanox_buffer_migrator_warm_reboot_runner(input_db_name, input_db_name, expected_db_name, expected_db_name, True)

def test_mellanox_buffer_migrator_negative_nondefault_for_warm_reboot(self):
device_info.get_sonic_version_info = get_sonic_version_info_mlnx
neethajohn marked this conversation as resolved.
Show resolved Hide resolved
expected_config_db = 'non-default-config-expected'
expected_appl_db = 'non-default-expected'
input_config_db = 'non-default-config-input'
Expand Down