summaryrefslogtreecommitdiff
path: root/troveclient/tests/osc
diff options
context:
space:
mode:
authorZhao Chao <zhaochao1984@gmail.com>2018-02-13 19:29:33 +0800
committerZhao Chao <zhaochao1984@gmail.com>2018-02-13 20:11:23 +0800
commita2da920ef477bf6c1e408e421c8a6d3fe9205601 (patch)
tree4727e3461226478c46856725d6b4a301fcd1403e /troveclient/tests/osc
parent0b28b04ebbfaed981f4e00e69e4c7a8e0ed75395 (diff)
downloadpython-troveclient-a2da920ef477bf6c1e408e421c8a6d3fe9205601.tar.gz
Add cluster-grow and cluster-shrink to OSC
This change adds database support to python-openstackclient project for the cluster-grow and cluster-shrink commands. The trove command cluster-grow is now: openstack database cluster grow The trove command cluster-shrink is now: openstack database cluster shrink Change-Id: I449e7f7d841ea266611ff79f8a41f6e730fced3c Partially-Implements: blueprint trove-support-in-python-openstackclient Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
Diffstat (limited to 'troveclient/tests/osc')
-rw-r--r--troveclient/tests/osc/v1/fakes.py4
-rw-r--r--troveclient/tests/osc/v1/test_database_clusters.py48
2 files changed, 52 insertions, 0 deletions
diff --git a/troveclient/tests/osc/v1/fakes.py b/troveclient/tests/osc/v1/fakes.py
index 85a1207..be06968 100644
--- a/troveclient/tests/osc/v1/fakes.py
+++ b/troveclient/tests/osc/v1/fakes.py
@@ -51,10 +51,14 @@ class FakeClusters(object):
fake_clusters = fakes.FakeHTTPClient().get_clusters()[2]['clusters']
fake_cluster = (fakes.FakeHTTPClient()
.get_clusters_cls_1234()[2]['cluster'])
+ fake_cluster_member = fake_cluster['instances'][1]
def get_clusters_cls_1234(self):
return clusters.Cluster(None, self.fake_cluster)
+ def get_clusters_member_2(self):
+ return instances.Instance(None, self.fake_cluster_member)
+
class FakeConfigurations(object):
fake_config = (fakes.FakeHTTPClient().get_configurations()
diff --git a/troveclient/tests/osc/v1/test_database_clusters.py b/troveclient/tests/osc/v1/test_database_clusters.py
index 70fc9c3..1d85c16 100644
--- a/troveclient/tests/osc/v1/test_database_clusters.py
+++ b/troveclient/tests/osc/v1/test_database_clusters.py
@@ -233,3 +233,51 @@ class TestDatabaseClusterForceDelete(TestClusters):
self.assertRaises(exceptions.CommandError,
self.cmd.take_action,
parsed_args)
+
+
+class TestDatabaseClusterGrow(TestClusters):
+
+ def setUp(self):
+ super(TestDatabaseClusterGrow, self).setUp()
+ self.cmd = database_clusters.GrowDatabaseCluster(self.app, None)
+
+ @mock.patch.object(utils, 'find_resource')
+ @mock.patch.object(database_clusters, '_parse_instance_options')
+ def test_cluster_grow(self, mock_parse_instance_opts,
+ mock_find_resource):
+ args = ['test-clstr',
+ '--instance',
+ 'name=test-clstr-member-3,flavor=3']
+ parsed_instance_opts = [
+ {'name': 'test-clstr-member-3',
+ 'flavor': 3}
+ ]
+ mock_parse_instance_opts.return_value = parsed_instance_opts
+ mock_find_resource.return_value = args[0]
+
+ parsed_args = self.check_parser(self.cmd, args, [])
+ result = self.cmd.take_action(parsed_args)
+ self.cluster_client.grow.assert_called_with(
+ 'test-clstr',
+ instances=parsed_instance_opts)
+ self.assertIsNone(result)
+
+
+class TestDatabaseClusterShrink(TestClusters):
+
+ def setUp(self):
+ super(TestDatabaseClusterShrink, self).setUp()
+ self.cmd = database_clusters.ShrinkDatabaseCluster(self.app, None)
+ self.cluster_member = self.fake_clusters.get_clusters_member_2()
+
+ @mock.patch.object(utils, 'find_resource')
+ def test_cluster_grow(self, mock_find_resource):
+ args = ['test-clstr', 'test-clstr-member-2']
+ mock_find_resource.side_effect = [
+ args[0], self.cluster_member]
+
+ parsed_args = self.check_parser(self.cmd, args, [])
+ result = self.cmd.take_action(parsed_args)
+ self.cluster_client.shrink.assert_called_with('test-clstr',
+ [{'id': 'member-2'}])
+ self.assertIsNone(result)