Tear down os-disk-config part 1

This removes the portions of the os-disk-config extension which extend
the returned responses by adding attributes to the servers object.

Tests are updated / removed where appropriate.

Follow ups will be done to remove the request handling, as well as the
image response handling.

Part of bp:api-no-more-extensions

Change-Id: I795365ed9d0a786b56fcb18400ceee26ca8f1c96
This commit is contained in:
Sean Dague 2016-06-08 11:26:44 -04:00
parent 6e2e1dc912
commit 2c437c0889
4 changed files with 22 additions and 52 deletions

View File

@ -66,52 +66,6 @@ class ImageDiskConfigController(wsgi.Controller):
self._add_disk_config(context, images)
class ServerDiskConfigController(wsgi.Controller):
def _add_disk_config(self, req, servers):
for server in servers:
db_server = req.get_db_instance(server['id'])
# server['id'] is guaranteed to be in the cache due to
# the core API adding it in its 'show'/'detail' methods.
value = db_server.get(INTERNAL_DISK_CONFIG)
server[API_DISK_CONFIG] = disk_config_to_api(value)
def _show(self, req, resp_obj):
if 'server' in resp_obj.obj:
server = resp_obj.obj['server']
self._add_disk_config(req, [server])
@wsgi.extends
def show(self, req, resp_obj, id):
context = req.environ['nova.context']
if authorize(context):
self._show(req, resp_obj)
@wsgi.extends
def detail(self, req, resp_obj):
context = req.environ['nova.context']
if 'servers' in resp_obj.obj and authorize(context):
servers = resp_obj.obj['servers']
self._add_disk_config(req, servers)
@wsgi.extends
def create(self, req, resp_obj, body):
context = req.environ['nova.context']
if authorize(context):
self._show(req, resp_obj)
@wsgi.extends
def update(self, req, resp_obj, id, body):
context = req.environ['nova.context']
if authorize(context):
self._show(req, resp_obj)
@wsgi.extends(action='rebuild')
def _action_rebuild(self, req, resp_obj, id, body):
context = req.environ['nova.context']
if authorize(context):
self._show(req, resp_obj)
class DiskConfig(extensions.V21APIExtensionBase):
"""Disk Management Extension."""
@ -120,13 +74,10 @@ class DiskConfig(extensions.V21APIExtensionBase):
version = 1
def get_controller_extensions(self):
servers_extension = extensions.ControllerExtension(
self, 'servers', ServerDiskConfigController())
images_extension = extensions.ControllerExtension(
self, 'images', ImageDiskConfigController())
return [servers_extension, images_extension]
return [images_extension]
def get_resources(self):
return []

View File

@ -69,6 +69,11 @@ class ViewBuilder(common.ViewBuilder):
"links": self._get_links(request,
instance["uuid"],
self._collection_name),
# NOTE(sdague): historically this was the
# os-disk-config extension, but now that extensions
# are gone, we merge these attributes here.
"OS-DCF:diskConfig": (
'AUTO' if instance.get('auto_disk_config') else 'MANUAL'),
},
}
@ -127,6 +132,11 @@ class ViewBuilder(common.ViewBuilder):
"links": self._get_links(request,
instance["uuid"],
self._collection_name),
# NOTE(sdague): historically this was the
# os-disk-config extension, but now that extensions
# are gone, we merge these attributes here.
"OS-DCF:diskConfig": (
'AUTO' if instance.get('auto_disk_config') else 'MANUAL'),
},
}
if server["server"]["status"] in self._fault_statuses:
@ -288,6 +298,11 @@ class ViewBuilderV21(ViewBuilder):
# V2.1.
"image": self._get_image(request, instance),
"flavor": self._get_flavor(request, instance),
# NOTE(sdague): historically this was the
# os-disk-config extension, but now that extensions
# are gone, we merge these attributes here.
"OS-DCF:diskConfig": (
'AUTO' if instance.get('auto_disk_config') else 'MANUAL'),
"created": utils.isotime(instance["created_at"]),
"updated": utils.isotime(instance["updated_at"]),
"addresses": self._get_addresses(request, instance,

View File

@ -128,8 +128,7 @@ class DiskConfigTestCaseV21(test.TestCase):
self.stub_out('nova.db.instance_create', fake_instance_create)
def _set_up_app(self):
self.app = compute.APIRouterV21(init_only=('servers', 'images',
'os-disk-config'))
self.app = compute.APIRouterV21()
def _get_expected_msg_for_invalid_disk_config(self):
return ('{{"badRequest": {{"message": "Invalid input for'

View File

@ -395,6 +395,7 @@ class ServersControllerTest(ControllerTest):
"href": "http://localhost/fake/servers/%s" % uuid,
},
],
"OS-DCF:diskConfig": "MANUAL",
}
}
@ -3686,6 +3687,7 @@ class ServersViewBuilderTest(test.TestCase):
"href": self.bookmark_link,
},
],
"OS-DCF:diskConfig": "MANUAL",
}
}
@ -3762,6 +3764,7 @@ class ServersViewBuilderTest(test.TestCase):
"message": "HTTPNotFound",
"details": "Stock details for test",
},
"OS-DCF:diskConfig": "MANUAL",
}
}
@ -3914,6 +3917,7 @@ class ServersViewBuilderTest(test.TestCase):
"href": self.bookmark_link,
},
],
"OS-DCF:diskConfig": "MANUAL",
}
}
@ -3987,6 +3991,7 @@ class ServersViewBuilderTest(test.TestCase):
"href": self.bookmark_link,
},
],
"OS-DCF:diskConfig": "MANUAL",
}
}