Cluster.extenstions shouldn't have duplications
PUT converts input data to set(), so ClusterExtensionsHandler will never produce duplications in a list of enabled extensions. Change-Id: I3631f9ba8bebc24102c13544d8463afdddd0bef4 Blueprint: extensions-management Related-Bug: #1614526
This commit is contained in:
parent
b8a2ee2c07
commit
06686519a0
|
@ -548,6 +548,6 @@ class ClusterExtensionsHandler(BaseHandler):
|
|||
* 404 (cluster not found in db)
|
||||
"""
|
||||
cluster = self._get_cluster_obj(cluster_id)
|
||||
data = self.checked_data()
|
||||
data = set(self.checked_data())
|
||||
set_extensions_for_object(cluster, data)
|
||||
return cluster.extensions
|
||||
|
|
|
@ -199,7 +199,8 @@ def _collect_data_pipelines_for_cluster(cluster):
|
|||
|
||||
|
||||
def _collect_extensions_for_cluster(cluster):
|
||||
return [get_extension(e) for e in set(cluster.extensions)]
|
||||
for e in cluster.extensions:
|
||||
yield get_extension(e)
|
||||
|
||||
|
||||
def fire_callback_on_node_serialization_for_deployment(node, node_data):
|
||||
|
|
|
@ -418,6 +418,25 @@ class TestClusterExtension(BaseIntegrationTest):
|
|||
self.assertEqual(resp.status_code, 200)
|
||||
self.assertItemsEqual(resp.json_body, enabled_extensions)
|
||||
|
||||
def test_enabling_duplicated_extensions(self):
|
||||
extensions = 'bareon', 'volume_manager'
|
||||
requested_extensions = 2 * extensions
|
||||
|
||||
with mock.patch(
|
||||
'nailgun.api.v1.validators.extension.get_all_extensions',
|
||||
return_value=make_mock_extensions(extensions)):
|
||||
resp = self.app.put(
|
||||
reverse(
|
||||
'ClusterExtensionsHandler',
|
||||
kwargs={'cluster_id': self.cluster.id}),
|
||||
jsonutils.dumps(requested_extensions),
|
||||
headers=self.default_headers,
|
||||
)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
|
||||
self.db.refresh(self.cluster)
|
||||
self.assertItemsEqual(self.cluster.extensions, extensions)
|
||||
|
||||
def test_enabling_extensions(self):
|
||||
extensions = 'bareon', 'volume_manager'
|
||||
|
||||
|
|
Loading…
Reference in New Issue