summaryrefslogtreecommitdiff
path: root/ironic/tests/unit/db/test_api.py
diff options
context:
space:
mode:
authorDmitry Tantsur <dtantsur@protonmail.com>2020-09-07 18:50:53 +0200
committerDmitry Tantsur <dtantsur@protonmail.com>2020-09-22 15:39:36 +0200
commitd8dccc8d06017e79f2b49afec069a18b3c7413fc (patch)
tree7b1301027f3ea4c257bf25bfe7f3916fe53ab601 /ironic/tests/unit/db/test_api.py
parented0ef6cf59b9d85096b4e897667524a6cdd5da4c (diff)
downloadironic-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/test_api.py')
-rw-r--r--ironic/tests/unit/db/test_api.py62
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))