Add user_id echo in manila show/create/manage API
Add "user_id" detail when we run command
"manila show/create/manage ...". Make the operator know
which user created this share.
APIImpact
Closes-Bug: #1562846
Change-Id: I2858c7f63182288f354b96448f0970d3642d4bf7
diff --git a/manila_tempest_tests/config.py b/manila_tempest_tests/config.py
index 94ffb5f..4e51ad5 100644
--- a/manila_tempest_tests/config.py
+++ b/manila_tempest_tests/config.py
@@ -36,7 +36,7 @@
help="The minimum api microversion is configured to be the "
"value of the minimum microversion supported by Manila."),
cfg.StrOpt("max_api_microversion",
- default="2.15",
+ default="2.16",
help="The maximum api microversion is configured to be the "
"value of the latest microversion supported by Manila."),
cfg.StrOpt("region",
diff --git a/manila_tempest_tests/tests/api/admin/test_share_manage.py b/manila_tempest_tests/tests/api/admin/test_share_manage.py
index f1ec402..31269a7 100644
--- a/manila_tempest_tests/tests/api/admin/test_share_manage.py
+++ b/manila_tempest_tests/tests/api/admin/test_share_manage.py
@@ -83,13 +83,22 @@
data.append(creation_data)
if utils.is_microversion_ge(CONF.share.max_api_microversion, "2.8"):
data.append(creation_data)
+ if utils.is_microversion_ge(CONF.share.max_api_microversion, "2.16"):
+ data.append(creation_data)
shares_created = cls.create_shares(data)
cls.shares = []
# Load all share data (host, etc.)
for share in shares_created:
# Unmanage shares from manila
- cls.shares.append(cls.shares_client.get_share(share['id']))
+ get_share = cls.shares_v2_client.get_share(share['id'])
+ if utils.is_microversion_ge(
+ CONF.share.max_api_microversion, "2.9"):
+ get_share["export_locations"] = (
+ cls.shares_v2_client.list_share_export_locations(
+ share["id"])
+ )
+ cls.shares.append(get_share)
cls.shares_client.unmanage_share(share['id'])
cls.shares_client.wait_for_resource_deletion(
share_id=share['id'])
@@ -138,6 +147,11 @@
else:
self.assertFalse(managed_share['is_public'])
+ if utils.is_microversion_ge(version, "2.16"):
+ self.assertEqual(share['user_id'], managed_share['user_id'])
+ else:
+ self.assertNotIn('user_id', managed_share)
+
# Delete share
self.shares_v2_client.delete_share(managed_share['id'])
self.shares_v2_client.wait_for_resource_deletion(
@@ -157,6 +171,11 @@
self._test_manage(share=self.shares[3], is_public=True, version="2.8")
@test.attr(type=["gate", "smoke"])
+ @base.skip_if_microversion_not_supported("2.16")
+ def test_manage_show_user_id(self):
+ self._test_manage(share=self.shares[4], version="2.16")
+
+ @test.attr(type=["gate", "smoke"])
def test_manage(self):
# After 'unmanage' operation, share instance should be deleted.
# Assert not related to 'manage' test, but placed here for
diff --git a/manila_tempest_tests/tests/api/test_shares.py b/manila_tempest_tests/tests/api/test_shares.py
index 2057d22..760f2f0 100644
--- a/manila_tempest_tests/tests/api/test_shares.py
+++ b/manila_tempest_tests/tests/api/test_shares.py
@@ -84,6 +84,12 @@
detailed_elements.add('replication_type')
self.assertTrue(detailed_elements.issubset(share.keys()), msg)
+ # In v 2.16 and beyond, we add user_id in show/create/manage
+ # share echo.
+ if utils.is_microversion_supported('2.16'):
+ detailed_elements.add('user_id')
+ self.assertTrue(detailed_elements.issubset(share.keys()), msg)
+
# Delete share
self.shares_v2_client.delete_share(share['id'])
self.shares_v2_client.wait_for_resource_deletion(share_id=share['id'])
diff --git a/manila_tempest_tests/tests/api/test_shares_actions.py b/manila_tempest_tests/tests/api/test_shares_actions.py
index 1f37c2a..b00cef4 100644
--- a/manila_tempest_tests/tests/api/test_shares_actions.py
+++ b/manila_tempest_tests/tests/api/test_shares_actions.py
@@ -99,6 +99,8 @@
expected_keys.append("access_rules_status")
if utils.is_microversion_ge(version, '2.11'):
expected_keys.append("replication_type")
+ if utils.is_microversion_ge(version, '2.16'):
+ expected_keys.append("user_id")
actual_keys = list(share.keys())
[self.assertIn(key, actual_keys) for key in expected_keys]
@@ -151,6 +153,11 @@
self._get_share('2.11')
@test.attr(type=["gate", ])
+ @utils.skip_if_microversion_not_supported('2.16')
+ def test_get_share_with_user_id(self):
+ self._get_share('2.16')
+
+ @test.attr(type=["gate", ])
def test_list_shares(self):
# list shares
@@ -192,7 +199,8 @@
keys.append("access_rules_status")
if utils.is_microversion_ge(version, '2.11'):
keys.append("replication_type")
-
+ if utils.is_microversion_ge(version, '2.16'):
+ keys.append("user_id")
[self.assertIn(key, sh.keys()) for sh in shares for key in keys]
# our shares in list and have no duplicates
@@ -235,6 +243,11 @@
self._list_shares_with_detail('2.11')
@test.attr(type=["gate", ])
+ @utils.skip_if_microversion_not_supported('2.16')
+ def test_list_shares_with_user_id(self):
+ self._list_shares_with_detail('2.16')
+
+ @test.attr(type=["gate", ])
def test_list_shares_with_detail_filter_by_metadata(self):
filters = {'metadata': self.metadata}