diff options
author | Dmitry Tantsur <dtantsur@protonmail.com> | 2020-09-07 18:50:53 +0200 |
---|---|---|
committer | Dmitry Tantsur <dtantsur@protonmail.com> | 2020-09-22 15:39:36 +0200 |
commit | d8dccc8d06017e79f2b49afec069a18b3c7413fc (patch) | |
tree | 7b1301027f3ea4c257bf25bfe7f3916fe53ab601 /ironic/tests/unit/db | |
parent | ed0ef6cf59b9d85096b4e897667524a6cdd5da4c (diff) | |
download | ironic-d8dccc8d06017e79f2b49afec069a18b3c7413fc.tar.gz |
Deprecate the iscsi deploy interface
This change marks the iscsi deploy interface as deprecated and
stops enabling it by default.
An online data migration is provided for iscsi->direct, provided that:
1) the direct deploy is enabled,
2) image_download_source!=swift.
The CI coverage for iscsi deploy is left only on standalone jobs.
Story: #2008114
Task: #40830
Change-Id: I4a66401b24c49c705861e0745867b7fc706a7509
Diffstat (limited to 'ironic/tests/unit/db')
-rw-r--r-- | ironic/tests/unit/db/test_api.py | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/ironic/tests/unit/db/test_api.py b/ironic/tests/unit/db/test_api.py index f855e9c91..9252e1d59 100644 --- a/ironic/tests/unit/db/test_api.py +++ b/ironic/tests/unit/db/test_api.py @@ -237,3 +237,65 @@ class UpdateToLatestVersionsTestCase(base.DbTestCase): for uuid in nodes: node = self.dbapi.get_node_by_uuid(uuid) self.assertEqual(self.node_ver, node.version) + + +class MigrateFromIscsiTestCase(base.DbTestCase): + + def setUp(self): + super(MigrateFromIscsiTestCase, self).setUp() + self.context = context.get_admin_context() + self.dbapi = db_api.get_instance() + self.config(enabled_deploy_interfaces='direct') + + def test_empty_db(self): + self.assertEqual( + (0, 0), self.dbapi.migrate_from_iscsi_deploy(self.context, 10)) + + def test_already_direct_exists(self): + utils.create_test_node(deploy_interface='direct') + self.assertEqual( + (0, 0), self.dbapi.update_to_latest_versions(self.context, 10)) + + def test_migrate_by_2(self): + utils.create_test_node(deploy_interface='direct') + for _i in range(3): + uuid = uuidutils.generate_uuid() + utils.create_test_node(uuid=uuid, deploy_interface='iscsi') + self.assertEqual( + (3, 2), self.dbapi.migrate_from_iscsi_deploy(self.context, 2)) + self.assertEqual( + (1, 1), self.dbapi.migrate_from_iscsi_deploy(self.context, 2)) + + def test_migrate_all(self): + utils.create_test_node(deploy_interface='direct') + for _i in range(3): + uuid = uuidutils.generate_uuid() + utils.create_test_node(uuid=uuid, deploy_interface='iscsi') + self.assertEqual( + (3, 3), self.dbapi.migrate_from_iscsi_deploy(self.context, 0)) + + def test_migration_impossible(self): + self.config(enabled_deploy_interfaces='iscsi') + for _i in range(3): + uuid = uuidutils.generate_uuid() + utils.create_test_node(uuid=uuid, deploy_interface='iscsi') + self.assertEqual( + (0, 0), self.dbapi.migrate_from_iscsi_deploy(self.context, 0)) + + def test_migration_impossible2(self): + self.config(image_download_source='swift', group='agent') + for _i in range(3): + uuid = uuidutils.generate_uuid() + utils.create_test_node(uuid=uuid, deploy_interface='iscsi') + self.assertEqual( + (0, 0), self.dbapi.migrate_from_iscsi_deploy(self.context, 0)) + + def test_force_migration(self): + self.config(enabled_deploy_interfaces='iscsi') + utils.create_test_node(deploy_interface='direct') + for _i in range(3): + uuid = uuidutils.generate_uuid() + utils.create_test_node(uuid=uuid, deploy_interface='iscsi') + self.assertEqual( + (3, 3), self.dbapi.migrate_from_iscsi_deploy(self.context, 0, + force=True)) |