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)
|
cluster = self._get_cluster_obj(cluster_id)
|
||||||
# TODO(agordeev): web.py does not support parsing of array arguments
|
# TODO(agordeev): web.py does not support parsing of array arguments
|
||||||
# in the queryset so we specify the input as comma-separated list
|
# in the queryset so we specify the input as comma-separated list
|
||||||
extension_names = list(self.get_param_as_set('extension_names',
|
extension_names = self.get_param_as_set('extension_names', default=[])
|
||||||
default=[]))
|
|
||||||
|
|
||||||
try:
|
data = self.checked_data(self.validator.validate_delete,
|
||||||
data = self.validator.validate_delete(extension_names,
|
data=extension_names, cluster=cluster)
|
||||||
cluster)
|
|
||||||
except errors.CannotFindExtension as exc:
|
|
||||||
raise self.http(400, exc.message)
|
|
||||||
|
|
||||||
remove_extensions_from_object(cluster, data)
|
remove_extensions_from_object(cluster, data)
|
||||||
raise self.http(204)
|
raise self.http(204)
|
||||||
|
|
|
@ -39,7 +39,7 @@ class ExtensionValidator(BasicValidator):
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def validate_delete(cls, extension_names, cluster):
|
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:
|
if not_found_extensions:
|
||||||
raise errors.CannotFindExtension(
|
raise errors.CannotFindExtension(
|
||||||
"No such extensions to disable: {0}".format(
|
"No such extensions to disable: {0}".format(
|
||||||
|
|
|
@ -298,7 +298,7 @@ class TestExtensionValidator(BaseTestCase):
|
||||||
cluster = mock.Mock()
|
cluster = mock.Mock()
|
||||||
cluster.extensions = global_exts
|
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):
|
def test_invalid_delete_extensions(self):
|
||||||
global_exts = 'volume_manager', 'bareon', 'ultralogger'
|
global_exts = 'volume_manager', 'bareon', 'ultralogger'
|
||||||
|
@ -308,7 +308,7 @@ class TestExtensionValidator(BaseTestCase):
|
||||||
|
|
||||||
with self.assertRaisesRegexp(errors.CannotFindExtension,
|
with self.assertRaisesRegexp(errors.CannotFindExtension,
|
||||||
'No such extensions to disable: invalid'):
|
'No such extensions to disable: invalid'):
|
||||||
ExtensionValidator.validate_delete(data, cluster)
|
ExtensionValidator.validate_delete(set(data), cluster)
|
||||||
|
|
||||||
def test_validate_extensions(self):
|
def test_validate_extensions(self):
|
||||||
global_exts = 'volume_manager', 'bareon', 'ultralogger'
|
global_exts = 'volume_manager', 'bareon', 'ultralogger'
|
||||||
|
|
Loading…
Reference in New Issue