From acc7084889dd1f497081d14a688472550e6913e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ionu=C8=9B=20B=C3=AEru?= Date: Wed, 21 Oct 2020 16:09:53 +0300 Subject: [PATCH] Fix validation for master_lb_enabled Currently master_lb_enabled can be enabled at cluster creation but validation is only done for cluster_template. We need to validate in cluster. Fix testing task: 41535 story: 2007634 story: 2008487 Change-Id: Icf32de2b803aa160dc3b7993e128deff11d02fcb --- magnum/api/attr_validator.py | 2 +- magnum/tests/unit/api/controllers/v1/test_bay.py | 2 +- magnum/tests/unit/api/controllers/v1/test_cluster.py | 3 ++- magnum/tests/unit/db/utils.py | 2 +- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/magnum/api/attr_validator.py b/magnum/api/attr_validator.py index fc2f44dda9..9a2fe753d4 100644 --- a/magnum/api/attr_validator.py +++ b/magnum/api/attr_validator.py @@ -209,7 +209,7 @@ def validate_os_resources(context, cluster_template, cluster=None): def validate_master_count(cluster, cluster_template): if cluster['master_count'] > 1 and \ - not cluster_template['master_lb_enabled']: + not cluster['master_lb_enabled']: raise exception.InvalidParameterValue(_( "master_count must be 1 when master_lb_enabled is False")) diff --git a/magnum/tests/unit/api/controllers/v1/test_bay.py b/magnum/tests/unit/api/controllers/v1/test_bay.py index 5b37907683..7657affa63 100644 --- a/magnum/tests/unit/api/controllers/v1/test_bay.py +++ b/magnum/tests/unit/api/controllers/v1/test_bay.py @@ -803,7 +803,7 @@ class TestPost(api_base.FunctionalTest): cluster_template = obj_utils.create_test_cluster_template( self.context, name='foo', uuid='foo', master_lb_enabled=False) bdict = apiutils.bay_post_data(baymodel_id=cluster_template.name, - master_count=3) + master_count=3, master_lb_enabled=False) response = self.post_json('/bays', bdict, expect_errors=True) self.assertEqual('application/json', response.content_type) self.assertEqual(400, response.status_int) diff --git a/magnum/tests/unit/api/controllers/v1/test_cluster.py b/magnum/tests/unit/api/controllers/v1/test_cluster.py index 29c2483c8b..6ab7284f79 100644 --- a/magnum/tests/unit/api/controllers/v1/test_cluster.py +++ b/magnum/tests/unit/api/controllers/v1/test_cluster.py @@ -845,7 +845,8 @@ class TestPost(api_base.FunctionalTest): cluster_template = obj_utils.create_test_cluster_template( self.context, name='foo', uuid='foo', master_lb_enabled=False) bdict = apiutils.cluster_post_data( - cluster_template_id=cluster_template.name, master_count=3) + cluster_template_id=cluster_template.name, master_count=3, + master_lb_enabled=False) response = self.post_json('/clusters', bdict, expect_errors=True) self.assertEqual('application/json', response.content_type) self.assertEqual(400, response.status_int) diff --git a/magnum/tests/unit/db/utils.py b/magnum/tests/unit/db/utils.py index aab0f6afe9..264c7529ae 100644 --- a/magnum/tests/unit/db/utils.py +++ b/magnum/tests/unit/db/utils.py @@ -101,7 +101,7 @@ def get_test_cluster(**kw): 'fixed_network': kw.get('fixed_network', None), 'fixed_subnet': kw.get('fixed_subnet', None), 'floating_ip_enabled': kw.get('floating_ip_enabled', True), - 'master_lb_enabled': kw.get('master_lb_enabled', False), + 'master_lb_enabled': kw.get('master_lb_enabled', True), } if kw.pop('for_api_use', False):