From 79c47a0919f2a353b863d58d55d97c40fe25b555 Mon Sep 17 00:00:00 2001 From: ghanshyam Date: Tue, 7 Apr 2015 10:25:22 +0900 Subject: [PATCH] Merge availability_zone tests between v2 and v2.1 Currently v2 and v2.1 have separate functional tests and their corresponding sample files. As v2 and v2.1 are supposed to be identical, there is overhead to maintain two set of functional tests and sample files. We can have one set of tests which can run for both v2 and v2.1. This commit merges availability_zone functional tests. In V2.1 os-access-ip is separate plugin where in v2 it was mixed in server plugin itself. So os-access-ip extension is enabled to run merged functional tests for both v2 and v2.1. Also enabling some required extension for v2 tests. Change-Id: I82e7011da212cb4699c4c19b95523a54a6c2f259 --- .../OS-EXT-AZ/server-get-resp.json | 55 ------------------ .../OS-EXT-AZ/servers-detail-resp.json | 57 ------------------- .../availability-zone-post-req.json | 0 .../availability-zone-post-resp.json | 0 .../server-get-resp.json | 10 ++-- .../servers-detail-resp.json | 10 ++-- .../OS-EXT-AZ/server-get-resp.json.tpl | 55 ------------------ .../OS-EXT-AZ/servers-detail-resp.json.tpl | 57 ------------------- .../availability-zone-details-resp.json.tpl | 48 ---------------- .../availability-zone-get-resp.json.tpl | 18 ------ nova/tests/functional/test_api_samples.py | 36 ------------ .../availability-zone-post-req.json.tpl | 0 .../availability-zone-post-resp.json.tpl | 0 .../server-get-resp.json.tpl | 10 ++-- .../servers-detail-resp.json.tpl | 10 ++-- .../functional/v3/test_availability_zone.py | 15 +++++ .../v3/test_extended_availability_zone.py | 30 ++++++++++ 17 files changed, 69 insertions(+), 342 deletions(-) delete mode 100644 doc/api_samples/OS-EXT-AZ/server-get-resp.json delete mode 100644 doc/api_samples/OS-EXT-AZ/servers-detail-resp.json rename doc/{ => v3}/api_samples/os-availability-zone/availability-zone-post-req.json (100%) rename doc/{ => v3}/api_samples/os-availability-zone/availability-zone-post-resp.json (100%) delete mode 100644 nova/tests/functional/api_samples/OS-EXT-AZ/server-get-resp.json.tpl delete mode 100644 nova/tests/functional/api_samples/OS-EXT-AZ/servers-detail-resp.json.tpl delete mode 100644 nova/tests/functional/api_samples/os-availability-zone/availability-zone-details-resp.json.tpl delete mode 100644 nova/tests/functional/api_samples/os-availability-zone/availability-zone-get-resp.json.tpl rename nova/tests/functional/{ => v3}/api_samples/os-availability-zone/availability-zone-post-req.json.tpl (100%) rename nova/tests/functional/{ => v3}/api_samples/os-availability-zone/availability-zone-post-resp.json.tpl (100%) diff --git a/doc/api_samples/OS-EXT-AZ/server-get-resp.json b/doc/api_samples/OS-EXT-AZ/server-get-resp.json deleted file mode 100644 index c2f0fb2ba7a8..000000000000 --- a/doc/api_samples/OS-EXT-AZ/server-get-resp.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "server": { - "OS-EXT-AZ:availability_zone": "nova", - "accessIPv4": "", - "accessIPv6": "", - "addresses": { - "private": [ - { - "addr": "192.168.0.3", - "version": 4 - } - ] - }, - "created": "2013-01-30T13:38:47Z", - "flavor": { - "id": "1", - "links": [ - { - "href": "http://openstack.example.com/openstack/flavors/1", - "rel": "bookmark" - } - ] - }, - "hostId": "d38ea49a033b0efaf80c165de63f4805c886dfb94dc0fe731227eccb", - "id": "fb7babfd-e1a1-4add-90e6-3558180983c7", - "image": { - "id": "70a599e0-31e7-49b7-b260-868f441e862b", - "links": [ - { - "href": "http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b", - "rel": "bookmark" - } - ] - }, - "links": [ - { - "href": "http://openstack.example.com/v2/openstack/servers/fb7babfd-e1a1-4add-90e6-3558180983c7", - "rel": "self" - }, - { - "href": "http://openstack.example.com/openstack/servers/fb7babfd-e1a1-4add-90e6-3558180983c7", - "rel": "bookmark" - } - ], - "metadata": { - "My Server Name": "Apache1" - }, - "name": "new-server-test", - "progress": 0, - "status": "ACTIVE", - "tenant_id": "openstack", - "updated": "2013-01-30T13:38:49Z", - "user_id": "fake" - } -} diff --git a/doc/api_samples/OS-EXT-AZ/servers-detail-resp.json b/doc/api_samples/OS-EXT-AZ/servers-detail-resp.json deleted file mode 100644 index 2ecea959a12e..000000000000 --- a/doc/api_samples/OS-EXT-AZ/servers-detail-resp.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "servers": [ - { - "OS-EXT-AZ:availability_zone": "nova", - "accessIPv4": "", - "accessIPv6": "", - "addresses": { - "private": [ - { - "addr": "192.168.0.3", - "version": 4 - } - ] - }, - "created": "2013-01-30T13:26:51Z", - "flavor": { - "id": "1", - "links": [ - { - "href": "http://openstack.example.com/openstack/flavors/1", - "rel": "bookmark" - } - ] - }, - "hostId": "60c988a84401fa15888a32833e5848e9caa99a45778310ba7b363165", - "id": "3dbf5b00-dabc-41ff-b6ab-4409568fae9d", - "image": { - "id": "70a599e0-31e7-49b7-b260-868f441e862b", - "links": [ - { - "href": "http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b", - "rel": "bookmark" - } - ] - }, - "links": [ - { - "href": "http://openstack.example.com/v2/openstack/servers/3dbf5b00-dabc-41ff-b6ab-4409568fae9d", - "rel": "self" - }, - { - "href": "http://openstack.example.com/openstack/servers/3dbf5b00-dabc-41ff-b6ab-4409568fae9d", - "rel": "bookmark" - } - ], - "metadata": { - "My Server Name": "Apache1" - }, - "name": "new-server-test", - "progress": 0, - "status": "ACTIVE", - "tenant_id": "openstack", - "updated": "2013-01-30T13:26:52Z", - "user_id": "fake" - } - ] -} diff --git a/doc/api_samples/os-availability-zone/availability-zone-post-req.json b/doc/v3/api_samples/os-availability-zone/availability-zone-post-req.json similarity index 100% rename from doc/api_samples/os-availability-zone/availability-zone-post-req.json rename to doc/v3/api_samples/os-availability-zone/availability-zone-post-req.json diff --git a/doc/api_samples/os-availability-zone/availability-zone-post-resp.json b/doc/v3/api_samples/os-availability-zone/availability-zone-post-resp.json similarity index 100% rename from doc/api_samples/os-availability-zone/availability-zone-post-resp.json rename to doc/v3/api_samples/os-availability-zone/availability-zone-post-resp.json diff --git a/doc/v3/api_samples/os-extended-availability-zone/server-get-resp.json b/doc/v3/api_samples/os-extended-availability-zone/server-get-resp.json index bbede8753963..c3962cac156a 100644 --- a/doc/v3/api_samples/os-extended-availability-zone/server-get-resp.json +++ b/doc/v3/api_samples/os-extended-availability-zone/server-get-resp.json @@ -1,5 +1,7 @@ { "server": { + "accessIPv4": "1.2.3.4", + "accessIPv6": "80fe::", "addresses": { "private": [ { @@ -15,7 +17,7 @@ "id": "1", "links": [ { - "href": "http://openstack.example.com/flavors/1", + "href": "http://openstack.example.com/openstack/flavors/1", "rel": "bookmark" } ] @@ -26,7 +28,7 @@ "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { - "href": "http://openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b", + "href": "http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] @@ -34,11 +36,11 @@ "key_name": null, "links": [ { - "href": "http://openstack.example.com/v3/servers/f22e4521-d03a-4e9f-9fd3-016b9e227219", + "href": "http://openstack.example.com/v2/openstack/servers/f22e4521-d03a-4e9f-9fd3-016b9e227219", "rel": "self" }, { - "href": "http://openstack.example.com/servers/f22e4521-d03a-4e9f-9fd3-016b9e227219", + "href": "http://openstack.example.com/openstack/servers/f22e4521-d03a-4e9f-9fd3-016b9e227219", "rel": "bookmark" } ], diff --git a/doc/v3/api_samples/os-extended-availability-zone/servers-detail-resp.json b/doc/v3/api_samples/os-extended-availability-zone/servers-detail-resp.json index b0db0f910285..1a03b3380f69 100644 --- a/doc/v3/api_samples/os-extended-availability-zone/servers-detail-resp.json +++ b/doc/v3/api_samples/os-extended-availability-zone/servers-detail-resp.json @@ -1,6 +1,8 @@ { "servers": [ { + "accessIPv4": "1.2.3.4", + "accessIPv6": "80fe::", "addresses": { "private": [ { @@ -16,7 +18,7 @@ "id": "1", "links": [ { - "href": "http://openstack.example.com/flavors/1", + "href": "http://openstack.example.com/openstack/flavors/1", "rel": "bookmark" } ] @@ -27,7 +29,7 @@ "id": "70a599e0-31e7-49b7-b260-868f441e862b", "links": [ { - "href": "http://openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b", + "href": "http://openstack.example.com/openstack/images/70a599e0-31e7-49b7-b260-868f441e862b", "rel": "bookmark" } ] @@ -35,11 +37,11 @@ "key_name": null, "links": [ { - "href": "http://openstack.example.com/v3/servers/55f43fa2-dc7c-4c0b-b21a-76f9abe516f9", + "href": "http://openstack.example.com/v2/openstack/servers/55f43fa2-dc7c-4c0b-b21a-76f9abe516f9", "rel": "self" }, { - "href": "http://openstack.example.com/servers/55f43fa2-dc7c-4c0b-b21a-76f9abe516f9", + "href": "http://openstack.example.com/openstack/servers/55f43fa2-dc7c-4c0b-b21a-76f9abe516f9", "rel": "bookmark" } ], diff --git a/nova/tests/functional/api_samples/OS-EXT-AZ/server-get-resp.json.tpl b/nova/tests/functional/api_samples/OS-EXT-AZ/server-get-resp.json.tpl deleted file mode 100644 index a852da12074e..000000000000 --- a/nova/tests/functional/api_samples/OS-EXT-AZ/server-get-resp.json.tpl +++ /dev/null @@ -1,55 +0,0 @@ -{ - "server": { - "updated": "%(isotime)s", - "created": "%(isotime)s", - "OS-EXT-AZ:availability_zone": "nova", - "accessIPv4": "", - "accessIPv6": "", - "addresses": { - "private": [ - { - "addr": "%(ip)s", - "version": 4 - } - ] - }, - "flavor": { - "id": "1", - "links": [ - { - "href": "%(host)s/openstack/flavors/1", - "rel": "bookmark" - } - ] - }, - "hostId": "%(hostid)s", - "id": "%(uuid)s", - "image": { - "id": "%(uuid)s", - "links": [ - { - "href": "%(host)s/openstack/images/%(uuid)s", - "rel": "bookmark" - } - ] - }, - "links": [ - { - "href": "%(host)s/v2/openstack/servers/%(uuid)s", - "rel": "self" - }, - { - "href": "%(host)s/openstack/servers/%(uuid)s", - "rel": "bookmark" - } - ], - "metadata": { - "My Server Name": "Apache1" - }, - "name": "new-server-test", - "progress": 0, - "status": "ACTIVE", - "tenant_id": "openstack", - "user_id": "fake" - } -} diff --git a/nova/tests/functional/api_samples/OS-EXT-AZ/servers-detail-resp.json.tpl b/nova/tests/functional/api_samples/OS-EXT-AZ/servers-detail-resp.json.tpl deleted file mode 100644 index b0ddc7c051c8..000000000000 --- a/nova/tests/functional/api_samples/OS-EXT-AZ/servers-detail-resp.json.tpl +++ /dev/null @@ -1,57 +0,0 @@ -{ - "servers": [ - { - "updated": "%(isotime)s", - "created": "%(isotime)s", - "OS-EXT-AZ:availability_zone": "nova", - "accessIPv4": "", - "accessIPv6": "", - "addresses": { - "private": [ - { - "addr": "%(ip)s", - "version": 4 - } - ] - }, - "flavor": { - "id": "1", - "links": [ - { - "href": "%(host)s/openstack/flavors/1", - "rel": "bookmark" - } - ] - }, - "hostId": "%(hostid)s", - "id": "%(uuid)s", - "image": { - "id": "%(uuid)s", - "links": [ - { - "href": "%(host)s/openstack/images/%(uuid)s", - "rel": "bookmark" - } - ] - }, - "links": [ - { - "href": "%(host)s/v2/openstack/servers/%(id)s", - "rel": "self" - }, - { - "href": "%(host)s/openstack/servers/%(id)s", - "rel": "bookmark" - } - ], - "metadata": { - "My Server Name": "Apache1" - }, - "name": "new-server-test", - "progress": 0, - "status": "ACTIVE", - "tenant_id": "openstack", - "user_id": "fake" - } - ] -} diff --git a/nova/tests/functional/api_samples/os-availability-zone/availability-zone-details-resp.json.tpl b/nova/tests/functional/api_samples/os-availability-zone/availability-zone-details-resp.json.tpl deleted file mode 100644 index 07529dfc938a..000000000000 --- a/nova/tests/functional/api_samples/os-availability-zone/availability-zone-details-resp.json.tpl +++ /dev/null @@ -1,48 +0,0 @@ -{ - "availabilityZoneInfo": [ - { - "zoneName": "zone-1", - "zoneState": { - "available": true - }, - "hosts": { - "fake_host-1": { - "nova-compute": { - "active": true, - "available": true, - "updated_at": "2012-12-26T14:45:25.000000" - } - } - } - }, - { - "zoneName": "internal", - "zoneState": { - "available": true - }, - "hosts": { - "fake_host-1": { - "nova-sched": { - "active": true, - "available": true, - "updated_at": "2012-12-26T14:45:25.000000" - } - }, - "fake_host-2": { - "nova-network": { - "active": true, - "available": false, - "updated_at": "2012-12-26T14:45:24.000000" - } - } - } - }, - { - "zoneName": "zone-2", - "zoneState": { - "available": false - }, - "hosts": null - } - ] -} \ No newline at end of file diff --git a/nova/tests/functional/api_samples/os-availability-zone/availability-zone-get-resp.json.tpl b/nova/tests/functional/api_samples/os-availability-zone/availability-zone-get-resp.json.tpl deleted file mode 100644 index c512d182fb84..000000000000 --- a/nova/tests/functional/api_samples/os-availability-zone/availability-zone-get-resp.json.tpl +++ /dev/null @@ -1,18 +0,0 @@ -{ - "availabilityZoneInfo": [ - { - "zoneName": "zone-1", - "zoneState": { - "available": true - }, - "hosts": null - }, - { - "zoneName": "zone-2", - "zoneState": { - "available": false - }, - "hosts": null - } - ] -} \ No newline at end of file diff --git a/nova/tests/functional/test_api_samples.py b/nova/tests/functional/test_api_samples.py index 725b499b3a0a..e15698912c2f 100644 --- a/nova/tests/functional/test_api_samples.py +++ b/nova/tests/functional/test_api_samples.py @@ -248,22 +248,6 @@ class UsedLimitsForAdminSamplesJsonTest(ApiSampleTestBaseV2): response, 200) -class AvailabilityZoneJsonTest(ServersSampleBase): - extension_name = ("nova.api.openstack.compute.contrib.availability_zone." - "Availability_zone") - - def test_create_availability_zone(self): - subs = { - 'image_id': fake.get_valid_image_id(), - 'host': self._get_host(), - "availability_zone": "nova" - } - response = self._do_post('servers', 'availability-zone-post-req', subs) - subs.update(self._get_regexes()) - self._verify_response('availability-zone-post-resp', subs, - response, 202) - - class ExtendedIpsSampleJsonTests(ServersSampleBase): extension_name = ("nova.api.openstack.compute.contrib" ".extended_ips.Extended_ips") @@ -386,26 +370,6 @@ class BlockDeviceMappingV2BootJsonTest(ServersSampleBase): return self._post_server() -class ExtendedAvailabilityZoneJsonTests(ServersSampleBase): - extension_name = ("nova.api.openstack.compute.contrib" - ".extended_availability_zone" - ".Extended_availability_zone") - - def test_show(self): - uuid = self._post_server() - response = self._do_get('servers/%s' % uuid) - subs = self._get_regexes() - subs['hostid'] = '[a-f0-9]+' - self._verify_response('server-get-resp', subs, response, 200) - - def test_detail(self): - self._post_server() - response = self._do_get('servers/detail') - subs = self._get_regexes() - subs['hostid'] = '[a-f0-9]+' - self._verify_response('servers-detail-resp', subs, response, 200) - - class ServerGroupQuotas_LimitsSampleJsonTest(LimitsSampleJsonTest): sample_dir = None extension_name = ("nova.api.openstack.compute.contrib." diff --git a/nova/tests/functional/api_samples/os-availability-zone/availability-zone-post-req.json.tpl b/nova/tests/functional/v3/api_samples/os-availability-zone/availability-zone-post-req.json.tpl similarity index 100% rename from nova/tests/functional/api_samples/os-availability-zone/availability-zone-post-req.json.tpl rename to nova/tests/functional/v3/api_samples/os-availability-zone/availability-zone-post-req.json.tpl diff --git a/nova/tests/functional/api_samples/os-availability-zone/availability-zone-post-resp.json.tpl b/nova/tests/functional/v3/api_samples/os-availability-zone/availability-zone-post-resp.json.tpl similarity index 100% rename from nova/tests/functional/api_samples/os-availability-zone/availability-zone-post-resp.json.tpl rename to nova/tests/functional/v3/api_samples/os-availability-zone/availability-zone-post-resp.json.tpl diff --git a/nova/tests/functional/v3/api_samples/os-extended-availability-zone/server-get-resp.json.tpl b/nova/tests/functional/v3/api_samples/os-extended-availability-zone/server-get-resp.json.tpl index d6436738effe..9195edad6c5f 100644 --- a/nova/tests/functional/v3/api_samples/os-extended-availability-zone/server-get-resp.json.tpl +++ b/nova/tests/functional/v3/api_samples/os-extended-availability-zone/server-get-resp.json.tpl @@ -3,6 +3,8 @@ "updated": "%(isotime)s", "created": "%(isotime)s", "OS-EXT-AZ:availability_zone": "nova", + "accessIPv4": "%(access_ip_v4)s", + "accessIPv6": "%(access_ip_v6)s", "addresses": { "private": [ { @@ -17,7 +19,7 @@ "id": "1", "links": [ { - "href": "%(host)s/flavors/1", + "href": "%(host)s/openstack/flavors/1", "rel": "bookmark" } ] @@ -28,18 +30,18 @@ "id": "%(uuid)s", "links": [ { - "href": "%(host)s/images/%(uuid)s", + "href": "%(host)s/openstack/images/%(uuid)s", "rel": "bookmark" } ] }, "links": [ { - "href": "%(host)s/v3/servers/%(uuid)s", + "href": "%(host)s/v2/openstack/servers/%(uuid)s", "rel": "self" }, { - "href": "%(host)s/servers/%(uuid)s", + "href": "%(host)s/openstack/servers/%(uuid)s", "rel": "bookmark" } ], diff --git a/nova/tests/functional/v3/api_samples/os-extended-availability-zone/servers-detail-resp.json.tpl b/nova/tests/functional/v3/api_samples/os-extended-availability-zone/servers-detail-resp.json.tpl index c81acaf935db..2671d014bada 100644 --- a/nova/tests/functional/v3/api_samples/os-extended-availability-zone/servers-detail-resp.json.tpl +++ b/nova/tests/functional/v3/api_samples/os-extended-availability-zone/servers-detail-resp.json.tpl @@ -4,6 +4,8 @@ "updated": "%(isotime)s", "created": "%(isotime)s", "OS-EXT-AZ:availability_zone": "nova", + "accessIPv4": "%(access_ip_v4)s", + "accessIPv6": "%(access_ip_v6)s", "addresses": { "private": [ { @@ -18,7 +20,7 @@ "id": "1", "links": [ { - "href": "%(host)s/flavors/1", + "href": "%(host)s/openstack/flavors/1", "rel": "bookmark" } ] @@ -29,18 +31,18 @@ "id": "%(uuid)s", "links": [ { - "href": "%(host)s/images/%(uuid)s", + "href": "%(host)s/openstack/images/%(uuid)s", "rel": "bookmark" } ] }, "links": [ { - "href": "%(host)s/v3/servers/%(id)s", + "href": "%(host)s/v2/openstack/servers/%(id)s", "rel": "self" }, { - "href": "%(host)s/servers/%(id)s", + "href": "%(host)s/openstack/servers/%(id)s", "rel": "bookmark" } ], diff --git a/nova/tests/functional/v3/test_availability_zone.py b/nova/tests/functional/v3/test_availability_zone.py index 269b7c651d3e..e0caecfcc7c7 100644 --- a/nova/tests/functional/v3/test_availability_zone.py +++ b/nova/tests/functional/v3/test_availability_zone.py @@ -18,11 +18,26 @@ from nova.tests.functional.v3 import test_servers CONF = cfg.CONF CONF.import_opt('manager', 'nova.cells.opts', group='cells') +CONF.import_opt('osapi_compute_extension', + 'nova.api.openstack.compute.extensions') class AvailabilityZoneJsonTest(test_servers.ServersSampleBase): ADMIN_API = True extension_name = "os-availability-zone" + extra_extensions_to_load = ["os-access-ips"] + # TODO(gmann): Overriding '_api_version' till all functional tests + # are merged between v2 and v2.1. After that base class variable + # itself can be changed to 'v2' + _api_version = 'v2' + + def _get_flags(self): + f = super(AvailabilityZoneJsonTest, self)._get_flags() + f['osapi_compute_extension'] = CONF.osapi_compute_extension[:] + f['osapi_compute_extension'].append( + 'nova.api.openstack.compute.contrib.availability_zone.' + 'Availability_zone') + return f def _setup_services(self): self.conductor = self.start_service('conductor', diff --git a/nova/tests/functional/v3/test_extended_availability_zone.py b/nova/tests/functional/v3/test_extended_availability_zone.py index 50a6dad4dddf..8b97a8845507 100644 --- a/nova/tests/functional/v3/test_extended_availability_zone.py +++ b/nova/tests/functional/v3/test_extended_availability_zone.py @@ -13,17 +13,45 @@ # License for the specific language governing permissions and limitations # under the License. +from oslo_config import cfg + from nova.tests.functional.v3 import test_servers +CONF = cfg.CONF +CONF.import_opt('osapi_compute_extension', + 'nova.api.openstack.compute.extensions') + class ExtendedAvailabilityZoneJsonTests(test_servers.ServersSampleBase): extension_name = "os-extended-availability-zone" + extra_extensions_to_load = ["os-access-ips"] + # TODO(gmann): Overriding '_api_version' till all functional tests + # are merged between v2 and v2.1. After that base class variable + # itself can be changed to 'v2' + _api_version = 'v2' + + def _get_flags(self): + f = super(ExtendedAvailabilityZoneJsonTests, self)._get_flags() + f['osapi_compute_extension'] = CONF.osapi_compute_extension[:] + f['osapi_compute_extension'].append( + 'nova.api.openstack.compute.contrib.keypairs.Keypairs') + f['osapi_compute_extension'].append( + 'nova.api.openstack.compute.contrib.extended_availability_zone.' + 'Extended_availability_zone') + f['osapi_compute_extension'].append( + 'nova.api.openstack.compute.contrib.extended_ips.Extended_ips') + f['osapi_compute_extension'].append( + 'nova.api.openstack.compute.contrib.extended_ips_mac.' + 'Extended_ips_mac') + return f def test_show(self): uuid = self._post_server() response = self._do_get('servers/%s' % uuid) subs = self._get_regexes() subs['hostid'] = '[a-f0-9]+' + subs['access_ip_v4'] = '1.2.3.4' + subs['access_ip_v6'] = '80fe::' self._verify_response('server-get-resp', subs, response, 200) def test_detail(self): @@ -31,4 +59,6 @@ class ExtendedAvailabilityZoneJsonTests(test_servers.ServersSampleBase): response = self._do_get('servers/detail') subs = self._get_regexes() subs['hostid'] = '[a-f0-9]+' + subs['access_ip_v4'] = '1.2.3.4' + subs['access_ip_v6'] = '80fe::' self._verify_response('servers-detail-resp', subs, response, 200)