From de56abd4b1ed1c797d20c486eeee8d2a5eba5482 Mon Sep 17 00:00:00 2001 From: Giampaolo Lauria Date: Thu, 7 Feb 2013 22:22:47 -0500 Subject: Adds API Sample tests for FlavorAccess extension. Partially implements blueprint nova-api-samples Fixes bug 1091741 Change-Id: I65bb9e508996417bdcdc9ec87997df5373c06bad --- .../flavor-access-add-tenant-req.json | 5 ++ .../flavor-access-add-tenant-req.xml | 4 + .../flavor-access-add-tenant-resp.json | 8 ++ .../flavor-access-add-tenant-resp.xml | 4 + .../os-flavor-access/flavor-access-create-req.json | 10 +++ .../os-flavor-access/flavor-access-create-req.xml | 10 +++ .../flavor-access-create-resp.json | 20 +++++ .../os-flavor-access/flavor-access-create-resp.xml | 5 ++ .../flavor-access-detail-resp.json | 94 ++++++++++++++++++++++ .../os-flavor-access/flavor-access-detail-resp.xml | 23 ++++++ .../os-flavor-access/flavor-access-list-resp.json | 8 ++ .../os-flavor-access/flavor-access-list-resp.xml | 4 + .../flavor-access-remove-tenant-req.json | 5 ++ .../flavor-access-remove-tenant-req.xml | 4 + .../flavor-access-remove-tenant-resp.json | 3 + .../flavor-access-remove-tenant-resp.xml | 2 + .../os-flavor-access/flavor-access-show-resp.json | 20 +++++ .../os-flavor-access/flavor-access-show-resp.xml | 5 ++ .../flavor-access-add-tenant-req.json.tpl | 5 ++ .../flavor-access-add-tenant-req.xml.tpl | 4 + .../flavor-access-add-tenant-resp.json.tpl | 8 ++ .../flavor-access-add-tenant-resp.xml.tpl | 4 + .../flavor-access-create-req.json.tpl | 10 +++ .../flavor-access-create-req.xml.tpl | 10 +++ .../flavor-access-create-resp.json.tpl | 20 +++++ .../flavor-access-create-resp.xml.tpl | 5 ++ .../flavor-access-detail-resp.json.tpl | 94 ++++++++++++++++++++++ .../flavor-access-detail-resp.xml.tpl | 23 ++++++ .../flavor-access-list-resp.json.tpl | 8 ++ .../flavor-access-list-resp.xml.tpl | 4 + .../flavor-access-remove-tenant-req.json.tpl | 5 ++ .../flavor-access-remove-tenant-req.xml.tpl | 4 + .../flavor-access-remove-tenant-resp.json.tpl | 3 + .../flavor-access-remove-tenant-resp.xml.tpl | 2 + .../flavor-access-show-resp.json.tpl | 20 +++++ .../flavor-access-show-resp.xml.tpl | 5 ++ nova/tests/integrated/test_api_samples.py | 94 +++++++++++++++++++++- 37 files changed, 561 insertions(+), 1 deletion(-) create mode 100644 doc/api_samples/os-flavor-access/flavor-access-add-tenant-req.json create mode 100644 doc/api_samples/os-flavor-access/flavor-access-add-tenant-req.xml create mode 100644 doc/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json create mode 100644 doc/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml create mode 100644 doc/api_samples/os-flavor-access/flavor-access-create-req.json create mode 100644 doc/api_samples/os-flavor-access/flavor-access-create-req.xml create mode 100644 doc/api_samples/os-flavor-access/flavor-access-create-resp.json create mode 100644 doc/api_samples/os-flavor-access/flavor-access-create-resp.xml create mode 100644 doc/api_samples/os-flavor-access/flavor-access-detail-resp.json create mode 100644 doc/api_samples/os-flavor-access/flavor-access-detail-resp.xml create mode 100644 doc/api_samples/os-flavor-access/flavor-access-list-resp.json create mode 100644 doc/api_samples/os-flavor-access/flavor-access-list-resp.xml create mode 100644 doc/api_samples/os-flavor-access/flavor-access-remove-tenant-req.json create mode 100644 doc/api_samples/os-flavor-access/flavor-access-remove-tenant-req.xml create mode 100644 doc/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json create mode 100644 doc/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml create mode 100644 doc/api_samples/os-flavor-access/flavor-access-show-resp.json create mode 100644 doc/api_samples/os-flavor-access/flavor-access-show-resp.xml create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-req.json.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-req.xml.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-req.json.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-req.xml.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-resp.json.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-resp.xml.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.json.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.xml.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-list-resp.json.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-list-resp.xml.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-req.json.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-req.xml.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.json.tpl create mode 100644 nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.xml.tpl diff --git a/doc/api_samples/os-flavor-access/flavor-access-add-tenant-req.json b/doc/api_samples/os-flavor-access/flavor-access-add-tenant-req.json new file mode 100644 index 000000000..dd847d6bc --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-add-tenant-req.json @@ -0,0 +1,5 @@ +{ + "addTenantAccess": { + "tenant": "fake_tenant" + } +} \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-add-tenant-req.xml b/doc/api_samples/os-flavor-access/flavor-access-add-tenant-req.xml new file mode 100644 index 000000000..ab9ec8ba7 --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-add-tenant-req.xml @@ -0,0 +1,4 @@ + + + fake_tenant + \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json b/doc/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json new file mode 100644 index 000000000..b6c1bc77d --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json @@ -0,0 +1,8 @@ +{ + "flavor_access": [ + { + "flavor_id": "10", + "tenant_id": "fake_tenant" + } + ] +} \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml b/doc/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml new file mode 100644 index 000000000..1e55ad2f9 --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-create-req.json b/doc/api_samples/os-flavor-access/flavor-access-create-req.json new file mode 100644 index 000000000..77c51d7e4 --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-create-req.json @@ -0,0 +1,10 @@ +{ + "flavor": { + "name": "test_flavor", + "ram": 1024, + "vcpus": 2, + "disk": 10, + "id": "10", + "os-flavor-access:is_public": false + } +} \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-create-req.xml b/doc/api_samples/os-flavor-access/flavor-access-create-req.xml new file mode 100644 index 000000000..81256cf25 --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-create-req.xml @@ -0,0 +1,10 @@ + + \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-create-resp.json b/doc/api_samples/os-flavor-access/flavor-access-create-resp.json new file mode 100644 index 000000000..433c36b34 --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-create-resp.json @@ -0,0 +1,20 @@ +{ + "flavor": { + "disk": 10, + "id": "10", + "links": [ + { + "href": "http://openstack.example.com/v2/openstack/flavors/10", + "rel": "self" + }, + { + "href": "http://openstack.example.com/openstack/flavors/10", + "rel": "bookmark" + } + ], + "name": "test_flavor", + "os-flavor-access:is_public": false, + "ram": 1024, + "vcpus": 2 + } +} \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-create-resp.xml b/doc/api_samples/os-flavor-access/flavor-access-create-resp.xml new file mode 100644 index 000000000..5c40d3aea --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-create-resp.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-detail-resp.json b/doc/api_samples/os-flavor-access/flavor-access-detail-resp.json new file mode 100644 index 000000000..f5e8a7584 --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-detail-resp.json @@ -0,0 +1,94 @@ +{ + "flavors": [ + { + "disk": 0, + "id": "1", + "links": [ + { + "href": "http://openstack.example.com/v2/openstack/flavors/1", + "rel": "self" + }, + { + "href": "http://openstack.example.com/openstack/flavors/1", + "rel": "bookmark" + } + ], + "name": "m1.tiny", + "os-flavor-access:is_public": true, + "ram": 512, + "vcpus": 1 + }, + { + "disk": 20, + "id": "2", + "links": [ + { + "href": "http://openstack.example.com/v2/openstack/flavors/2", + "rel": "self" + }, + { + "href": "http://openstack.example.com/openstack/flavors/2", + "rel": "bookmark" + } + ], + "name": "m1.small", + "os-flavor-access:is_public": true, + "ram": 2048, + "vcpus": 1 + }, + { + "disk": 40, + "id": "3", + "links": [ + { + "href": "http://openstack.example.com/v2/openstack/flavors/3", + "rel": "self" + }, + { + "href": "http://openstack.example.com/openstack/flavors/3", + "rel": "bookmark" + } + ], + "name": "m1.medium", + "os-flavor-access:is_public": true, + "ram": 4096, + "vcpus": 2 + }, + { + "disk": 80, + "id": "4", + "links": [ + { + "href": "http://openstack.example.com/v2/openstack/flavors/4", + "rel": "self" + }, + { + "href": "http://openstack.example.com/openstack/flavors/4", + "rel": "bookmark" + } + ], + "name": "m1.large", + "os-flavor-access:is_public": true, + "ram": 8192, + "vcpus": 4 + }, + { + "disk": 160, + "id": "5", + "links": [ + { + "href": "http://openstack.example.com/v2/openstack/flavors/5", + "rel": "self" + }, + { + "href": "http://openstack.example.com/openstack/flavors/5", + "rel": "bookmark" + } + ], + "name": "m1.xlarge", + "os-flavor-access:is_public": true, + "ram": 16384, + "vcpus": 8 + } + ] +} \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-detail-resp.xml b/doc/api_samples/os-flavor-access/flavor-access-detail-resp.xml new file mode 100644 index 000000000..1cbe69c7d --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-detail-resp.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-list-resp.json b/doc/api_samples/os-flavor-access/flavor-access-list-resp.json new file mode 100644 index 000000000..b6c1bc77d --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-list-resp.json @@ -0,0 +1,8 @@ +{ + "flavor_access": [ + { + "flavor_id": "10", + "tenant_id": "fake_tenant" + } + ] +} \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-list-resp.xml b/doc/api_samples/os-flavor-access/flavor-access-list-resp.xml new file mode 100644 index 000000000..1e55ad2f9 --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-list-resp.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-remove-tenant-req.json b/doc/api_samples/os-flavor-access/flavor-access-remove-tenant-req.json new file mode 100644 index 000000000..dff6d540a --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-remove-tenant-req.json @@ -0,0 +1,5 @@ +{ + "removeTenantAccess": { + "tenant": "fake_tenant" + } +} \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-remove-tenant-req.xml b/doc/api_samples/os-flavor-access/flavor-access-remove-tenant-req.xml new file mode 100644 index 000000000..fc296c302 --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-remove-tenant-req.xml @@ -0,0 +1,4 @@ + + + fake_tenant + \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json b/doc/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json new file mode 100644 index 000000000..5cab03334 --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json @@ -0,0 +1,3 @@ +{ + "flavor_access": [] +} \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml b/doc/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml new file mode 100644 index 000000000..862e02872 --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-show-resp.json b/doc/api_samples/os-flavor-access/flavor-access-show-resp.json new file mode 100644 index 000000000..a60b8cc62 --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-show-resp.json @@ -0,0 +1,20 @@ +{ + "flavor": { + "disk": 0, + "id": "1", + "links": [ + { + "href": "http://openstack.example.com/v2/openstack/flavors/1", + "rel": "self" + }, + { + "href": "http://openstack.example.com/openstack/flavors/1", + "rel": "bookmark" + } + ], + "name": "m1.tiny", + "os-flavor-access:is_public": true, + "ram": 512, + "vcpus": 1 + } +} \ No newline at end of file diff --git a/doc/api_samples/os-flavor-access/flavor-access-show-resp.xml b/doc/api_samples/os-flavor-access/flavor-access-show-resp.xml new file mode 100644 index 000000000..ae699cb07 --- /dev/null +++ b/doc/api_samples/os-flavor-access/flavor-access-show-resp.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-req.json.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-req.json.tpl new file mode 100644 index 000000000..94f5439e0 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-req.json.tpl @@ -0,0 +1,5 @@ +{ + "addTenantAccess": { + "tenant": "%(tenant_id)s" + } +} diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-req.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-req.xml.tpl new file mode 100644 index 000000000..312819dad --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-req.xml.tpl @@ -0,0 +1,4 @@ + + + %(tenant_id)s + diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json.tpl new file mode 100644 index 000000000..d79715579 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json.tpl @@ -0,0 +1,8 @@ +{ + "flavor_access": [ + { + "flavor_id": "%(flavor_id)s", + "tenant_id": "%(tenant_id)s" + } + ] +} diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml.tpl new file mode 100644 index 000000000..2223052aa --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml.tpl @@ -0,0 +1,4 @@ + + + + diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-req.json.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-req.json.tpl new file mode 100644 index 000000000..02ac4e695 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-req.json.tpl @@ -0,0 +1,10 @@ +{ + "flavor": { + "name": "%(flavor_name)s", + "ram": 1024, + "vcpus": 2, + "disk": 10, + "id": "%(flavor_id)s", + "os-flavor-access:is_public": false + } +} diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-req.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-req.xml.tpl new file mode 100644 index 000000000..5714fb9d0 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-req.xml.tpl @@ -0,0 +1,10 @@ + + diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-resp.json.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-resp.json.tpl new file mode 100644 index 000000000..4110795ec --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-resp.json.tpl @@ -0,0 +1,20 @@ +{ + "flavor": { + "disk": 10, + "id": "%(flavor_id)s", + "links": [ + { + "href": "%(host)s/v2/openstack/flavors/%(flavor_id)s", + "rel": "self" + }, + { + "href": "%(host)s/openstack/flavors/%(flavor_id)s", + "rel": "bookmark" + } + ], + "name": "%(flavor_name)s", + "os-flavor-access:is_public": false, + "ram": 1024, + "vcpus": 2 + } +} diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-resp.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-resp.xml.tpl new file mode 100644 index 000000000..c3a899407 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-resp.xml.tpl @@ -0,0 +1,5 @@ + + + + + diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.json.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.json.tpl new file mode 100644 index 000000000..711207d2d --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.json.tpl @@ -0,0 +1,94 @@ +{ + "flavors": [ + { + "disk": 0, + "id": "1", + "links": [ + { + "href": "%(host)s/v2/openstack/flavors/1", + "rel": "self" + }, + { + "href": "%(host)s/openstack/flavors/1", + "rel": "bookmark" + } + ], + "name": "m1.tiny", + "os-flavor-access:is_public": true, + "ram": 512, + "vcpus": 1 + }, + { + "disk": 20, + "id": "2", + "links": [ + { + "href": "%(host)s/v2/openstack/flavors/2", + "rel": "self" + }, + { + "href": "%(host)s/openstack/flavors/2", + "rel": "bookmark" + } + ], + "name": "m1.small", + "os-flavor-access:is_public": true, + "ram": 2048, + "vcpus": 1 + }, + { + "disk": 40, + "id": "3", + "links": [ + { + "href": "%(host)s/v2/openstack/flavors/3", + "rel": "self" + }, + { + "href": "%(host)s/openstack/flavors/3", + "rel": "bookmark" + } + ], + "name": "m1.medium", + "os-flavor-access:is_public": true, + "ram": 4096, + "vcpus": 2 + }, + { + "disk": 80, + "id": "4", + "links": [ + { + "href": "%(host)s/v2/openstack/flavors/4", + "rel": "self" + }, + { + "href": "%(host)s/openstack/flavors/4", + "rel": "bookmark" + } + ], + "name": "m1.large", + "os-flavor-access:is_public": true, + "ram": 8192, + "vcpus": 4 + }, + { + "disk": 160, + "id": "5", + "links": [ + { + "href": "%(host)s/v2/openstack/flavors/5", + "rel": "self" + }, + { + "href": "%(host)s/openstack/flavors/5", + "rel": "bookmark" + } + ], + "name": "m1.xlarge", + "os-flavor-access:is_public": true, + "ram": 16384, + "vcpus": 8 + } + ] +} diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.xml.tpl new file mode 100644 index 000000000..cdef74cce --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.xml.tpl @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-list-resp.json.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-list-resp.json.tpl new file mode 100644 index 000000000..a6b6dbdcd --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-list-resp.json.tpl @@ -0,0 +1,8 @@ +{ + "flavor_access": [ + { + "flavor_id": "%(flavor_id)s", + "tenant_id": "fake_tenant" + } + ] +} diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-list-resp.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-list-resp.xml.tpl new file mode 100644 index 000000000..2223052aa --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-list-resp.xml.tpl @@ -0,0 +1,4 @@ + + + + diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-req.json.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-req.json.tpl new file mode 100644 index 000000000..20711e02b --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-req.json.tpl @@ -0,0 +1,5 @@ +{ + "removeTenantAccess": { + "tenant": "%(tenant_id)s" + } +} diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-req.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-req.xml.tpl new file mode 100644 index 000000000..490de3e31 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-req.xml.tpl @@ -0,0 +1,4 @@ + + + %(tenant_id)s + diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json.tpl new file mode 100644 index 000000000..5cab03334 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json.tpl @@ -0,0 +1,3 @@ +{ + "flavor_access": [] +} \ No newline at end of file diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml.tpl new file mode 100644 index 000000000..80d1ecc48 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml.tpl @@ -0,0 +1,2 @@ + + diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.json.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.json.tpl new file mode 100644 index 000000000..975f38661 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.json.tpl @@ -0,0 +1,20 @@ +{ + "flavor": { + "disk": 0, + "id": "%(flavor_id)s", + "links": [ + { + "href": "%(host)s/v2/openstack/flavors/%(flavor_id)s", + "rel": "self" + }, + { + "href": "%(host)s/openstack/flavors/%(flavor_id)s", + "rel": "bookmark" + } + ], + "name": "m1.tiny", + "os-flavor-access:is_public": true, + "ram": 512, + "vcpus": 1 + } +} diff --git a/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.xml.tpl b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.xml.tpl new file mode 100644 index 000000000..f9a3ff178 --- /dev/null +++ b/nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.xml.tpl @@ -0,0 +1,5 @@ + + + + + diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py index e3022d48e..6a010484f 100644 --- a/nova/tests/integrated/test_api_samples.py +++ b/nova/tests/integrated/test_api_samples.py @@ -383,7 +383,6 @@ class ApiSamplesTrap(ApiSampleTestBase): do_not_approve_additions = [] do_not_approve_additions.append('os-config-drive') do_not_approve_additions.append('os-create-server-ext') - do_not_approve_additions.append('os-flavor-access') do_not_approve_additions.append('os-hypervisors') do_not_approve_additions.append('os-volumes') @@ -3173,3 +3172,96 @@ class InstanceActionsSampleJsonTest(ApiSampleTestBase): class InstanceActionsSampleXmlTest(InstanceActionsSampleJsonTest): ctype = 'xml' + + +class FlavorAccessSampleJsonTests(ApiSampleTestBase): + extension_name = ("nova.api.openstack.compute.contrib.flavor_access." + "Flavor_access") + + def _get_flags(self): + f = super(FlavorAccessSampleJsonTests, self)._get_flags() + f['osapi_compute_extension'] = CONF.osapi_compute_extension[:] + # FlavorAccess extension also needs Flavormanage to be loaded. + f['osapi_compute_extension'].append( + 'nova.api.openstack.compute.contrib.flavormanage.Flavormanage') + return f + + def _add_tenant(self): + subs = { + 'tenant_id': 'fake_tenant', + 'flavor_id': 10 + } + response = self._do_post('flavors/10/action', + 'flavor-access-add-tenant-req', + subs) + self.assertEqual(response.status, 200) + return self._verify_response('flavor-access-add-tenant-resp', + subs, response) + + def _create_flavor(self): + subs = { + 'flavor_id': 10, + 'flavor_name': 'test_flavor' + } + response = self._do_post("flavors", + "flavor-access-create-req", + subs) + self.assertEqual(response.status, 200) + subs.update(self._get_regexes()) + return self._verify_response("flavor-access-create-resp", + subs, response) + + def test_flavor_access_create(self): + self._create_flavor() + + def test_flavor_access_detail(self): + response = self._do_get('flavors/detail') + self.assertEqual(response.status, 200) + subs = self._get_regexes() + return self._verify_response('flavor-access-detail-resp', + subs, response) + + def test_flavor_access_list(self): + self._create_flavor() + self._add_tenant() + flavor_id = 10 + response = self._do_get('flavors/%s/os-flavor-access' % flavor_id) + self.assertEqual(response.status, 200) + subs = { + 'flavor_id': flavor_id, + 'tenant_id': 'fake_tenant', + } + return self._verify_response('flavor-access-list-resp', + subs, response) + + def test_flavor_access_show(self): + flavor_id = 1 + response = self._do_get('flavors/%s' % flavor_id) + self.assertEqual(response.status, 200) + subs = { + 'flavor_id': flavor_id + } + subs.update(self._get_regexes()) + return self._verify_response('flavor-access-show-resp', + subs, response) + + def test_flavor_access_add_tenant(self): + self._create_flavor() + response = self._add_tenant() + + def test_flavor_access_remove_tenant(self): + self._create_flavor() + self._add_tenant() + subs = { + 'tenant_id': 'fake_tenant', + } + response = self._do_post('flavors/10/action', + "flavor-access-remove-tenant-req", + subs) + self.assertEqual(response.status, 200) + return self._verify_response('flavor-access-remove-tenant-resp', + {}, response) + + +class FlavorAccessSampleXmlTests(FlavorAccessSampleJsonTests): + ctype = "xml" -- cgit