Remove list conversion for cluster extension handler
Gets rid of unnecessary conversion to list for accepted data as a set for DELETE handler and then passing it straight to validator without extra ordinary conversion back to set. Change-Id: Ie24d20f68b96feba4443214de47603c5802be613 Related-Bug: #1614526
This commit is contained in:
parent
b775fdcf20
commit
f72dd0967d
|
@ -596,14 +596,10 @@ class ClusterExtensionsHandler(BaseHandler):
|
|||
cluster = self._get_cluster_obj(cluster_id)
|
||||
# TODO(agordeev): web.py does not support parsing of array arguments
|
||||
# in the queryset so we specify the input as comma-separated list
|
||||
extension_names = list(self.get_param_as_set('extension_names',
|
||||
default=[]))
|
||||
extension_names = self.get_param_as_set('extension_names', default=[])
|
||||
|
||||
try:
|
||||
data = self.validator.validate_delete(extension_names,
|
||||
cluster)
|
||||
except errors.CannotFindExtension as exc:
|
||||
raise self.http(400, exc.message)
|
||||
data = self.checked_data(self.validator.validate_delete,
|
||||
data=extension_names, cluster=cluster)
|
||||
|
||||
remove_extensions_from_object(cluster, data)
|
||||
raise self.http(204)
|
||||
|
|
|
@ -39,7 +39,7 @@ class ExtensionValidator(BasicValidator):
|
|||
|
||||
@classmethod
|
||||
def validate_delete(cls, extension_names, cluster):
|
||||
not_found_extensions = set(extension_names) - set(cluster.extensions)
|
||||
not_found_extensions = extension_names - set(cluster.extensions)
|
||||
if not_found_extensions:
|
||||
raise errors.CannotFindExtension(
|
||||
"No such extensions to disable: {0}".format(
|
||||
|
|
|
@ -298,7 +298,7 @@ class TestExtensionValidator(BaseTestCase):
|
|||
cluster = mock.Mock()
|
||||
cluster.extensions = global_exts
|
||||
|
||||
ExtensionValidator.validate_delete(global_exts[:2], cluster)
|
||||
ExtensionValidator.validate_delete(set(global_exts[:2]), cluster)
|
||||
|
||||
def test_invalid_delete_extensions(self):
|
||||
global_exts = 'volume_manager', 'bareon', 'ultralogger'
|
||||
|
@ -308,7 +308,7 @@ class TestExtensionValidator(BaseTestCase):
|
|||
|
||||
with self.assertRaisesRegexp(errors.CannotFindExtension,
|
||||
'No such extensions to disable: invalid'):
|
||||
ExtensionValidator.validate_delete(data, cluster)
|
||||
ExtensionValidator.validate_delete(set(data), cluster)
|
||||
|
||||
def test_validate_extensions(self):
|
||||
global_exts = 'volume_manager', 'bareon', 'ultralogger'
|
||||
|
|
Loading…
Reference in New Issue