From ac96356fd5adf017d8d188492d8ee5bda4b49017 Mon Sep 17 00:00:00 2001 From: Lingxian Kong Date: Wed, 12 Aug 2020 22:06:41 +1200 Subject: [PATCH] Fix create instance Change-Id: I750434c7ebc9038b0acf0e657768f57981817e1f --- troveclient/osc/v1/database_instances.py | 2 +- .../tests/osc/v1/test_database_instances.py | 83 +++++++++++++++++++ 2 files changed, 84 insertions(+), 1 deletion(-) diff --git a/troveclient/osc/v1/database_instances.py b/troveclient/osc/v1/database_instances.py index 9935420b..ee4b1558 100644 --- a/troveclient/osc/v1/database_instances.py +++ b/troveclient/osc/v1/database_instances.py @@ -86,7 +86,7 @@ def set_attributes_for_print_detail(instance): info['fault_details'] = instance.fault['details'] if hasattr(instance, 'access'): info['public'] = instance.access["is_public"] - info['allowed_cidrs'] = instance.access["allowed_cidrs"] + info['allowed_cidrs'] = instance.access.get('allowed_cidrs', []) info.pop("access", None) info.pop('links', None) diff --git a/troveclient/tests/osc/v1/test_database_instances.py b/troveclient/tests/osc/v1/test_database_instances.py index 2ffd84d8..19ef30e2 100644 --- a/troveclient/tests/osc/v1/test_database_instances.py +++ b/troveclient/tests/osc/v1/test_database_instances.py @@ -19,6 +19,7 @@ from oslo_utils import uuidutils from troveclient import common from troveclient.osc.v1 import database_instances from troveclient.tests.osc.v1 import fakes +from troveclient.v1 import instances class TestInstances(fakes.TestDatabasev1): @@ -239,6 +240,88 @@ class TestDatabaseInstanceCreate(TestInstances): self.assertEqual(self.columns, columns) self.assertEqual(self.values, data) + def test_instance_create_without_allowed_cidrs(self): + resp = { + "id": "a1fea1cf-18ad-48ab-bdfd-fce99a4b834e", + "name": "test-mysql", + "status": "BUILD", + "flavor": { + "id": "a48ea749-7ee3-4003-8aae-eb4e79773e2d" + }, + "datastore": { + "type": "mysql", + "version": "5.7.29" + }, + "region": "RegionOne", + "access": { + "is_public": True + }, + "volume": { + "size": 1 + }, + "created": "2020-08-12T09:41:47", + "updated": "2020-08-12T09:41:47", + "service_status_updated": "2020-08-12T09:41:47" + } + self.instance_client.create.return_value = instances.Instance( + mock.MagicMock(), resp) + + args = [ + 'test-mysql', + '--flavor', 'a48ea749-7ee3-4003-8aae-eb4e79773e2d', + '--size', '1', + '--datastore', "mysql", + '--datastore-version', "5.7.29", + '--nic', 'net-id=net1', + '--is-public' + ] + verifylist = [ + ('name', 'test-mysql'), + ('flavor', 'a48ea749-7ee3-4003-8aae-eb4e79773e2d'), + ('size', 1), + ('datastore', "mysql"), + ('datastore_version', "5.7.29"), + ('nics', 'net-id=net1'), + ('is_public', True), + ('allowed_cidrs', None) + ] + + parsed_args = self.check_parser(self.cmd, args, verifylist) + columns, data = self.cmd.take_action(parsed_args) + + expected_columns = ( + 'allowed_cidrs', + 'created', + 'datastore', + 'datastore_version', + 'flavor', + 'id', + 'name', + 'public', + 'region', + 'service_status_updated', + 'status', + 'updated', + 'volume', + ) + expected_values = ( + [], + "2020-08-12T09:41:47", + "mysql", + "5.7.29", + "a48ea749-7ee3-4003-8aae-eb4e79773e2d", + "a1fea1cf-18ad-48ab-bdfd-fce99a4b834e", + "test-mysql", + True, + "RegionOne", + "2020-08-12T09:41:47", + "BUILD", + "2020-08-12T09:41:47", + 1, + ) + self.assertEqual(expected_columns, columns) + self.assertEqual(expected_values, data) + class TestDatabaseInstanceResetStatus(TestInstances):