diff --git a/orm/services/flavor_manager/fms_rest/logic/flavor_logic.py b/orm/services/flavor_manager/fms_rest/logic/flavor_logic.py index 9e818582..4d59c493 100755 --- a/orm/services/flavor_manager/fms_rest/logic/flavor_logic.py +++ b/orm/services/flavor_manager/fms_rest/logic/flavor_logic.py @@ -381,13 +381,11 @@ def add_tenants(flavor_uuid, tenants, transaction_id): validate_tenants_regions_list(tenants.tenants, existing_region_list, 'create', datamanager) - # replace tenants.tenants with only the valid tenants - tenants.tenants = valid_tenants_list - else: + if not valid_tenants_list: raise ValueError("At least one valid tenant must be provided") - for tenant in tenants.tenants: + for tenant in valid_tenants_list: if not isinstance(tenant, basestring): raise ValueError("tenant type must be a string type," " got {} type".format(type(tenant))) diff --git a/orm/tests/unit/fms/test_flavor_logic.py b/orm/tests/unit/fms/test_flavor_logic.py index a52b7b34..341129fb 100755 --- a/orm/tests/unit/fms/test_flavor_logic.py +++ b/orm/tests/unit/fms/test_flavor_logic.py @@ -502,11 +502,13 @@ class TestFlavorLogic(FunctionalTest): @patch.object(flavor_logic, 'send_to_rds_if_needed') @patch.object(flavor_logic, 'get_flavor_by_uuid') - def test_add_tenants_success(self, mock_gfbu, mock_strin): + @patch.object(flavor_logic, 'validate_tenants_regions_list') + def test_add_tenants_success(self, mock_val, mock_gfbu, mock_strin): ret_flavor = MagicMock() tenants = ['test_tenant'] ret_flavor.flavor.tenants = tenants mock_gfbu.return_value = ret_flavor + mock_val.return_value = ['test_tenant'], ['test_region'] global error error = 31 injector.override_injected_dependency( @@ -519,11 +521,13 @@ class TestFlavorLogic(FunctionalTest): @patch.object(flavor_logic, 'send_to_rds_if_needed') @patch.object(flavor_logic, 'get_flavor_by_uuid') - def test_add_tenants_errors(self, mock_gfbu, mock_strin): + @patch.object(flavor_logic, 'validate_tenants_regions_list') + def test_add_tenants_errors(self, mock_val, mock_gfbu, mock_strin): ret_flavor = MagicMock() tenants = ['test_tenant'] ret_flavor.flavor.tenants = tenants mock_gfbu.return_value = ret_flavor + mock_val.return_value = ['test_tenant'], ['test_region'] global error error = 1 @@ -541,15 +545,16 @@ class TestFlavorLogic(FunctionalTest): TenantWrapper(tenants), 'transaction') + # test that no valid tenant found error = 31 - moq = MagicMock() - mock_strin.side_effect = exc.FlushError( - 'conflicts with persistent instance') - self.assertRaises(flavor_logic.ConflictError, + mock_val.return_value = [], ['test_region'] + self.assertRaises(ValueError, flavor_logic.add_tenants, 'uuid', TenantWrapper(tenants), 'transaction') + mock_val.return_value = ['test_tenant'], ['test_region'] + mock_strin.side_effect = exc.FlushError('') self.assertRaises(exc.FlushError, flavor_logic.add_tenants, 'uuid',