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
index b6c1bc77df37..e637ad85ae35 100644
--- 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
@@ -3,6 +3,10 @@
{
"flavor_id": "10",
"tenant_id": "fake_tenant"
+ },
+ {
+ "flavor_id": "10",
+ "tenant_id": "openstack"
}
]
}
\ 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
index 1e55ad2f958c..cc102aeed1e2 100644
--- 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
@@ -1,4 +1,5 @@
+
\ 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
index b6c1bc77df37..e637ad85ae35 100644
--- a/doc/api_samples/os-flavor-access/flavor-access-list-resp.json
+++ b/doc/api_samples/os-flavor-access/flavor-access-list-resp.json
@@ -3,6 +3,10 @@
{
"flavor_id": "10",
"tenant_id": "fake_tenant"
+ },
+ {
+ "flavor_id": "10",
+ "tenant_id": "openstack"
}
]
}
\ 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
index 1e55ad2f958c..cc102aeed1e2 100644
--- a/doc/api_samples/os-flavor-access/flavor-access-list-resp.xml
+++ b/doc/api_samples/os-flavor-access/flavor-access-list-resp.xml
@@ -1,4 +1,5 @@
+
\ 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
index 5cab03334d89..ebe0423e82f7 100644
--- 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
@@ -1,3 +1,6 @@
{
- "flavor_access": []
+ "flavor_access": [{
+ "flavor_id": "10",
+ "tenant_id": "openstack"
+ }]
}
\ 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
index 862e02872492..3c5ef1c5cc5d 100644
--- 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
@@ -1,2 +1,4 @@
-
\ No newline at end of file
+
+
+
diff --git a/doc/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json b/doc/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json
index b6c1bc77df37..e637ad85ae35 100644
--- a/doc/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json
+++ b/doc/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json
@@ -3,6 +3,10 @@
{
"flavor_id": "10",
"tenant_id": "fake_tenant"
+ },
+ {
+ "flavor_id": "10",
+ "tenant_id": "openstack"
}
]
}
\ No newline at end of file
diff --git a/doc/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml b/doc/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml
index 1e55ad2f958c..cc102aeed1e2 100644
--- a/doc/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml
+++ b/doc/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml
@@ -1,4 +1,5 @@
+
\ No newline at end of file
diff --git a/doc/v3/api_samples/os-flavor-access/flavor-access-list-resp.json b/doc/v3/api_samples/os-flavor-access/flavor-access-list-resp.json
index b6c1bc77df37..e637ad85ae35 100644
--- a/doc/v3/api_samples/os-flavor-access/flavor-access-list-resp.json
+++ b/doc/v3/api_samples/os-flavor-access/flavor-access-list-resp.json
@@ -3,6 +3,10 @@
{
"flavor_id": "10",
"tenant_id": "fake_tenant"
+ },
+ {
+ "flavor_id": "10",
+ "tenant_id": "openstack"
}
]
}
\ No newline at end of file
diff --git a/doc/v3/api_samples/os-flavor-access/flavor-access-list-resp.xml b/doc/v3/api_samples/os-flavor-access/flavor-access-list-resp.xml
index 1e55ad2f958c..cc102aeed1e2 100644
--- a/doc/v3/api_samples/os-flavor-access/flavor-access-list-resp.xml
+++ b/doc/v3/api_samples/os-flavor-access/flavor-access-list-resp.xml
@@ -1,4 +1,5 @@
+
\ No newline at end of file
diff --git a/doc/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json b/doc/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json
index 5cab03334d89..ebe0423e82f7 100644
--- a/doc/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json
+++ b/doc/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json
@@ -1,3 +1,6 @@
{
- "flavor_access": []
+ "flavor_access": [{
+ "flavor_id": "10",
+ "tenant_id": "openstack"
+ }]
}
\ No newline at end of file
diff --git a/doc/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml b/doc/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml
index 862e02872492..3c5ef1c5cc5d 100644
--- a/doc/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml
+++ b/doc/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml
@@ -1,2 +1,4 @@
-
\ No newline at end of file
+
+
+
diff --git a/nova/api/openstack/compute/contrib/flavormanage.py b/nova/api/openstack/compute/contrib/flavormanage.py
index 268c13d68ff1..b2103a8b2909 100644
--- a/nova/api/openstack/compute/contrib/flavormanage.py
+++ b/nova/api/openstack/compute/contrib/flavormanage.py
@@ -75,6 +75,9 @@ class FlavorManageController(wsgi.Controller):
flavorid=flavorid, swap=swap,
rxtx_factor=rxtx_factor,
is_public=is_public)
+ if not flavor['is_public']:
+ flavors.add_flavor_access(flavor['flavorid'],
+ context.project_id, context)
req.cache_db_flavor(flavor)
except (exception.InstanceTypeExists,
exception.InstanceTypeIdExists) as err:
diff --git a/nova/api/openstack/compute/plugins/v3/flavor_manage.py b/nova/api/openstack/compute/plugins/v3/flavor_manage.py
index 2fe99a340075..5815de9c0f80 100644
--- a/nova/api/openstack/compute/plugins/v3/flavor_manage.py
+++ b/nova/api/openstack/compute/plugins/v3/flavor_manage.py
@@ -79,6 +79,9 @@ class FlavorManageController(wsgi.Controller):
flavorid=flavorid, swap=swap,
rxtx_factor=rxtx_factor,
is_public=is_public)
+ if not flavor['is_public']:
+ flavors.add_flavor_access(flavor['flavorid'],
+ context.project_id, context)
req.cache_db_flavor(flavor)
except (exception.InstanceTypeExists,
exception.InstanceTypeIdExists) as err:
diff --git a/nova/tests/api/openstack/compute/contrib/test_flavor_manage.py b/nova/tests/api/openstack/compute/contrib/test_flavor_manage.py
index 58ad01b608a5..1816b19eb62b 100644
--- a/nova/tests/api/openstack/compute/contrib/test_flavor_manage.py
+++ b/nova/tests/api/openstack/compute/contrib/test_flavor_manage.py
@@ -17,8 +17,10 @@ import datetime
import webob
+from nova.api.openstack.compute.contrib import flavor_access
from nova.api.openstack.compute.contrib import flavormanage
from nova.compute import flavors
+from nova import context
from nova import db
from nova import exception
from nova.openstack.common import jsonutils
@@ -391,3 +393,92 @@ class FlavorManageTest(test.NoDBTestCase):
512, 2, None, 1, 1234, 512, 1, True)
self.assertRaises(exception.InvalidInput, flavors.create, "abcdef",
"test_memory_mb", 2, None, 1, 1234, 512, 1, True)
+
+
+class FakeRequest(object):
+ environ = {"nova.context": context.get_admin_context()}
+
+
+class PrivateFlavorManageTest(test.TestCase):
+ def setUp(self):
+ super(PrivateFlavorManageTest, self).setUp()
+ # self.stubs.Set(flavors,
+ # "get_flavor_by_flavor_id",
+ # fake_get_flavor_by_flavor_id)
+ # self.stubs.Set(flavors, "destroy", fake_destroy)
+ # self.stubs.Set(flavors, "create", fake_create)
+ self.flags(
+ osapi_compute_extension=[
+ 'nova.api.openstack.compute.contrib.select_extensions'],
+ osapi_compute_ext_list=['Flavormanage', 'Flavorextradata',
+ 'Flavor_access', 'Flavor_rxtx', 'Flavor_swap'])
+
+ self.controller = flavormanage.FlavorManageController()
+ self.flavor_access_controller = flavor_access.FlavorAccessController()
+ self.app = fakes.wsgi_app(init_only=('flavors',))
+
+ def test_create_private_flavor_should_create_flavor_access(self):
+ expected = {
+ "flavor": {
+ "name": "test",
+ "ram": 512,
+ "vcpus": 2,
+ "disk": 1,
+ "OS-FLV-EXT-DATA:ephemeral": 1,
+ "swap": 512,
+ "rxtx_factor": 1,
+ "os-flavor-access:is_public": False
+ }
+ }
+
+ ctxt = context.RequestContext('fake', 'fake',
+ is_admin=True, auth_token=True)
+ self.app = fakes.wsgi_app(init_only=('flavors',),
+ fake_auth_context=ctxt)
+ url = '/v2/fake/flavors'
+ req = webob.Request.blank(url)
+ req.headers['Content-Type'] = 'application/json'
+ req.method = 'POST'
+ req.body = jsonutils.dumps(expected)
+ res = req.get_response(self.app)
+ body = jsonutils.loads(res.body)
+ for key in expected["flavor"]:
+ self.assertEquals(body["flavor"][key], expected["flavor"][key])
+ flavor_access_body = self.flavor_access_controller.index(
+ FakeRequest(), body["flavor"]["id"])
+ expected_flavor_access_body = {
+ "tenant_id": "%s" % ctxt.project_id,
+ "flavor_id": "%s" % body["flavor"]["id"]
+ }
+ self.assertTrue(expected_flavor_access_body in
+ flavor_access_body["flavor_access"])
+
+ def test_create_public_flavor_should_not_create_flavor_access(self):
+ expected = {
+ "flavor": {
+ "name": "test",
+ "ram": 512,
+ "vcpus": 2,
+ "disk": 1,
+ "OS-FLV-EXT-DATA:ephemeral": 1,
+ "swap": 512,
+ "rxtx_factor": 1,
+ "os-flavor-access:is_public": True
+ }
+ }
+
+ ctxt = context.RequestContext('fake', 'fake',
+ is_admin=True, auth_token=True)
+ self.app = fakes.wsgi_app(init_only=('flavors',),
+ fake_auth_context=ctxt)
+ self.mox.StubOutWithMock(flavors, "add_flavor_access")
+ self.mox.ReplayAll()
+ url = '/v2/fake/flavors'
+ req = webob.Request.blank(url)
+ req.headers['Content-Type'] = 'application/json'
+ req.method = 'POST'
+ req.body = jsonutils.dumps(expected)
+ res = req.get_response(self.app)
+ body = jsonutils.loads(res.body)
+ for key in expected["flavor"]:
+ self.assertEquals(body["flavor"][key], expected["flavor"][key])
diff --git a/nova/tests/api/openstack/compute/plugins/v3/test_flavor_manage.py b/nova/tests/api/openstack/compute/plugins/v3/test_flavor_manage.py
index 9eb4530049f3..87c661b8ae0d 100644
--- a/nova/tests/api/openstack/compute/plugins/v3/test_flavor_manage.py
+++ b/nova/tests/api/openstack/compute/plugins/v3/test_flavor_manage.py
@@ -17,8 +17,10 @@ import datetime
import webob
+from nova.api.openstack.compute.plugins.v3 import flavor_access
from nova.api.openstack.compute.plugins.v3 import flavor_manage
from nova.compute import flavors
+from nova import context
from nova import exception
from nova.openstack.common import jsonutils
from nova import test
@@ -209,3 +211,89 @@ class FlavorManageTest(test.NoDBTestCase):
512, 2, None, 1, 1234, 512, 1, True)
self.assertRaises(exception.InvalidInput, flavors.create, "abcdef",
"test_memory_mb", 2, None, 1, 1234, 512, 1, True)
+
+
+class FakeRequest(object):
+ environ = {"nova.context": context.get_admin_context()}
+
+
+class PrivateFlavorManageTest(test.TestCase):
+ def setUp(self):
+ super(PrivateFlavorManageTest, self).setUp()
+ # self.stubs.Set(flavors,
+ # "get_flavor_by_flavor_id",
+ # fake_get_flavor_by_flavor_id)
+ # self.stubs.Set(flavors, "destroy", fake_destroy)
+ # self.stubs.Set(flavors, "create", fake_create)
+
+ self.controller = flavor_manage.FlavorManageController()
+ self.flavor_access_controller = flavor_access.FlavorAccessController()
+ self.app = fakes.wsgi_app(init_only=('flavors',))
+
+ def test_create_private_flavor_should_create_flavor_access(self):
+ req_body = {
+ "flavor": {
+ "name": "test",
+ "ram": 512,
+ "vcpus": 2,
+ "disk": 1,
+ "OS-FLV-EXT-DATA:ephemeral": 1,
+ "swap": 512,
+ "rxtx_factor": 1,
+ "os-flavor-access:is_public": False
+ }
+ }
+ expected = {
+ "flavor": {
+ "name": "test",
+ "ram": 512,
+ "vcpus": 2,
+ "disk": 1
+ }
+ }
+
+ ctxt = context.RequestContext('fake', 'fake',
+ is_admin=True, auth_token=True)
+ url = '/os-flavor-manage'
+ req = fakes.HTTPRequestV3.blank(url, use_admin_context=True)
+ body = self.controller._create(req, req_body)
+ for key in expected["flavor"]:
+ self.assertEquals(body["flavor"][key], expected["flavor"][key])
+ flavor_access_body = self.flavor_access_controller.index(
+ FakeRequest(), body["flavor"]["id"])
+ expected_flavor_access_body = {
+ "tenant_id": "%s" % ctxt.project_id,
+ "flavor_id": "%s" % body["flavor"]["id"]
+ }
+ self.assertTrue(expected_flavor_access_body in
+ flavor_access_body["flavor_access"])
+
+ def test_create_public_flavor_should_not_create_flavor_access(self):
+ req_body = {
+ "flavor": {
+ "name": "test",
+ "ram": 512,
+ "vcpus": 2,
+ "disk": 1,
+ "OS-FLV-EXT-DATA:ephemeral": 1,
+ "swap": 512,
+ "rxtx_factor": 1,
+ "os-flavor-access:is_public": True
+ }
+ }
+ expected = {
+ "flavor": {
+ "name": "test",
+ "ram": 512,
+ "vcpus": 2,
+ "disk": 1
+ }
+ }
+
+ self.mox.StubOutWithMock(flavors, "add_flavor_access")
+ self.mox.ReplayAll()
+ url = '/os-flavor-manage'
+ req = fakes.HTTPRequestV3.blank(url, use_admin_context=True)
+ body = self.controller._create(req, req_body)
+ for key in expected["flavor"]:
+ self.assertEquals(body["flavor"][key], expected["flavor"][key])
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
index d797155795e5..5266ae08406a 100644
--- 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
@@ -1,5 +1,9 @@
{
"flavor_access": [
+ {
+ "flavor_id": "%(flavor_id)s",
+ "tenant_id": "openstack"
+ },
{
"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
index 2223052aaefd..9c0b4ec1ce1d 100644
--- 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
@@ -1,4 +1,5 @@
+
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
index a6b6dbdcda07..87e337e39c5f 100644
--- 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
@@ -3,6 +3,10 @@
{
"flavor_id": "%(flavor_id)s",
"tenant_id": "fake_tenant"
+ },
+ {
+ "flavor_id": "%(flavor_id)s",
+ "tenant_id": "openstack"
}
]
}
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
index 2223052aaefd..cc102aeed1e2 100644
--- 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
@@ -1,4 +1,5 @@
-
-
+
+
+
\ No newline at end of file
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
index 5cab03334d89..4fb4296a30b7 100644
--- 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
@@ -1,3 +1,6 @@
{
- "flavor_access": []
+ "flavor_access": [{
+ "tenant_id": "openstack",
+ "flavor_id": "%(flavor_id)s"
+ }]
}
\ 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
index 80d1ecc48c3a..480191c726b8 100644
--- 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
@@ -1,2 +1,4 @@
-
+
+
+
diff --git a/nova/tests/integrated/test_api_samples.py b/nova/tests/integrated/test_api_samples.py
index e40d0d2f1464..586e1cb0c5ec 100644
--- a/nova/tests/integrated/test_api_samples.py
+++ b/nova/tests/integrated/test_api_samples.py
@@ -3386,8 +3386,12 @@ class FlavorAccessSampleJsonTests(ApiSampleTestBaseV2):
response = self._do_post('flavors/10/action',
"flavor-access-remove-tenant-req",
subs)
+ exp_subs = {
+ "tenant_id": self.api.project_id,
+ "flavor_id": "10"
+ }
self._verify_response('flavor-access-remove-tenant-resp',
- {}, response, 200)
+ exp_subs, response, 200)
class FlavorAccessSampleXmlTests(FlavorAccessSampleJsonTests):
diff --git a/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json.tpl b/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json.tpl
index d797155795e5..5266ae08406a 100644
--- a/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json.tpl
+++ b/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.json.tpl
@@ -1,5 +1,9 @@
{
"flavor_access": [
+ {
+ "flavor_id": "%(flavor_id)s",
+ "tenant_id": "openstack"
+ },
{
"flavor_id": "%(flavor_id)s",
"tenant_id": "%(tenant_id)s"
diff --git a/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml.tpl b/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml.tpl
index 2223052aaefd..9c0b4ec1ce1d 100644
--- a/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml.tpl
+++ b/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-add-tenant-resp.xml.tpl
@@ -1,4 +1,5 @@
+
diff --git a/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-list-resp.json.tpl b/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-list-resp.json.tpl
index a6b6dbdcda07..87e337e39c5f 100644
--- a/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-list-resp.json.tpl
+++ b/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-list-resp.json.tpl
@@ -3,6 +3,10 @@
{
"flavor_id": "%(flavor_id)s",
"tenant_id": "fake_tenant"
+ },
+ {
+ "flavor_id": "%(flavor_id)s",
+ "tenant_id": "openstack"
}
]
}
diff --git a/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-list-resp.xml.tpl b/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-list-resp.xml.tpl
index 2223052aaefd..cc102aeed1e2 100644
--- a/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-list-resp.xml.tpl
+++ b/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-list-resp.xml.tpl
@@ -1,4 +1,5 @@
-
-
+
+
+
\ No newline at end of file
diff --git a/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json.tpl b/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json.tpl
index 5cab03334d89..4fb4296a30b7 100644
--- a/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json.tpl
+++ b/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.json.tpl
@@ -1,3 +1,6 @@
{
- "flavor_access": []
+ "flavor_access": [{
+ "tenant_id": "openstack",
+ "flavor_id": "%(flavor_id)s"
+ }]
}
\ No newline at end of file
diff --git a/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml.tpl b/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml.tpl
index 80d1ecc48c3a..480191c726b8 100644
--- a/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml.tpl
+++ b/nova/tests/integrated/v3/api_samples/os-flavor-access/flavor-access-remove-tenant-resp.xml.tpl
@@ -1,2 +1,4 @@
-
+
+
+
diff --git a/nova/tests/integrated/v3/test_flavor_access.py b/nova/tests/integrated/v3/test_flavor_access.py
index 53799de27ea6..558738915a5b 100644
--- a/nova/tests/integrated/v3/test_flavor_access.py
+++ b/nova/tests/integrated/v3/test_flavor_access.py
@@ -83,8 +83,12 @@ class FlavorAccessSampleJsonTests(api_sample_base.ApiSampleTestBaseV3):
response = self._do_post('flavors/10/action',
"flavor-access-remove-tenant-req",
subs)
+ exp_subs = {
+ "tenant_id": self.api.project_id,
+ "flavor_id": "10"
+ }
self._verify_response('flavor-access-remove-tenant-resp',
- {}, response, 200)
+ exp_subs, response, 200)
class FlavorAccessSampleXmlTests(FlavorAccessSampleJsonTests):