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:
parent
6e2e1dc912
commit
2c437c0889
@ -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 []
|
||||
|
@ -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,
|
||||
|
@ -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'
|
||||
|
@ -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",
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user