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:
Alexander Gordeev 2016-09-13 11:15:23 +03:00
parent b775fdcf20
commit f72dd0967d
3 changed files with 6 additions and 10 deletions

View File

@ -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)

View File

@ -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(

View File

@ -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'