summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2013-02-16 07:38:30 +0000
committerGerrit Code Review <review@openstack.org>2013-02-16 07:38:30 +0000
commit29aea13f085ddf7730d4285ceb6e18e385b02f7b (patch)
treef38b9826cce8d579799d6c344f07af64f05c1827
parent8bd111f9018cd23e16e66ee0cdfb0ad5748ce33d (diff)
parentde56abd4b1ed1c797d20c486eeee8d2a5eba5482 (diff)
downloadnova-29aea13f085ddf7730d4285ceb6e18e385b02f7b.tar.gz
nova-29aea13f085ddf7730d4285ceb6e18e385b02f7b.tar.xz
nova-29aea13f085ddf7730d4285ceb6e18e385b02f7b.zip
Merge "Adds API Sample tests for FlavorAccess extension."
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-add-tenant-req.json5
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-add-tenant-req.xml4
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json8
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml4
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-create-req.json10
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-create-req.xml10
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-create-resp.json20
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-create-resp.xml5
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-detail-resp.json94
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-detail-resp.xml23
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-list-resp.json8
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-list-resp.xml4
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-remove-tenant-req.json5
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-remove-tenant-req.xml4
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json3
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml2
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-show-resp.json20
-rw-r--r--doc/api_samples/os-flavor-access/flavor-access-show-resp.xml5
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-req.json.tpl5
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-req.xml.tpl4
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json.tpl8
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml.tpl4
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-req.json.tpl10
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-req.xml.tpl10
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-resp.json.tpl20
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-create-resp.xml.tpl5
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.json.tpl94
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-detail-resp.xml.tpl23
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-list-resp.json.tpl8
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-list-resp.xml.tpl4
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-req.json.tpl5
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-req.xml.tpl4
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json.tpl3
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml.tpl2
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.json.tpl20
-rw-r--r--nova/tests/integrated/api_samples/os-flavor-access/flavor-access-show-resp.xml.tpl5
-rw-r--r--nova/tests/integrated/test_api_samples.py94
37 files changed, 561 insertions, 1 deletions
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<addTenantAccess>
+ <tenant>fake_tenant</tenant>
+</addTenantAccess> \ 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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavor_access>
+ <access tenant_id="fake_tenant" flavor_id="10"/>
+</flavor_access> \ 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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavor xmlns="http://docs.openstack.org/compute/api/v1.1"
+ xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v1.1"
+ 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-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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavor xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="10" vcpus="2" ram="1024" name="test_flavor" id="10" os-flavor-access:is_public="False">
+ <atom:link href="http://openstack.example.com/v2/openstack/flavors/10" rel="self"/>
+ <atom:link href="http://openstack.example.com/openstack/flavors/10" rel="bookmark"/>
+</flavor> \ 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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavors xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
+ <flavor disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" os-flavor-access:is_public="True">
+ <atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
+ <atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
+ </flavor>
+ <flavor disk="20" vcpus="1" ram="2048" name="m1.small" id="2" os-flavor-access:is_public="True">
+ <atom:link href="http://openstack.example.com/v2/openstack/flavors/2" rel="self"/>
+ <atom:link href="http://openstack.example.com/openstack/flavors/2" rel="bookmark"/>
+ </flavor>
+ <flavor disk="40" vcpus="2" ram="4096" name="m1.medium" id="3" os-flavor-access:is_public="True">
+ <atom:link href="http://openstack.example.com/v2/openstack/flavors/3" rel="self"/>
+ <atom:link href="http://openstack.example.com/openstack/flavors/3" rel="bookmark"/>
+ </flavor>
+ <flavor disk="80" vcpus="4" ram="8192" name="m1.large" id="4" os-flavor-access:is_public="True">
+ <atom:link href="http://openstack.example.com/v2/openstack/flavors/4" rel="self"/>
+ <atom:link href="http://openstack.example.com/openstack/flavors/4" rel="bookmark"/>
+ </flavor>
+ <flavor disk="160" vcpus="8" ram="16384" name="m1.xlarge" id="5" os-flavor-access:is_public="True">
+ <atom:link href="http://openstack.example.com/v2/openstack/flavors/5" rel="self"/>
+ <atom:link href="http://openstack.example.com/openstack/flavors/5" rel="bookmark"/>
+ </flavor>
+</flavors> \ 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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavor_access>
+ <access tenant_id="fake_tenant" flavor_id="10"/>
+</flavor_access> \ 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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<removeTenantAccess>
+ <tenant>fake_tenant</tenant>
+</removeTenantAccess> \ 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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavor_access/> \ 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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavor xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" os-flavor-access:is_public="True">
+ <atom:link href="http://openstack.example.com/v2/openstack/flavors/1" rel="self"/>
+ <atom:link href="http://openstack.example.com/openstack/flavors/1" rel="bookmark"/>
+</flavor> \ 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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<addTenantAccess>
+ <tenant>%(tenant_id)s</tenant>
+</addTenantAccess>
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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavor_access>
+ <access tenant_id="%(tenant_id)s" flavor_id="%(flavor_id)s"/>
+</flavor_access>
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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavor xmlns="http://docs.openstack.org/compute/api/v1.1"
+ xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v1.1"
+ 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-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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavor xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="10" vcpus="2" ram="1024" name="%(flavor_name)s" id="%(flavor_id)s" os-flavor-access:is_public="False">
+ <atom:link href="%(host)s/v2/openstack/flavors/%(flavor_id)s" rel="self"/>
+ <atom:link href="%(host)s/openstack/flavors/%(flavor_id)s" rel="bookmark"/>
+</flavor>
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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavors xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1">
+ <flavor disk="0" vcpus="1" ram="512" name="m1.tiny" id="1" os-flavor-access:is_public="True">
+ <atom:link href="%(host)s/v2/openstack/flavors/1" rel="self"/>
+ <atom:link href="%(host)s/openstack/flavors/1" rel="bookmark"/>
+ </flavor>
+ <flavor disk="20" vcpus="1" ram="2048" name="m1.small" id="2" os-flavor-access:is_public="True">
+ <atom:link href="%(host)s/v2/openstack/flavors/2" rel="self"/>
+ <atom:link href="%(host)s/openstack/flavors/2" rel="bookmark"/>
+ </flavor>
+ <flavor disk="40" vcpus="2" ram="4096" name="m1.medium" id="3" os-flavor-access:is_public="True">
+ <atom:link href="%(host)s/v2/openstack/flavors/3" rel="self"/>
+ <atom:link href="%(host)s/openstack/flavors/3" rel="bookmark"/>
+ </flavor>
+ <flavor disk="80" vcpus="4" ram="8192" name="m1.large" id="4" os-flavor-access:is_public="True">
+ <atom:link href="%(host)s/v2/openstack/flavors/4" rel="self"/>
+ <atom:link href="%(host)s/openstack/flavors/4" rel="bookmark"/>
+ </flavor>
+ <flavor disk="160" vcpus="8" ram="16384" name="m1.xlarge" id="5" os-flavor-access:is_public="True">
+ <atom:link href="%(host)s/v2/openstack/flavors/5" rel="self"/>
+ <atom:link href="%(host)s/openstack/flavors/5" rel="bookmark"/>
+ </flavor>
+</flavors>
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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavor_access>
+ <access tenant_id="%(tenant_id)s" flavor_id="%(flavor_id)s"/>
+</flavor_access>
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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<removeTenantAccess>
+ <tenant>%(tenant_id)s</tenant>
+</removeTenantAccess>
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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavor_access/>
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 @@
+<?xml version='1.0' encoding='UTF-8'?>
+<flavor xmlns:os-flavor-access="http://docs.openstack.org/compute/ext/flavor_access/api/v2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns="http://docs.openstack.org/compute/api/v1.1" disk="0" vcpus="1" ram="512" name="m1.tiny" id="%(flavor_id)s" os-flavor-access:is_public="True">
+ <atom:link href="%(host)s/v2/openstack/flavors/%(flavor_id)s" rel="self"/>
+ <atom:link href="%(host)s/openstack/flavors/%(flavor_id)s" rel="bookmark"/>
+</flavor>
diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py
index 97e38fa0c..ae34765d9 100644
--- a/nova/tests/integrated/test_api_samples.py
+++ b/nova/tests/integrated/test_api_samples.py
@@ -383,7 +383,6 @@ class ApiSamplesTrap(ApiSampleTestBase):
# removed) soon.
do_not_approve_additions = []
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')
@@ -3210,3 +3209,96 @@ class ConfigDriveSampleJsonTest(ServersSampleBase):
class ConfigDriveSampleXmlTest(ConfigDriveSampleJsonTest):
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"