diff options
author | Dean Troyer <dtroyer@gmail.com> | 2018-03-05 14:18:41 -0600 |
---|---|---|
committer | Matt Riedemann <mriedem.os@gmail.com> | 2018-04-20 10:08:06 -0400 |
commit | 6c8967dc8eeea1d64b8b7a17bee1f8d1aa647bed (patch) | |
tree | f6f4ba8bcd588c8d7d47565cd2ed4a8f231691f1 /openstackclient/tests/unit/api/test_compute_v2.py | |
parent | cc3dd2abe23b5363a963206e89371be493d43ad7 (diff) | |
download | python-openstackclient-3.14.2.tar.gz |
Re-implement novaclient bits removed in 10.03.14.2
a)
/os-floating-ips was removed in Compute API 2.36 and from novaclient's
Python API in 10.0
Add to api.computev2:
floating_ip_add()
floating_ip_remove()
Convert add floating IP command to nova-net/neutron split:
"server add floating ip"
"server remove floating ip"
b)
/os-hosts was removed in Compute API 2.43 and from novaclient's
Python API in 10.0.
Add to api.computev2:
host_list()
host_set()
host_show()
Convert host commands to use intenal api:
"host list"
"host set"
"host show"
c)
The introduction of the Network-style commands into the server group
broke cliff's autoprogram directive as it executes the get_parser() methods
without fully initializing the Command object.
NOTE: This is really three reviews squashed to get through the gate in one pass.
Closes-Bug: #1745795
Change-Id: I5116086f9a9e4b2b31a744bf8f4558c79f0bfe59
(cherry picked from commit 53e7aab7ed4d6c981ca067c1db8bce290a5f0055)
Diffstat (limited to 'openstackclient/tests/unit/api/test_compute_v2.py')
-rw-r--r-- | openstackclient/tests/unit/api/test_compute_v2.py | 176 |
1 files changed, 176 insertions, 0 deletions
diff --git a/openstackclient/tests/unit/api/test_compute_v2.py b/openstackclient/tests/unit/api/test_compute_v2.py index 4f3b8031..edf5258f 100644 --- a/openstackclient/tests/unit/api/test_compute_v2.py +++ b/openstackclient/tests/unit/api/test_compute_v2.py @@ -55,6 +55,43 @@ class TestFloatingIP(TestComputeAPIv2): FAKE_FLOATING_IP_RESP_2, ] + FAKE_SERVER_RESP_1 = { + 'id': 1, + 'name': 'server1', + } + + def test_floating_ip_add_id(self): + self.requests_mock.register_uri( + 'POST', + FAKE_URL + '/servers/1/action', + json={'server': {}}, + status_code=200, + ) + self.requests_mock.register_uri( + 'GET', + FAKE_URL + '/servers/1', + json={'server': self.FAKE_SERVER_RESP_1}, + status_code=200, + ) + ret = self.api.floating_ip_add('1', '1.0.1.0') + self.assertEqual(200, ret.status_code) + + def test_floating_ip_add_name(self): + self.requests_mock.register_uri( + 'POST', + FAKE_URL + '/servers/1/action', + json={'server': {}}, + status_code=200, + ) + self.requests_mock.register_uri( + 'GET', + FAKE_URL + '/servers/server1', + json={'server': self.FAKE_SERVER_RESP_1}, + status_code=200, + ) + ret = self.api.floating_ip_add('server1', '1.0.1.0') + self.assertEqual(200, ret.status_code) + def test_floating_ip_create(self): self.requests_mock.register_uri( 'POST', @@ -144,6 +181,36 @@ class TestFloatingIP(TestComputeAPIv2): ret = self.api.floating_ip_list() self.assertEqual(self.LIST_FLOATING_IP_RESP, ret) + def test_floating_ip_remove_id(self): + self.requests_mock.register_uri( + 'POST', + FAKE_URL + '/servers/1/action', + status_code=200, + ) + self.requests_mock.register_uri( + 'GET', + FAKE_URL + '/servers/1', + json={'server': self.FAKE_SERVER_RESP_1}, + status_code=200, + ) + ret = self.api.floating_ip_remove('1', '1.0.1.0') + self.assertEqual(200, ret.status_code) + + def test_floating_ip_remove_name(self): + self.requests_mock.register_uri( + 'POST', + FAKE_URL + '/servers/1/action', + status_code=200, + ) + self.requests_mock.register_uri( + 'GET', + FAKE_URL + '/servers/server1', + json={'server': self.FAKE_SERVER_RESP_1}, + status_code=200, + ) + ret = self.api.floating_ip_remove('server1', '1.0.1.0') + self.assertEqual(200, ret.status_code) + class TestFloatingIPPool(TestComputeAPIv2): @@ -163,6 +230,115 @@ class TestFloatingIPPool(TestComputeAPIv2): self.assertEqual(self.LIST_FLOATING_IP_POOL_RESP, ret) +class TestHost(TestComputeAPIv2): + + FAKE_HOST_RESP_1 = { + "zone": "internal", + "host_name": "myhost", + "service": "conductor", + } + + FAKE_HOST_RESP_2 = { + "zone": "internal", + "host_name": "myhost", + "service": "scheduler", + } + + FAKE_HOST_RESP_3 = { + "zone": "nova", + "host_name": "myhost", + "service": "compute", + } + + LIST_HOST_RESP = [ + FAKE_HOST_RESP_1, + FAKE_HOST_RESP_2, + FAKE_HOST_RESP_3, + ] + + def test_host_list_no_options(self): + self.requests_mock.register_uri( + 'GET', + FAKE_URL + '/os-hosts', + json={'hosts': self.LIST_HOST_RESP}, + status_code=200, + ) + ret = self.api.host_list() + self.assertEqual(self.LIST_HOST_RESP, ret) + + def test_host_list_zone(self): + self.requests_mock.register_uri( + 'GET', + FAKE_URL + '/os-hosts?zone=nova', + json={'hosts': [self.FAKE_HOST_RESP_3]}, + status_code=200, + ) + self.requests_mock.register_uri( + 'GET', + FAKE_URL + '/os-hosts', + json={'hosts': [self.FAKE_HOST_RESP_3]}, + status_code=200, + ) + ret = self.api.host_list(zone='nova') + self.assertEqual([self.FAKE_HOST_RESP_3], ret) + + def test_host_set_none(self): + ret = self.api.host_set(host='myhost') + self.assertIsNone(ret) + + def test_host_set(self): + self.requests_mock.register_uri( + 'PUT', + FAKE_URL + '/os-hosts/myhost', + json={}, + status_code=200, + ) + ret = self.api.host_set(host='myhost', status='enabled') + self.assertEqual({}, ret) + + def test_host_show(self): + FAKE_RESOURCE_1 = { + "cpu": 2, + "disk_gb": 1028, + "host": "c1a7de0ac9d94e4baceae031d05caae3", + "memory_mb": 8192, + "project": "(total)", + } + FAKE_RESOURCE_2 = { + "cpu": 0, + "disk_gb": 0, + "host": "c1a7de0ac9d94e4baceae031d05caae3", + "memory_mb": 512, + "project": "(used_now)", + } + FAKE_RESOURCE_3 = { + "cpu": 0, + "disk_gb": 0, + "host": "c1a7de0ac9d94e4baceae031d05caae3", + "memory_mb": 0, + "project": "(used_max)", + } + FAKE_HOST_RESP = [ + {'resource': FAKE_RESOURCE_1}, + {'resource': FAKE_RESOURCE_2}, + {'resource': FAKE_RESOURCE_3}, + ] + FAKE_HOST_LIST = [ + FAKE_RESOURCE_1, + FAKE_RESOURCE_2, + FAKE_RESOURCE_3, + ] + + self.requests_mock.register_uri( + 'GET', + FAKE_URL + '/os-hosts/myhost', + json={'host': FAKE_HOST_RESP}, + status_code=200, + ) + ret = self.api.host_show(host='myhost') + self.assertEqual(FAKE_HOST_LIST, ret) + + class TestNetwork(TestComputeAPIv2): FAKE_NETWORK_RESP = { |