From 970fcf7cfac8a6e3a3c3c97ac7e73cfb4de00a06 Mon Sep 17 00:00:00 2001 From: ghanshyam Date: Tue, 14 Apr 2015 16:11:59 +0900 Subject: [PATCH] Merge server personality 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 servers personality functional tests. Also inherit personality tests from ServersSampleBase to reuse code. 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 run merged functional tests for both v2 and v2.1. Note- V2 has no separate personality tests. This was added as separate plugin in v2.1 Change-Id: I0e61ad236c0168977cad89432490f803eb3a61fd --- .../server-action-rebuild-req.json | 2 ++ .../server-action-rebuild-resp.json | 10 +++++--- .../os-personality/server-post-resp.json | 4 +-- .../server-action-rebuild-req.json.tpl | 2 ++ .../server-action-rebuild-resp.json.tpl | 10 +++++--- .../os-personality/server-post-resp.json.tpl | 4 +-- nova/tests/functional/v3/test_personality.py | 25 ++++++++----------- 7 files changed, 31 insertions(+), 26 deletions(-) diff --git a/doc/v3/api_samples/os-personality/server-action-rebuild-req.json b/doc/v3/api_samples/os-personality/server-action-rebuild-req.json index 2d82ec7835..4394a47c16 100644 --- a/doc/v3/api_samples/os-personality/server-action-rebuild-req.json +++ b/doc/v3/api_samples/os-personality/server-action-rebuild-req.json @@ -1,5 +1,7 @@ { "rebuild": { + "accessIPv4" : "1.2.3.4", + "accessIPv6" : "80fe::", "imageRef": "http://glance.openstack.example.com/images/70a599e0-31e7-49b7-b260-868f441e862b", "name": "new-server-test", "metadata": { diff --git a/doc/v3/api_samples/os-personality/server-action-rebuild-resp.json b/doc/v3/api_samples/os-personality/server-action-rebuild-resp.json index 4b2e5e0383..360ef1d056 100644 --- a/doc/v3/api_samples/os-personality/server-action-rebuild-resp.json +++ b/doc/v3/api_samples/os-personality/server-action-rebuild-resp.json @@ -1,5 +1,7 @@ { "server": { + "accessIPv4" : "1.2.3.4", + "accessIPv6" : "80fe::", "addresses": { "private": [ { @@ -14,7 +16,7 @@ "id": "1", "links": [ { - "href": "http://openstack.example.com/flavors/1", + "href": "http://openstack.example.com/openstack/flavors/1", "rel": "bookmark" } ] @@ -25,18 +27,18 @@ "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" } ] }, "links": [ { - "href": "http://openstack.example.com/v3/servers/53a63a19-c145-47f8-9ae5-b39d6bff33ec", + "href": "http://openstack.example.com/v2/openstack/servers/53a63a19-c145-47f8-9ae5-b39d6bff33ec", "rel": "self" }, { - "href": "http://openstack.example.com/servers/53a63a19-c145-47f8-9ae5-b39d6bff33ec", + "href": "http://openstack.example.com/openstack/servers/53a63a19-c145-47f8-9ae5-b39d6bff33ec", "rel": "bookmark" } ], diff --git a/doc/v3/api_samples/os-personality/server-post-resp.json b/doc/v3/api_samples/os-personality/server-post-resp.json index 07cd1854fe..6008e075b4 100644 --- a/doc/v3/api_samples/os-personality/server-post-resp.json +++ b/doc/v3/api_samples/os-personality/server-post-resp.json @@ -4,11 +4,11 @@ "id": "934760e1-2b0b-4f9e-a916-eac1e69839dc", "links": [ { - "href": "http://openstack.example.com/v3/servers/934760e1-2b0b-4f9e-a916-eac1e69839dc", + "href": "http://openstack.example.com/v2/openstack/servers/934760e1-2b0b-4f9e-a916-eac1e69839dc", "rel": "self" }, { - "href": "http://openstack.example.com/servers/934760e1-2b0b-4f9e-a916-eac1e69839dc", + "href": "http://openstack.example.com/openstack/servers/934760e1-2b0b-4f9e-a916-eac1e69839dc", "rel": "bookmark" } ] diff --git a/nova/tests/functional/v3/api_samples/os-personality/server-action-rebuild-req.json.tpl b/nova/tests/functional/v3/api_samples/os-personality/server-action-rebuild-req.json.tpl index fc4e1ee994..e443ded0d6 100644 --- a/nova/tests/functional/v3/api_samples/os-personality/server-action-rebuild-req.json.tpl +++ b/nova/tests/functional/v3/api_samples/os-personality/server-action-rebuild-req.json.tpl @@ -1,5 +1,7 @@ { "rebuild": { + "accessIPv4" : "%(access_ip_v4)s", + "accessIPv6" : "%(access_ip_v6)s", "imageRef": "%(glance_host)s/images/%(image_id)s", "name": "new-server-test", "metadata": { diff --git a/nova/tests/functional/v3/api_samples/os-personality/server-action-rebuild-resp.json.tpl b/nova/tests/functional/v3/api_samples/os-personality/server-action-rebuild-resp.json.tpl index 81a29e4339..06357e0400 100644 --- a/nova/tests/functional/v3/api_samples/os-personality/server-action-rebuild-resp.json.tpl +++ b/nova/tests/functional/v3/api_samples/os-personality/server-action-rebuild-resp.json.tpl @@ -1,5 +1,7 @@ { "server": { + "accessIPv4": "%(access_ip_v4)s", + "accessIPv6": "%(access_ip_v6)s", "addresses": { "private": [ { @@ -14,7 +16,7 @@ "id": "1", "links": [ { - "href": "%(host)s/flavors/1", + "href": "%(host)s/openstack/flavors/1", "rel": "bookmark" } ] @@ -25,18 +27,18 @@ "id": "%(image_id)s", "links": [ { - "href": "%(host)s/images/%(image_id)s", + "href": "%(host)s/openstack/images/%(image_id)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-personality/server-post-resp.json.tpl b/nova/tests/functional/v3/api_samples/os-personality/server-post-resp.json.tpl index 71654b4b8a..abbc7cf6b2 100644 --- a/nova/tests/functional/v3/api_samples/os-personality/server-post-resp.json.tpl +++ b/nova/tests/functional/v3/api_samples/os-personality/server-post-resp.json.tpl @@ -4,11 +4,11 @@ "id": "%(id)s", "links": [ { - "href": "http://openstack.example.com/v3/servers/%(uuid)s", + "href": "http://openstack.example.com/v2/openstack/servers/%(uuid)s", "rel": "self" }, { - "href": "http://openstack.example.com/servers/%(uuid)s", + "href": "http://openstack.example.com/openstack/servers/%(uuid)s", "rel": "bookmark" } ] diff --git a/nova/tests/functional/v3/test_personality.py b/nova/tests/functional/v3/test_personality.py index 69d9c1cb6a..bd3c967b37 100644 --- a/nova/tests/functional/v3/test_personality.py +++ b/nova/tests/functional/v3/test_personality.py @@ -12,34 +12,31 @@ # License for the specific language governing permissions and limitations # under the License. -from nova.tests.functional.v3 import api_sample_base +from nova.tests.functional.v3 import test_servers from nova.tests.unit.image import fake -class PersonalitySampleJsonTest(api_sample_base.ApiSampleTestBaseV3): +class PersonalitySampleJsonTest(test_servers.ServersSampleBase): extension_name = 'os-personality' - - def _servers_post(self, subs): - response = self._do_post('servers', 'server-post-req', subs) - subs.update(self._get_regexes()) - return self._verify_response('server-post-resp', subs, response, 202) + extra_extensions_to_load = ["os-access-ips"] + _api_version = 'v2' def test_servers_post(self): - subs = { - 'image_id': fake.get_valid_image_id(), - 'host': self._get_host() - } - self._servers_post(subs) + self._post_server(use_common_server_api_samples=False) def test_servers_rebuild(self): subs = { 'image_id': fake.get_valid_image_id(), - 'host': self._get_host() + 'host': self._get_host(), + 'glance_host': self._get_glance_host(), + 'access_ip_v4': '1.2.3.4', + 'access_ip_v6': '80fe::' } - uuid = self._servers_post(subs) + uuid = self._post_server(use_common_server_api_samples=False) response = self._do_post('servers/%s/action' % uuid, 'server-action-rebuild-req', subs) subs['hostid'] = '[a-f0-9]+' subs['id'] = uuid + subs.update(self._get_regexes()) self._verify_response('server-action-rebuild-resp', subs, response, 202)