Rename classes containing 'v3' to 'v21'
This part of the ongoing v3 cleanup effort. Partial-Bug: #1462901 Change-Id: I5d9b43503629cc3f5a566f7bfa23cc5d0d14d985
This commit is contained in:
parent
9f9802eebd
commit
55e04230ad
|
@ -319,7 +319,7 @@ class APIRouterV21(base_wsgi.Router):
|
||||||
def _check_load_extension(ext):
|
def _check_load_extension(ext):
|
||||||
if (self.init_only is None or ext.obj.alias in
|
if (self.init_only is None or ext.obj.alias in
|
||||||
self.init_only) and isinstance(ext.obj,
|
self.init_only) and isinstance(ext.obj,
|
||||||
extensions.V3APIExtensionBase):
|
extensions.V21APIExtensionBase):
|
||||||
|
|
||||||
# Check whitelist is either empty or if not then the extension
|
# Check whitelist is either empty or if not then the extension
|
||||||
# is in the whitelist
|
# is in the whitelist
|
||||||
|
|
|
@ -60,7 +60,7 @@ class AccessIPsController(wsgi.Controller):
|
||||||
self._extend_server(req, server)
|
self._extend_server(req, server)
|
||||||
|
|
||||||
|
|
||||||
class AccessIPs(extensions.V3APIExtensionBase):
|
class AccessIPs(extensions.V21APIExtensionBase):
|
||||||
"""Access IPs support."""
|
"""Access IPs support."""
|
||||||
|
|
||||||
name = "AccessIPs"
|
name = "AccessIPs"
|
||||||
|
|
|
@ -82,7 +82,7 @@ class AdminActionsController(wsgi.Controller):
|
||||||
instance.save(admin_state_reset=True)
|
instance.save(admin_state_reset=True)
|
||||||
|
|
||||||
|
|
||||||
class AdminActions(extensions.V3APIExtensionBase):
|
class AdminActions(extensions.V21APIExtensionBase):
|
||||||
"""Enable admin-only server actions
|
"""Enable admin-only server actions
|
||||||
|
|
||||||
Actions include: resetNetwork, injectNetworkInfo, os-resetState
|
Actions include: resetNetwork, injectNetworkInfo, os-resetState
|
||||||
|
|
|
@ -59,7 +59,7 @@ class AdminPasswordController(wsgi.Controller):
|
||||||
common.raise_feature_not_supported(msg=msg)
|
common.raise_feature_not_supported(msg=msg)
|
||||||
|
|
||||||
|
|
||||||
class AdminPassword(extensions.V3APIExtensionBase):
|
class AdminPassword(extensions.V21APIExtensionBase):
|
||||||
"""Admin password management support."""
|
"""Admin password management support."""
|
||||||
|
|
||||||
name = "AdminPassword"
|
name = "AdminPassword"
|
||||||
|
|
|
@ -157,7 +157,7 @@ class AgentController(wsgi.Controller):
|
||||||
return {'agent': agent}
|
return {'agent': agent}
|
||||||
|
|
||||||
|
|
||||||
class Agents(extensions.V3APIExtensionBase):
|
class Agents(extensions.V21APIExtensionBase):
|
||||||
"""Agents support."""
|
"""Agents support."""
|
||||||
|
|
||||||
name = "Agents"
|
name = "Agents"
|
||||||
|
@ -170,7 +170,7 @@ class Agents(extensions.V3APIExtensionBase):
|
||||||
return resource
|
return resource
|
||||||
|
|
||||||
def get_controller_extensions(self):
|
def get_controller_extensions(self):
|
||||||
"""It's an abstract function V3APIExtensionBase and the extension
|
"""It's an abstract function V21APIExtensionBase and the extension
|
||||||
will not be loaded without it.
|
will not be loaded without it.
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -200,7 +200,7 @@ class AggregateController(wsgi.Controller):
|
||||||
return {"aggregate": _aggregate}
|
return {"aggregate": _aggregate}
|
||||||
|
|
||||||
|
|
||||||
class Aggregates(extensions.V3APIExtensionBase):
|
class Aggregates(extensions.V21APIExtensionBase):
|
||||||
"""Admin-only aggregate administration."""
|
"""Admin-only aggregate administration."""
|
||||||
|
|
||||||
name = "Aggregates"
|
name = "Aggregates"
|
||||||
|
|
|
@ -90,7 +90,7 @@ class AssistedVolumeSnapshotsController(wsgi.Controller):
|
||||||
return exc.HTTPNotFound(explanation=e.format_message())
|
return exc.HTTPNotFound(explanation=e.format_message())
|
||||||
|
|
||||||
|
|
||||||
class AssistedVolumeSnapshots(extensions.V3APIExtensionBase):
|
class AssistedVolumeSnapshots(extensions.V21APIExtensionBase):
|
||||||
"""Assisted volume snapshots."""
|
"""Assisted volume snapshots."""
|
||||||
|
|
||||||
name = "AssistedVolumeSnapshots"
|
name = "AssistedVolumeSnapshots"
|
||||||
|
@ -103,7 +103,7 @@ class AssistedVolumeSnapshots(extensions.V3APIExtensionBase):
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def get_controller_extensions(self):
|
def get_controller_extensions(self):
|
||||||
"""It's an abstract function V3APIExtensionBase and the extension
|
"""It's an abstract function V21APIExtensionBase and the extension
|
||||||
will not be loaded without it.
|
will not be loaded without it.
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -181,7 +181,7 @@ class InterfaceAttachmentController(wsgi.Controller):
|
||||||
return {'interfaceAttachments': results}
|
return {'interfaceAttachments': results}
|
||||||
|
|
||||||
|
|
||||||
class AttachInterfaces(extensions.V3APIExtensionBase):
|
class AttachInterfaces(extensions.V21APIExtensionBase):
|
||||||
"""Attach interface support."""
|
"""Attach interface support."""
|
||||||
|
|
||||||
name = "AttachInterfaces"
|
name = "AttachInterfaces"
|
||||||
|
@ -197,7 +197,7 @@ class AttachInterfaces(extensions.V3APIExtensionBase):
|
||||||
return res
|
return res
|
||||||
|
|
||||||
def get_controller_extensions(self):
|
def get_controller_extensions(self):
|
||||||
"""It's an abstract function V3APIExtensionBase and the extension
|
"""It's an abstract function V21APIExtensionBase and the extension
|
||||||
will not be loaded without it.
|
will not be loaded without it.
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -115,7 +115,7 @@ class AvailabilityZoneController(wsgi.Controller):
|
||||||
return self._describe_availability_zones_verbose(context)
|
return self._describe_availability_zones_verbose(context)
|
||||||
|
|
||||||
|
|
||||||
class AvailabilityZone(extensions.V3APIExtensionBase):
|
class AvailabilityZone(extensions.V21APIExtensionBase):
|
||||||
"""1. Add availability_zone to the Create Server API.
|
"""1. Add availability_zone to the Create Server API.
|
||||||
2. Add availability zones describing.
|
2. Add availability zones describing.
|
||||||
"""
|
"""
|
||||||
|
@ -131,7 +131,7 @@ class AvailabilityZone(extensions.V3APIExtensionBase):
|
||||||
return resource
|
return resource
|
||||||
|
|
||||||
def get_controller_extensions(self):
|
def get_controller_extensions(self):
|
||||||
"""It's an abstract function V3APIExtensionBase and the extension
|
"""It's an abstract function V21APIExtensionBase and the extension
|
||||||
will not be loaded without it.
|
will not be loaded without it.
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -160,7 +160,7 @@ class BareMetalNodeController(wsgi.Controller):
|
||||||
_no_ironic_proxy("port-delete")
|
_no_ironic_proxy("port-delete")
|
||||||
|
|
||||||
|
|
||||||
class BareMetalNodes(extensions.V3APIExtensionBase):
|
class BareMetalNodes(extensions.V21APIExtensionBase):
|
||||||
"""Admin-only bare-metal node administration."""
|
"""Admin-only bare-metal node administration."""
|
||||||
|
|
||||||
name = "BareMetalNodes"
|
name = "BareMetalNodes"
|
||||||
|
@ -174,7 +174,7 @@ class BareMetalNodes(extensions.V3APIExtensionBase):
|
||||||
return resource
|
return resource
|
||||||
|
|
||||||
def get_controller_extensions(self):
|
def get_controller_extensions(self):
|
||||||
"""It's an abstract function V3APIExtensionBase and the extension
|
"""It's an abstract function V21APIExtensionBase and the extension
|
||||||
will not be loaded without it.
|
will not be loaded without it.
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -29,7 +29,7 @@ ATTRIBUTE_NAME = "block_device_mapping_v2"
|
||||||
LEGACY_ATTRIBUTE_NAME = "block_device_mapping"
|
LEGACY_ATTRIBUTE_NAME = "block_device_mapping"
|
||||||
|
|
||||||
|
|
||||||
class BlockDeviceMapping(extensions.V3APIExtensionBase):
|
class BlockDeviceMapping(extensions.V21APIExtensionBase):
|
||||||
"""Block device mapping boot support."""
|
"""Block device mapping boot support."""
|
||||||
|
|
||||||
name = "BlockDeviceMapping"
|
name = "BlockDeviceMapping"
|
||||||
|
|
|
@ -28,7 +28,7 @@ ATTRIBUTE_NAME = "block_device_mapping"
|
||||||
ATTRIBUTE_NAME_V2 = "block_device_mapping_v2"
|
ATTRIBUTE_NAME_V2 = "block_device_mapping_v2"
|
||||||
|
|
||||||
|
|
||||||
class BlockDeviceMappingV1(extensions.V3APIExtensionBase):
|
class BlockDeviceMappingV1(extensions.V21APIExtensionBase):
|
||||||
"""Block device mapping boot support."""
|
"""Block device mapping boot support."""
|
||||||
|
|
||||||
name = "BlockDeviceMappingV1"
|
name = "BlockDeviceMappingV1"
|
||||||
|
|
|
@ -303,7 +303,7 @@ class CellsController(wsgi.Controller):
|
||||||
updated_since=updated_since, deleted=deleted)
|
updated_since=updated_since, deleted=deleted)
|
||||||
|
|
||||||
|
|
||||||
class Cells(extensions.V3APIExtensionBase):
|
class Cells(extensions.V21APIExtensionBase):
|
||||||
"""Enables cells-related functionality such as adding neighbor cells,
|
"""Enables cells-related functionality such as adding neighbor cells,
|
||||||
listing neighbor cells, and getting the capabilities of the local cell.
|
listing neighbor cells, and getting the capabilities of the local cell.
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -72,7 +72,7 @@ class CertificatesController(wsgi.Controller):
|
||||||
return {'certificate': _translate_certificate_view(cert, pk)}
|
return {'certificate': _translate_certificate_view(cert, pk)}
|
||||||
|
|
||||||
|
|
||||||
class Certificates(extensions.V3APIExtensionBase):
|
class Certificates(extensions.V21APIExtensionBase):
|
||||||
"""Certificates support."""
|
"""Certificates support."""
|
||||||
|
|
||||||
name = "Certificates"
|
name = "Certificates"
|
||||||
|
|
|
@ -170,7 +170,7 @@ class CloudpipeController(wsgi.Controller):
|
||||||
nw.save()
|
nw.save()
|
||||||
|
|
||||||
|
|
||||||
class Cloudpipe(extensions.V3APIExtensionBase):
|
class Cloudpipe(extensions.V21APIExtensionBase):
|
||||||
"""Adds actions to create cloudpipe instances.
|
"""Adds actions to create cloudpipe instances.
|
||||||
|
|
||||||
When running with the Vlan network mode, you need a mechanism to route
|
When running with the Vlan network mode, you need a mechanism to route
|
||||||
|
@ -191,7 +191,7 @@ class Cloudpipe(extensions.V3APIExtensionBase):
|
||||||
return resource
|
return resource
|
||||||
|
|
||||||
def get_controller_extensions(self):
|
def get_controller_extensions(self):
|
||||||
"""It's an abstract function V3APIExtensionBase and the extension
|
"""It's an abstract function V21APIExtensionBase and the extension
|
||||||
will not be loaded without it.
|
will not be loaded without it.
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -53,7 +53,7 @@ class ConfigDriveController(wsgi.Controller):
|
||||||
self._add_config_drive(req, servers)
|
self._add_config_drive(req, servers)
|
||||||
|
|
||||||
|
|
||||||
class ConfigDrive(extensions.V3APIExtensionBase):
|
class ConfigDrive(extensions.V21APIExtensionBase):
|
||||||
"""Config Drive Extension."""
|
"""Config Drive Extension."""
|
||||||
|
|
||||||
name = "ConfigDrive"
|
name = "ConfigDrive"
|
||||||
|
|
|
@ -58,7 +58,7 @@ class ConsoleAuthTokensController(wsgi.Controller):
|
||||||
if i in connect_info}}
|
if i in connect_info}}
|
||||||
|
|
||||||
|
|
||||||
class ConsoleAuthTokens(extensions.V3APIExtensionBase):
|
class ConsoleAuthTokens(extensions.V21APIExtensionBase):
|
||||||
"""Console token authentication support."""
|
"""Console token authentication support."""
|
||||||
name = "ConsoleAuthTokens"
|
name = "ConsoleAuthTokens"
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
|
|
|
@ -72,7 +72,7 @@ class ConsoleOutputController(wsgi.Controller):
|
||||||
return {'output': output}
|
return {'output': output}
|
||||||
|
|
||||||
|
|
||||||
class ConsoleOutput(extensions.V3APIExtensionBase):
|
class ConsoleOutput(extensions.V21APIExtensionBase):
|
||||||
"""Console log output support, with tailing ability."""
|
"""Console log output support, with tailing ability."""
|
||||||
|
|
||||||
name = "ConsoleOutput"
|
name = "ConsoleOutput"
|
||||||
|
|
|
@ -107,7 +107,7 @@ class ConsolesController(wsgi.Controller):
|
||||||
raise exc.HTTPNotFound(explanation=e.format_message())
|
raise exc.HTTPNotFound(explanation=e.format_message())
|
||||||
|
|
||||||
|
|
||||||
class Consoles(extensions.V3APIExtensionBase):
|
class Consoles(extensions.V21APIExtensionBase):
|
||||||
"""Consoles."""
|
"""Consoles."""
|
||||||
|
|
||||||
name = "Consoles"
|
name = "Consoles"
|
||||||
|
|
|
@ -83,7 +83,7 @@ class CreateBackupController(wsgi.Controller):
|
||||||
return resp
|
return resp
|
||||||
|
|
||||||
|
|
||||||
class CreateBackup(extensions.V3APIExtensionBase):
|
class CreateBackup(extensions.V21APIExtensionBase):
|
||||||
"""Create a backup of a server."""
|
"""Create a backup of a server."""
|
||||||
|
|
||||||
name = "CreateBackup"
|
name = "CreateBackup"
|
||||||
|
|
|
@ -62,7 +62,7 @@ class DeferredDeleteController(wsgi.Controller):
|
||||||
raise webob.exc.HTTPConflict(explanation=e.format_message())
|
raise webob.exc.HTTPConflict(explanation=e.format_message())
|
||||||
|
|
||||||
|
|
||||||
class DeferredDelete(extensions.V3APIExtensionBase):
|
class DeferredDelete(extensions.V21APIExtensionBase):
|
||||||
"""Instance deferred delete."""
|
"""Instance deferred delete."""
|
||||||
|
|
||||||
name = "DeferredDelete"
|
name = "DeferredDelete"
|
||||||
|
|
|
@ -112,7 +112,7 @@ class ServerDiskConfigController(wsgi.Controller):
|
||||||
self._show(req, resp_obj)
|
self._show(req, resp_obj)
|
||||||
|
|
||||||
|
|
||||||
class DiskConfig(extensions.V3APIExtensionBase):
|
class DiskConfig(extensions.V21APIExtensionBase):
|
||||||
"""Disk Management Extension."""
|
"""Disk Management Extension."""
|
||||||
|
|
||||||
name = "DiskConfig"
|
name = "DiskConfig"
|
||||||
|
|
|
@ -98,7 +98,7 @@ class EvacuateController(wsgi.Controller):
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
|
|
||||||
class Evacuate(extensions.V3APIExtensionBase):
|
class Evacuate(extensions.V21APIExtensionBase):
|
||||||
"""Enables server evacuation."""
|
"""Enables server evacuation."""
|
||||||
|
|
||||||
name = "Evacuate"
|
name = "Evacuate"
|
||||||
|
|
|
@ -53,7 +53,7 @@ class ExtendedAZController(wsgi.Controller):
|
||||||
self._extend_server(context, server, db_instance)
|
self._extend_server(context, server, db_instance)
|
||||||
|
|
||||||
|
|
||||||
class ExtendedAvailabilityZone(extensions.V3APIExtensionBase):
|
class ExtendedAvailabilityZone(extensions.V21APIExtensionBase):
|
||||||
"""Extended Availability Zone support."""
|
"""Extended Availability Zone support."""
|
||||||
|
|
||||||
name = "ExtendedAvailabilityZone"
|
name = "ExtendedAvailabilityZone"
|
||||||
|
|
|
@ -69,7 +69,7 @@ class ExtendedServerAttributesController(wsgi.Controller):
|
||||||
req.api_version_request)
|
req.api_version_request)
|
||||||
|
|
||||||
|
|
||||||
class ExtendedServerAttributes(extensions.V3APIExtensionBase):
|
class ExtendedServerAttributes(extensions.V21APIExtensionBase):
|
||||||
"""Extended Server Attributes support."""
|
"""Extended Server Attributes support."""
|
||||||
|
|
||||||
name = "ExtendedServerAttributes"
|
name = "ExtendedServerAttributes"
|
||||||
|
|
|
@ -55,7 +55,7 @@ class ExtendedStatusController(wsgi.Controller):
|
||||||
self._extend_server(server, db_instance)
|
self._extend_server(server, db_instance)
|
||||||
|
|
||||||
|
|
||||||
class ExtendedStatus(extensions.V3APIExtensionBase):
|
class ExtendedStatus(extensions.V21APIExtensionBase):
|
||||||
"""Extended Status support."""
|
"""Extended Status support."""
|
||||||
|
|
||||||
name = "ExtendedStatus"
|
name = "ExtendedStatus"
|
||||||
|
|
|
@ -65,7 +65,7 @@ class ExtendedVolumesController(wsgi.Controller):
|
||||||
req.api_version_request)
|
req.api_version_request)
|
||||||
|
|
||||||
|
|
||||||
class ExtendedVolumes(extensions.V3APIExtensionBase):
|
class ExtendedVolumes(extensions.V21APIExtensionBase):
|
||||||
"""Extended Volumes support."""
|
"""Extended Volumes support."""
|
||||||
|
|
||||||
name = "ExtendedVolumes"
|
name = "ExtendedVolumes"
|
||||||
|
|
|
@ -199,7 +199,7 @@ class ExtensionInfoController(wsgi.Controller):
|
||||||
return dict(extension=self._translate(ext))
|
return dict(extension=self._translate(ext))
|
||||||
|
|
||||||
|
|
||||||
class ExtensionInfo(extensions.V3APIExtensionBase):
|
class ExtensionInfo(extensions.V21APIExtensionBase):
|
||||||
"""Extension information."""
|
"""Extension information."""
|
||||||
|
|
||||||
name = "Extensions"
|
name = "Extensions"
|
||||||
|
|
|
@ -105,7 +105,7 @@ class FixedIPController(wsgi.Controller):
|
||||||
raise webob.exc.HTTPBadRequest(explanation=msg)
|
raise webob.exc.HTTPBadRequest(explanation=msg)
|
||||||
|
|
||||||
|
|
||||||
class FixedIps(extensions.V3APIExtensionBase):
|
class FixedIps(extensions.V21APIExtensionBase):
|
||||||
"""Fixed IPs support."""
|
"""Fixed IPs support."""
|
||||||
|
|
||||||
name = "FixedIPs"
|
name = "FixedIPs"
|
||||||
|
|
|
@ -142,7 +142,7 @@ class FlavorActionController(wsgi.Controller):
|
||||||
return _marshall_flavor_access(flavor)
|
return _marshall_flavor_access(flavor)
|
||||||
|
|
||||||
|
|
||||||
class FlavorAccess(extensions.V3APIExtensionBase):
|
class FlavorAccess(extensions.V21APIExtensionBase):
|
||||||
"""Flavor access support."""
|
"""Flavor access support."""
|
||||||
|
|
||||||
name = "FlavorAccess"
|
name = "FlavorAccess"
|
||||||
|
|
|
@ -90,7 +90,7 @@ class FlavorManageController(wsgi.Controller):
|
||||||
return self._view_builder.show(req, flavor)
|
return self._view_builder.show(req, flavor)
|
||||||
|
|
||||||
|
|
||||||
class FlavorManage(extensions.V3APIExtensionBase):
|
class FlavorManage(extensions.V21APIExtensionBase):
|
||||||
"""Flavor create/delete API support."""
|
"""Flavor create/delete API support."""
|
||||||
|
|
||||||
name = "FlavorManage"
|
name = "FlavorManage"
|
||||||
|
|
|
@ -49,7 +49,7 @@ class FlavorRxtxController(wsgi.Controller):
|
||||||
self._extend_flavors(req, list(resp_obj.obj['flavors']))
|
self._extend_flavors(req, list(resp_obj.obj['flavors']))
|
||||||
|
|
||||||
|
|
||||||
class FlavorRxtx(extensions.V3APIExtensionBase):
|
class FlavorRxtx(extensions.V21APIExtensionBase):
|
||||||
"""Support to show the rxtx status of a flavor."""
|
"""Support to show the rxtx status of a flavor."""
|
||||||
|
|
||||||
name = "FlavorRxtx"
|
name = "FlavorRxtx"
|
||||||
|
|
|
@ -115,7 +115,7 @@ class FlavorsController(wsgi.Controller):
|
||||||
return limited_flavors
|
return limited_flavors
|
||||||
|
|
||||||
|
|
||||||
class Flavors(extensions.V3APIExtensionBase):
|
class Flavors(extensions.V21APIExtensionBase):
|
||||||
"""Flavors Extension."""
|
"""Flavors Extension."""
|
||||||
name = "Flavors"
|
name = "Flavors"
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
|
|
|
@ -136,7 +136,7 @@ class FlavorExtraSpecsController(wsgi.Controller):
|
||||||
raise webob.exc.HTTPNotFound(explanation=msg)
|
raise webob.exc.HTTPNotFound(explanation=msg)
|
||||||
|
|
||||||
|
|
||||||
class FlavorsExtraSpecs(extensions.V3APIExtensionBase):
|
class FlavorsExtraSpecs(extensions.V21APIExtensionBase):
|
||||||
"""Flavors extra specs support."""
|
"""Flavors extra specs support."""
|
||||||
name = 'FlavorExtraSpecs'
|
name = 'FlavorExtraSpecs'
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
|
|
|
@ -250,7 +250,7 @@ class FloatingIPDNSEntryController(wsgi.Controller):
|
||||||
raise webob.exc.HTTPNotFound(explanation=e.format_message())
|
raise webob.exc.HTTPNotFound(explanation=e.format_message())
|
||||||
|
|
||||||
|
|
||||||
class FloatingIpDns(extensions.V3APIExtensionBase):
|
class FloatingIpDns(extensions.V21APIExtensionBase):
|
||||||
"""Floating IP DNS support."""
|
"""Floating IP DNS support."""
|
||||||
|
|
||||||
name = "FloatingIpDns"
|
name = "FloatingIpDns"
|
||||||
|
@ -273,7 +273,7 @@ class FloatingIpDns(extensions.V3APIExtensionBase):
|
||||||
return resources
|
return resources
|
||||||
|
|
||||||
def get_controller_extensions(self):
|
def get_controller_extensions(self):
|
||||||
"""It's an abstract function V3APIExtensionBase and the extension
|
"""It's an abstract function V21APIExtensionBase and the extension
|
||||||
will not be loaded without it.
|
will not be loaded without it.
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -50,7 +50,7 @@ class FloatingIPPoolsController(wsgi.Controller):
|
||||||
return _translate_floating_ip_pools_view(pools)
|
return _translate_floating_ip_pools_view(pools)
|
||||||
|
|
||||||
|
|
||||||
class FloatingIpPools(extensions.V3APIExtensionBase):
|
class FloatingIpPools(extensions.V21APIExtensionBase):
|
||||||
"""Floating IPs support."""
|
"""Floating IPs support."""
|
||||||
|
|
||||||
name = "FloatingIpPools"
|
name = "FloatingIpPools"
|
||||||
|
@ -63,7 +63,7 @@ class FloatingIpPools(extensions.V3APIExtensionBase):
|
||||||
return resource
|
return resource
|
||||||
|
|
||||||
def get_controller_extensions(self):
|
def get_controller_extensions(self):
|
||||||
"""It's an abstract function V3APIExtensionBase and the extension
|
"""It's an abstract function V21APIExtensionBase and the extension
|
||||||
will not be loaded without it.
|
will not be loaded without it.
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -295,7 +295,7 @@ class FloatingIPActionController(wsgi.Controller):
|
||||||
raise webob.exc.HTTPConflict(explanation=msg)
|
raise webob.exc.HTTPConflict(explanation=msg)
|
||||||
|
|
||||||
|
|
||||||
class FloatingIps(extensions.V3APIExtensionBase):
|
class FloatingIps(extensions.V21APIExtensionBase):
|
||||||
"""Floating IPs support."""
|
"""Floating IPs support."""
|
||||||
|
|
||||||
name = "FloatingIps"
|
name = "FloatingIps"
|
||||||
|
|
|
@ -152,7 +152,7 @@ class FloatingIPBulkController(wsgi.Controller):
|
||||||
raise exception.InvalidInput(reason=six.text_type(exc))
|
raise exception.InvalidInput(reason=six.text_type(exc))
|
||||||
|
|
||||||
|
|
||||||
class FloatingIpsBulk(extensions.V3APIExtensionBase):
|
class FloatingIpsBulk(extensions.V21APIExtensionBase):
|
||||||
"""Bulk handling of Floating IPs."""
|
"""Bulk handling of Floating IPs."""
|
||||||
|
|
||||||
name = "FloatingIpsBulk"
|
name = "FloatingIpsBulk"
|
||||||
|
@ -165,7 +165,7 @@ class FloatingIpsBulk(extensions.V3APIExtensionBase):
|
||||||
return resource
|
return resource
|
||||||
|
|
||||||
def get_controller_extensions(self):
|
def get_controller_extensions(self):
|
||||||
"""It's an abstract function V3APIExtensionBase and the extension
|
"""It's an abstract function V21APIExtensionBase and the extension
|
||||||
will not be loaded without it.
|
will not be loaded without it.
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -137,7 +137,7 @@ class FpingController(wsgi.Controller):
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class Fping(extensions.V3APIExtensionBase):
|
class Fping(extensions.V21APIExtensionBase):
|
||||||
"""Fping Management Extension."""
|
"""Fping Management Extension."""
|
||||||
|
|
||||||
name = "Fping"
|
name = "Fping"
|
||||||
|
|
|
@ -74,7 +74,7 @@ class Controller(wsgi.Controller):
|
||||||
self._perhaps_hide_addresses(instance, server)
|
self._perhaps_hide_addresses(instance, server)
|
||||||
|
|
||||||
|
|
||||||
class HideServerAddresses(extensions.V3APIExtensionBase):
|
class HideServerAddresses(extensions.V21APIExtensionBase):
|
||||||
"""Support hiding server addresses in certain states."""
|
"""Support hiding server addresses in certain states."""
|
||||||
|
|
||||||
name = 'HideServerAddresses'
|
name = 'HideServerAddresses'
|
||||||
|
|
|
@ -283,7 +283,7 @@ class HostController(wsgi.Controller):
|
||||||
return {'host': resources}
|
return {'host': resources}
|
||||||
|
|
||||||
|
|
||||||
class Hosts(extensions.V3APIExtensionBase):
|
class Hosts(extensions.V21APIExtensionBase):
|
||||||
"""Admin-only host administration."""
|
"""Admin-only host administration."""
|
||||||
|
|
||||||
name = "Hosts"
|
name = "Hosts"
|
||||||
|
|
|
@ -181,7 +181,7 @@ class HypervisorsController(wsgi.Controller):
|
||||||
return dict(hypervisor_statistics=stats)
|
return dict(hypervisor_statistics=stats)
|
||||||
|
|
||||||
|
|
||||||
class Hypervisors(extensions.V3APIExtensionBase):
|
class Hypervisors(extensions.V21APIExtensionBase):
|
||||||
"""Admin-only hypervisor administration."""
|
"""Admin-only hypervisor administration."""
|
||||||
|
|
||||||
name = "Hypervisors"
|
name = "Hypervisors"
|
||||||
|
|
|
@ -128,7 +128,7 @@ class ImageMetadataController(wsgi.Controller):
|
||||||
raise exc.HTTPForbidden(explanation=e.format_message())
|
raise exc.HTTPForbidden(explanation=e.format_message())
|
||||||
|
|
||||||
|
|
||||||
class ImageMetadata(extensions.V3APIExtensionBase):
|
class ImageMetadata(extensions.V21APIExtensionBase):
|
||||||
"""Image Metadata API."""
|
"""Image Metadata API."""
|
||||||
name = "ImageMetadata"
|
name = "ImageMetadata"
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
|
|
|
@ -49,7 +49,7 @@ class ImageSizeController(wsgi.Controller):
|
||||||
self._extend_image(image, image_cached)
|
self._extend_image(image, image_cached)
|
||||||
|
|
||||||
|
|
||||||
class ImageSize(extensions.V3APIExtensionBase):
|
class ImageSize(extensions.V21APIExtensionBase):
|
||||||
"""Adds image size to image listings."""
|
"""Adds image size to image listings."""
|
||||||
|
|
||||||
name = "ImageSize"
|
name = "ImageSize"
|
||||||
|
|
|
@ -150,7 +150,7 @@ class ImagesController(wsgi.Controller):
|
||||||
return self._view_builder.detail(req, images)
|
return self._view_builder.detail(req, images)
|
||||||
|
|
||||||
|
|
||||||
class Images(extensions.V3APIExtensionBase):
|
class Images(extensions.V21APIExtensionBase):
|
||||||
"""Proxying API for Images."""
|
"""Proxying API for Images."""
|
||||||
|
|
||||||
name = "Images"
|
name = "Images"
|
||||||
|
|
|
@ -80,7 +80,7 @@ class InstanceActionsController(wsgi.Controller):
|
||||||
return {'instanceAction': action}
|
return {'instanceAction': action}
|
||||||
|
|
||||||
|
|
||||||
class InstanceActions(extensions.V3APIExtensionBase):
|
class InstanceActions(extensions.V21APIExtensionBase):
|
||||||
"""View a log of actions and events taken on an instance."""
|
"""View a log of actions and events taken on an instance."""
|
||||||
|
|
||||||
name = "InstanceActions"
|
name = "InstanceActions"
|
||||||
|
@ -96,7 +96,7 @@ class InstanceActions(extensions.V3APIExtensionBase):
|
||||||
return [ext]
|
return [ext]
|
||||||
|
|
||||||
def get_controller_extensions(self):
|
def get_controller_extensions(self):
|
||||||
"""It's an abstract function V3APIExtensionBase and the extension
|
"""It's an abstract function V21APIExtensionBase and the extension
|
||||||
will not be loaded without it.
|
will not be loaded without it.
|
||||||
"""
|
"""
|
||||||
return []
|
return []
|
||||||
|
|
|
@ -126,7 +126,7 @@ class InstanceUsageAuditLogController(wsgi.Controller):
|
||||||
log=log)
|
log=log)
|
||||||
|
|
||||||
|
|
||||||
class InstanceUsageAuditLog(extensions.V3APIExtensionBase):
|
class InstanceUsageAuditLog(extensions.V21APIExtensionBase):
|
||||||
"""Admin-only Task Log Monitoring."""
|
"""Admin-only Task Log Monitoring."""
|
||||||
name = "OSInstanceUsageAuditLog"
|
name = "OSInstanceUsageAuditLog"
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
|
|
|
@ -59,7 +59,7 @@ class IPsController(wsgi.Controller):
|
||||||
return self._view_builder.show(networks[id], id)
|
return self._view_builder.show(networks[id], id)
|
||||||
|
|
||||||
|
|
||||||
class IPs(extensions.V3APIExtensionBase):
|
class IPs(extensions.V21APIExtensionBase):
|
||||||
"""Server addresses."""
|
"""Server addresses."""
|
||||||
|
|
||||||
name = "Ips"
|
name = "Ips"
|
||||||
|
|
|
@ -281,7 +281,7 @@ class Controller(wsgi.Controller):
|
||||||
self._add_key_name(req, servers)
|
self._add_key_name(req, servers)
|
||||||
|
|
||||||
|
|
||||||
class Keypairs(extensions.V3APIExtensionBase):
|
class Keypairs(extensions.V21APIExtensionBase):
|
||||||
"""Keypair Support."""
|
"""Keypair Support."""
|
||||||
|
|
||||||
name = "Keypairs"
|
name = "Keypairs"
|
||||||
|
|
|
@ -51,7 +51,7 @@ class LimitsController(wsgi.Controller):
|
||||||
return limits_views.ViewBuilderV3()
|
return limits_views.ViewBuilderV3()
|
||||||
|
|
||||||
|
|
||||||
class Limits(extensions.V3APIExtensionBase):
|
class Limits(extensions.V21APIExtensionBase):
|
||||||
"""Limits support."""
|
"""Limits support."""
|
||||||
|
|
||||||
name = "Limits"
|
name = "Limits"
|
||||||
|
|
|
@ -53,7 +53,7 @@ class LockServerController(wsgi.Controller):
|
||||||
self.compute_api.unlock(context, instance)
|
self.compute_api.unlock(context, instance)
|
||||||
|
|
||||||
|
|
||||||
class LockServer(extensions.V3APIExtensionBase):
|
class LockServer(extensions.V21APIExtensionBase):
|
||||||
"""Enable lock/unlock server actions."""
|
"""Enable lock/unlock server actions."""
|
||||||
|
|
||||||
name = "LockServer"
|
name = "LockServer"
|
||||||
|
|
|
@ -99,7 +99,7 @@ class MigrateServerController(wsgi.Controller):
|
||||||
'os-migrateLive', id)
|
'os-migrateLive', id)
|
||||||
|
|
||||||
|
|
||||||
class MigrateServer(extensions.V3APIExtensionBase):
|
class MigrateServer(extensions.V21APIExtensionBase):
|
||||||
"""Enable migrate and live-migrate server actions."""
|
"""Enable migrate and live-migrate server actions."""
|
||||||
|
|
||||||
name = "MigrateServer"
|
name = "MigrateServer"
|
||||||
|
|
|
@ -53,7 +53,7 @@ class MigrationsController(wsgi.Controller):
|
||||||
return {'migrations': output(migrations)}
|
return {'migrations': output(migrations)}
|
||||||
|
|
||||||
|
|
||||||
class Migrations(extensions.V3APIExtensionBase):
|
class Migrations(extensions.V21APIExtensionBase):
|
||||||
"""Provide data on migrations."""
|
"""Provide data on migrations."""
|
||||||
name = "Migrations"
|
name = "Migrations"
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
|
|
|
@ -71,7 +71,7 @@ class MultinicController(wsgi.Controller):
|
||||||
|
|
||||||
# Note: The class name is as it has to be for this to be loaded as an
|
# Note: The class name is as it has to be for this to be loaded as an
|
||||||
# extension--only first character capitalized.
|
# extension--only first character capitalized.
|
||||||
class Multinic(extensions.V3APIExtensionBase):
|
class Multinic(extensions.V21APIExtensionBase):
|
||||||
"""Multiple network support."""
|
"""Multiple network support."""
|
||||||
|
|
||||||
name = "Multinic"
|
name = "Multinic"
|
||||||
|
|
|
@ -26,7 +26,7 @@ MAX_ATTRIBUTE_NAME = "max_count"
|
||||||
RRID_ATTRIBUTE_NAME = "return_reservation_id"
|
RRID_ATTRIBUTE_NAME = "return_reservation_id"
|
||||||
|
|
||||||
|
|
||||||
class MultipleCreate(extensions.V3APIExtensionBase):
|
class MultipleCreate(extensions.V21APIExtensionBase):
|
||||||
"""Allow multiple create in the Create Server v3 API."""
|
"""Allow multiple create in the Create Server v3 API."""
|
||||||
|
|
||||||
name = "MultipleCreate"
|
name = "MultipleCreate"
|
||||||
|
|
|
@ -175,7 +175,7 @@ class NetworkController(wsgi.Controller):
|
||||||
raise exc.HTTPBadRequest(explanation=e.format_message())
|
raise exc.HTTPBadRequest(explanation=e.format_message())
|
||||||
|
|
||||||
|
|
||||||
class Networks(extensions.V3APIExtensionBase):
|
class Networks(extensions.V21APIExtensionBase):
|
||||||
"""Admin-only Network Management Extension."""
|
"""Admin-only Network Management Extension."""
|
||||||
|
|
||||||
name = "Networks"
|
name = "Networks"
|
||||||
|
|
|
@ -78,7 +78,7 @@ class NetworkAssociateActionController(wsgi.Controller):
|
||||||
common.raise_feature_not_supported()
|
common.raise_feature_not_supported()
|
||||||
|
|
||||||
|
|
||||||
class NetworksAssociate(extensions.V3APIExtensionBase):
|
class NetworksAssociate(extensions.V21APIExtensionBase):
|
||||||
"""Network association support."""
|
"""Network association support."""
|
||||||
|
|
||||||
name = "NetworkAssociationSupport"
|
name = "NetworkAssociationSupport"
|
||||||
|
|
|
@ -72,7 +72,7 @@ class PauseServerController(wsgi.Controller):
|
||||||
common.raise_feature_not_supported()
|
common.raise_feature_not_supported()
|
||||||
|
|
||||||
|
|
||||||
class PauseServer(extensions.V3APIExtensionBase):
|
class PauseServer(extensions.V21APIExtensionBase):
|
||||||
"""Enable pause/unpause server actions."""
|
"""Enable pause/unpause server actions."""
|
||||||
|
|
||||||
name = "PauseServer"
|
name = "PauseServer"
|
||||||
|
|
|
@ -131,7 +131,7 @@ class PciController(wsgi.Controller):
|
||||||
return dict(pci_devices=results)
|
return dict(pci_devices=results)
|
||||||
|
|
||||||
|
|
||||||
class Pci(extensions.V3APIExtensionBase):
|
class Pci(extensions.V21APIExtensionBase):
|
||||||
"""Pci access support."""
|
"""Pci access support."""
|
||||||
name = "PciAccess"
|
name = "PciAccess"
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
|
|
|
@ -18,7 +18,7 @@ from nova.api.openstack import extensions
|
||||||
ALIAS = "os-personality"
|
ALIAS = "os-personality"
|
||||||
|
|
||||||
|
|
||||||
class Personality(extensions.V3APIExtensionBase):
|
class Personality(extensions.V21APIExtensionBase):
|
||||||
"""Personality support."""
|
"""Personality support."""
|
||||||
|
|
||||||
name = "Personality"
|
name = "Personality"
|
||||||
|
|
|
@ -21,7 +21,7 @@ from nova.api.openstack import extensions
|
||||||
ALIAS = "os-preserve-ephemeral-rebuild"
|
ALIAS = "os-preserve-ephemeral-rebuild"
|
||||||
|
|
||||||
|
|
||||||
class PreserveEphemeralRebuild(extensions.V3APIExtensionBase):
|
class PreserveEphemeralRebuild(extensions.V21APIExtensionBase):
|
||||||
"""Allow preservation of the ephemeral partition on rebuild."""
|
"""Allow preservation of the ephemeral partition on rebuild."""
|
||||||
|
|
||||||
name = "PreserveEphemeralOnRebuild"
|
name = "PreserveEphemeralOnRebuild"
|
||||||
|
|
|
@ -93,7 +93,7 @@ class QuotaClassSetsController(wsgi.Controller):
|
||||||
return self._format_quota_set(None, values)
|
return self._format_quota_set(None, values)
|
||||||
|
|
||||||
|
|
||||||
class QuotaClasses(extensions.V3APIExtensionBase):
|
class QuotaClasses(extensions.V21APIExtensionBase):
|
||||||
"""Quota classes management support."""
|
"""Quota classes management support."""
|
||||||
|
|
||||||
name = "QuotaClasses"
|
name = "QuotaClasses"
|
||||||
|
|
|
@ -171,7 +171,7 @@ class QuotaSetsController(wsgi.Controller):
|
||||||
QUOTAS.destroy_all_by_project(context, id)
|
QUOTAS.destroy_all_by_project(context, id)
|
||||||
|
|
||||||
|
|
||||||
class QuotaSets(extensions.V3APIExtensionBase):
|
class QuotaSets(extensions.V21APIExtensionBase):
|
||||||
"""Quotas management support."""
|
"""Quotas management support."""
|
||||||
|
|
||||||
name = "Quotas"
|
name = "Quotas"
|
||||||
|
|
|
@ -183,7 +183,7 @@ class RemoteConsolesController(wsgi.Controller):
|
||||||
common.raise_feature_not_supported()
|
common.raise_feature_not_supported()
|
||||||
|
|
||||||
|
|
||||||
class RemoteConsoles(extensions.V3APIExtensionBase):
|
class RemoteConsoles(extensions.V21APIExtensionBase):
|
||||||
"""Interactive Console support."""
|
"""Interactive Console support."""
|
||||||
name = "Consoles"
|
name = "Consoles"
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
|
|
|
@ -99,7 +99,7 @@ class RescueController(wsgi.Controller):
|
||||||
id)
|
id)
|
||||||
|
|
||||||
|
|
||||||
class Rescue(extensions.V3APIExtensionBase):
|
class Rescue(extensions.V21APIExtensionBase):
|
||||||
"""Instance rescue mode."""
|
"""Instance rescue mode."""
|
||||||
|
|
||||||
name = "Rescue"
|
name = "Rescue"
|
||||||
|
|
|
@ -18,7 +18,7 @@ from nova.api.openstack import extensions
|
||||||
ALIAS = "os-scheduler-hints"
|
ALIAS = "os-scheduler-hints"
|
||||||
|
|
||||||
|
|
||||||
class SchedulerHints(extensions.V3APIExtensionBase):
|
class SchedulerHints(extensions.V21APIExtensionBase):
|
||||||
"""Pass arbitrary key/value pairs to the scheduler."""
|
"""Pass arbitrary key/value pairs to the scheduler."""
|
||||||
|
|
||||||
name = "SchedulerHints"
|
name = "SchedulerHints"
|
||||||
|
|
|
@ -131,7 +131,7 @@ class SecurityGroupDefaultRulesController(sg.SecurityGroupControllerBase):
|
||||||
return sg_rule
|
return sg_rule
|
||||||
|
|
||||||
|
|
||||||
class SecurityGroupDefaultRules(extensions.V3APIExtensionBase):
|
class SecurityGroupDefaultRules(extensions.V21APIExtensionBase):
|
||||||
"""Default rules for security group support."""
|
"""Default rules for security group support."""
|
||||||
name = "SecurityGroupDefaultRules"
|
name = "SecurityGroupDefaultRules"
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
|
|
|
@ -492,7 +492,7 @@ class SecurityGroupsOutputController(wsgi.Controller):
|
||||||
self._extend_servers(req, list(resp_obj.obj['servers']))
|
self._extend_servers(req, list(resp_obj.obj['servers']))
|
||||||
|
|
||||||
|
|
||||||
class SecurityGroups(extensions.V3APIExtensionBase):
|
class SecurityGroups(extensions.V21APIExtensionBase):
|
||||||
"""Security group support."""
|
"""Security group support."""
|
||||||
name = "SecurityGroups"
|
name = "SecurityGroups"
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
|
|
|
@ -49,7 +49,7 @@ class ServerDiagnosticsController(wsgi.Controller):
|
||||||
common.raise_feature_not_supported()
|
common.raise_feature_not_supported()
|
||||||
|
|
||||||
|
|
||||||
class ServerDiagnostics(extensions.V3APIExtensionBase):
|
class ServerDiagnostics(extensions.V21APIExtensionBase):
|
||||||
"""Allow Admins to view server diagnostics through server action."""
|
"""Allow Admins to view server diagnostics through server action."""
|
||||||
|
|
||||||
name = "ServerDiagnostics"
|
name = "ServerDiagnostics"
|
||||||
|
|
|
@ -115,7 +115,7 @@ class ServerExternalEventsController(wsgi.Controller):
|
||||||
return robj
|
return robj
|
||||||
|
|
||||||
|
|
||||||
class ServerExternalEvents(extensions.V3APIExtensionBase):
|
class ServerExternalEvents(extensions.V21APIExtensionBase):
|
||||||
"""Server External Event Triggers."""
|
"""Server External Event Triggers."""
|
||||||
|
|
||||||
name = "ServerExternalEvents"
|
name = "ServerExternalEvents"
|
||||||
|
|
|
@ -156,7 +156,7 @@ class ServerGroupController(wsgi.Controller):
|
||||||
return {'server_group': self._format_server_group(context, sg)}
|
return {'server_group': self._format_server_group(context, sg)}
|
||||||
|
|
||||||
|
|
||||||
class ServerGroups(extensions.V3APIExtensionBase):
|
class ServerGroups(extensions.V21APIExtensionBase):
|
||||||
"""Server group support."""
|
"""Server group support."""
|
||||||
name = "ServerGroups"
|
name = "ServerGroups"
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
|
|
|
@ -159,7 +159,7 @@ class ServerMetadataController(wsgi.Controller):
|
||||||
'delete metadata', server_id)
|
'delete metadata', server_id)
|
||||||
|
|
||||||
|
|
||||||
class ServerMetadata(extensions.V3APIExtensionBase):
|
class ServerMetadata(extensions.V21APIExtensionBase):
|
||||||
"""Server Metadata API."""
|
"""Server Metadata API."""
|
||||||
name = "ServerMetadata"
|
name = "ServerMetadata"
|
||||||
alias = ALIAS
|
alias = ALIAS
|
||||||
|
|
|
@ -57,7 +57,7 @@ class ServerPasswordController(wsgi.Controller):
|
||||||
instance.save()
|
instance.save()
|
||||||
|
|
||||||
|
|
||||||
class ServerPassword(extensions.V3APIExtensionBase):
|
class ServerPassword(extensions.V21APIExtensionBase):
|
||||||
"""Server password support."""
|
"""Server password support."""
|
||||||
|
|
||||||
name = "ServerPassword"
|
name = "ServerPassword"
|
||||||
|
|
|
@ -60,7 +60,7 @@ class ServerUsageController(wsgi.Controller):
|
||||||
self._extend_server(server, db_instance)
|
self._extend_server(server, db_instance)
|
||||||
|
|
||||||
|
|
||||||
class ServerUsage(extensions.V3APIExtensionBase):
|
class ServerUsage(extensions.V21APIExtensionBase):
|
||||||
"""Adds launched_at and terminated_at on Servers."""
|
"""Adds launched_at and terminated_at on Servers."""
|
||||||
|
|
||||||
name = "ServerUsage"
|
name = "ServerUsage"
|
||||||
|
|
|
@ -117,7 +117,7 @@ class ServersController(wsgi.Controller):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def check_load_extension(ext):
|
def check_load_extension(ext):
|
||||||
if isinstance(ext.obj, extensions.V3APIExtensionBase):
|
if isinstance(ext.obj, extensions.V21APIExtensionBase):
|
||||||
# Filter out for the existence of the required
|
# Filter out for the existence of the required
|
||||||
# function here rather than on every request. We
|
# function here rather than on every request. We
|
||||||
# don't have a new abstract base class to reduce
|
# don't have a new abstract base class to reduce
|
||||||
|
@ -1134,7 +1134,7 @@ def remove_invalid_options(context, search_options, allowed_search_options):
|
||||||
search_options.pop(opt, None)
|
search_options.pop(opt, None)
|
||||||
|
|
||||||
|
|
||||||
class Servers(extensions.V3APIExtensionBase):
|
class Servers(extensions.V21APIExtensionBase):
|
||||||
"""Servers."""
|
"""Servers."""
|
||||||
|
|
||||||
name = "Servers"
|
name = "Servers"
|
||||||
|
|
|
@ -199,7 +199,7 @@ class ServiceController(wsgi.Controller):
|
||||||
return self._perform_action(req, id, body, actions)
|
return self._perform_action(req, id, body, actions)
|
||||||
|
|
||||||
|
|
||||||
class Services(extensions.V3APIExtensionBase):
|
class Services(extensions.V21APIExtensionBase):
|
||||||
"""Services support."""
|
"""Services support."""
|
||||||
|
|
||||||
name = "Services"
|
name = "Services"
|
||||||
|
|
|
@ -85,7 +85,7 @@ class ShelveController(wsgi.Controller):
|
||||||
id)
|
id)
|
||||||
|
|
||||||
|
|
||||||
class Shelve(exts.V3APIExtensionBase):
|
class Shelve(exts.V21APIExtensionBase):
|
||||||
"""Instance shelve mode."""
|
"""Instance shelve mode."""
|
||||||
|
|
||||||
name = "Shelve"
|
name = "Shelve"
|
||||||
|
|
|
@ -269,7 +269,7 @@ class SimpleTenantUsageController(wsgi.Controller):
|
||||||
return {'tenant_usage': usage}
|
return {'tenant_usage': usage}
|
||||||
|
|
||||||
|
|
||||||
class SimpleTenantUsage(extensions.V3APIExtensionBase):
|
class SimpleTenantUsage(extensions.V21APIExtensionBase):
|
||||||
"""Simple tenant usage extension."""
|
"""Simple tenant usage extension."""
|
||||||
|
|
||||||
name = "SimpleTenantUsage"
|
name = "SimpleTenantUsage"
|
||||||
|
|
|
@ -64,7 +64,7 @@ class SuspendServerController(wsgi.Controller):
|
||||||
'resume', id)
|
'resume', id)
|
||||||
|
|
||||||
|
|
||||||
class SuspendServer(extensions.V3APIExtensionBase):
|
class SuspendServer(extensions.V21APIExtensionBase):
|
||||||
"""Enable suspend/resume server actions."""
|
"""Enable suspend/resume server actions."""
|
||||||
|
|
||||||
name = "SuspendServer"
|
name = "SuspendServer"
|
||||||
|
|
|
@ -188,7 +188,7 @@ class TenantNetworkController(wsgi.Controller):
|
||||||
return {"network": network_dict(networks[0])}
|
return {"network": network_dict(networks[0])}
|
||||||
|
|
||||||
|
|
||||||
class TenantNetworks(extensions.V3APIExtensionBase):
|
class TenantNetworks(extensions.V21APIExtensionBase):
|
||||||
"""Tenant-based Network Management Extension."""
|
"""Tenant-based Network Management Extension."""
|
||||||
|
|
||||||
name = "OSTenantNetworks"
|
name = "OSTenantNetworks"
|
||||||
|
|
|
@ -70,7 +70,7 @@ class UsedLimitsController(wsgi.Controller):
|
||||||
return context.project_id
|
return context.project_id
|
||||||
|
|
||||||
|
|
||||||
class UsedLimits(extensions.V3APIExtensionBase):
|
class UsedLimits(extensions.V21APIExtensionBase):
|
||||||
"""Provide data on limited resources that are being used."""
|
"""Provide data on limited resources that are being used."""
|
||||||
|
|
||||||
name = "UsedLimits"
|
name = "UsedLimits"
|
||||||
|
|
|
@ -20,7 +20,7 @@ ALIAS = "os-user-data"
|
||||||
ATTRIBUTE_NAME = 'user_data'
|
ATTRIBUTE_NAME = 'user_data'
|
||||||
|
|
||||||
|
|
||||||
class UserData(extensions.V3APIExtensionBase):
|
class UserData(extensions.V21APIExtensionBase):
|
||||||
"""Add user_data to the Create Server API."""
|
"""Add user_data to the Create Server API."""
|
||||||
|
|
||||||
name = "UserData"
|
name = "UserData"
|
||||||
|
|
|
@ -36,7 +36,7 @@ class VersionsController(wsgi.Controller):
|
||||||
return builder.build_version(versions.VERSIONS[id])
|
return builder.build_version(versions.VERSIONS[id])
|
||||||
|
|
||||||
|
|
||||||
class Versions(extensions.V3APIExtensionBase):
|
class Versions(extensions.V21APIExtensionBase):
|
||||||
"""API Version information."""
|
"""API Version information."""
|
||||||
|
|
||||||
name = "Versions"
|
name = "Versions"
|
||||||
|
|
|
@ -61,7 +61,7 @@ class ServerVirtualInterfaceController(wsgi.Controller):
|
||||||
entity_maker=_translate_vif_summary_view)
|
entity_maker=_translate_vif_summary_view)
|
||||||
|
|
||||||
|
|
||||||
class VirtualInterfaces(extensions.V3APIExtensionBase):
|
class VirtualInterfaces(extensions.V21APIExtensionBase):
|
||||||
"""Virtual interface support."""
|
"""Virtual interface support."""
|
||||||
|
|
||||||
name = "VirtualInterfaces"
|
name = "VirtualInterfaces"
|
||||||
|
|
|
@ -530,7 +530,7 @@ class SnapshotController(wsgi.Controller):
|
||||||
return {'snapshot': retval}
|
return {'snapshot': retval}
|
||||||
|
|
||||||
|
|
||||||
class Volumes(extensions.V3APIExtensionBase):
|
class Volumes(extensions.V21APIExtensionBase):
|
||||||
"""Volumes support."""
|
"""Volumes support."""
|
||||||
|
|
||||||
name = "Volumes"
|
name = "Volumes"
|
||||||
|
|
|
@ -404,7 +404,7 @@ def os_compute_soft_authorizer(extension_name):
|
||||||
|
|
||||||
|
|
||||||
@six.add_metaclass(abc.ABCMeta)
|
@six.add_metaclass(abc.ABCMeta)
|
||||||
class V3APIExtensionBase(object):
|
class V21APIExtensionBase(object):
|
||||||
"""Abstract base class for all V3 API extensions.
|
"""Abstract base class for all V3 API extensions.
|
||||||
|
|
||||||
All V3 API extensions must derive from this class and implement
|
All V3 API extensions must derive from this class and implement
|
||||||
|
|
|
@ -74,7 +74,7 @@ class ExtensionInfoTest(test.NoDBTestCase):
|
||||||
|
|
||||||
def test_extension_info_list(self):
|
def test_extension_info_list(self):
|
||||||
self.stubs.Set(policy, 'enforce', fake_policy_enforce)
|
self.stubs.Set(policy, 'enforce', fake_policy_enforce)
|
||||||
req = fakes.HTTPRequestV3.blank('/extensions')
|
req = fakes.HTTPRequestV21.blank('/extensions')
|
||||||
res_dict = self.controller.index(req)
|
res_dict = self.controller.index(req)
|
||||||
self.assertEqual(3, len(res_dict['extensions']))
|
self.assertEqual(3, len(res_dict['extensions']))
|
||||||
for e in res_dict['extensions']:
|
for e in res_dict['extensions']:
|
||||||
|
@ -89,7 +89,7 @@ class ExtensionInfoTest(test.NoDBTestCase):
|
||||||
|
|
||||||
def test_extension_info_show(self):
|
def test_extension_info_show(self):
|
||||||
self.stubs.Set(policy, 'enforce', fake_policy_enforce)
|
self.stubs.Set(policy, 'enforce', fake_policy_enforce)
|
||||||
req = fakes.HTTPRequestV3.blank('/extensions/ext1-alias')
|
req = fakes.HTTPRequestV21.blank('/extensions/ext1-alias')
|
||||||
res_dict = self.controller.show(req, 'ext1-alias')
|
res_dict = self.controller.show(req, 'ext1-alias')
|
||||||
self.assertEqual(1, len(res_dict))
|
self.assertEqual(1, len(res_dict))
|
||||||
self.assertEqual(res_dict['extension']['name'],
|
self.assertEqual(res_dict['extension']['name'],
|
||||||
|
@ -104,7 +104,7 @@ class ExtensionInfoTest(test.NoDBTestCase):
|
||||||
|
|
||||||
def test_extension_info_list_not_all_discoverable(self):
|
def test_extension_info_list_not_all_discoverable(self):
|
||||||
self.stubs.Set(policy, 'enforce', fake_policy_enforce_selective)
|
self.stubs.Set(policy, 'enforce', fake_policy_enforce_selective)
|
||||||
req = fakes.HTTPRequestV3.blank('/extensions')
|
req = fakes.HTTPRequestV21.blank('/extensions')
|
||||||
res_dict = self.controller.index(req)
|
res_dict = self.controller.index(req)
|
||||||
self.assertEqual(2, len(res_dict['extensions']))
|
self.assertEqual(2, len(res_dict['extensions']))
|
||||||
for e in res_dict['extensions']:
|
for e in res_dict['extensions']:
|
||||||
|
|
|
@ -115,7 +115,7 @@ def return_flavor_not_found(flavor_id, ctxt=None):
|
||||||
class FlavorsTestV21(test.TestCase):
|
class FlavorsTestV21(test.TestCase):
|
||||||
_prefix = "/v3"
|
_prefix = "/v3"
|
||||||
Controller = flavors_v21.FlavorsController
|
Controller = flavors_v21.FlavorsController
|
||||||
fake_request = fakes.HTTPRequestV3
|
fake_request = fakes.HTTPRequestV21
|
||||||
_rspv = "v3"
|
_rspv = "v3"
|
||||||
_fake = ""
|
_fake = ""
|
||||||
|
|
||||||
|
@ -580,7 +580,7 @@ class DisabledFlavorsWithRealDBTestV21(test.TestCase):
|
||||||
"""Tests that disabled flavors should not be shown nor listed."""
|
"""Tests that disabled flavors should not be shown nor listed."""
|
||||||
Controller = flavors_v21.FlavorsController
|
Controller = flavors_v21.FlavorsController
|
||||||
_prefix = "/v3"
|
_prefix = "/v3"
|
||||||
fake_request = fakes.HTTPRequestV3
|
fake_request = fakes.HTTPRequestV21
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super(DisabledFlavorsWithRealDBTestV21, self).setUp()
|
super(DisabledFlavorsWithRealDBTestV21, self).setUp()
|
||||||
|
|
|
@ -46,7 +46,7 @@ class ImagesControllerTestV21(test.NoDBTestCase):
|
||||||
image_controller_class = images_v21.ImagesController
|
image_controller_class = images_v21.ImagesController
|
||||||
url_base = '/v3'
|
url_base = '/v3'
|
||||||
bookmark_base = ''
|
bookmark_base = ''
|
||||||
http_request = fakes.HTTPRequestV3
|
http_request = fakes.HTTPRequestV21
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
"""Run before each test."""
|
"""Run before each test."""
|
||||||
|
|
|
@ -28,7 +28,7 @@ class BasicController(wsgi.Controller):
|
||||||
return data
|
return data
|
||||||
|
|
||||||
|
|
||||||
class Basic(extensions.V3APIExtensionBase):
|
class Basic(extensions.V21APIExtensionBase):
|
||||||
"""Basic Test Extension."""
|
"""Basic Test Extension."""
|
||||||
|
|
||||||
name = "BasicTest"
|
name = "BasicTest"
|
||||||
|
|
|
@ -124,7 +124,7 @@ class MicroversionsExtendsController3(wsgi.Controller):
|
||||||
resp_obj.obj['extend_ctrlr3'] = 'val_3'
|
resp_obj.obj['extend_ctrlr3'] = 'val_3'
|
||||||
|
|
||||||
|
|
||||||
class Microversions(extensions.V3APIExtensionBase):
|
class Microversions(extensions.V21APIExtensionBase):
|
||||||
"""Basic Microversions Extension."""
|
"""Basic Microversions Extension."""
|
||||||
|
|
||||||
name = "Microversions"
|
name = "Microversions"
|
||||||
|
|
|
@ -138,7 +138,7 @@ class ServerMetaDataTestV21(test.TestCase):
|
||||||
self.url = '/fake/servers/%s/metadata' % self.uuid
|
self.url = '/fake/servers/%s/metadata' % self.uuid
|
||||||
|
|
||||||
def _get_request(self, param_url=''):
|
def _get_request(self, param_url=''):
|
||||||
return fakes.HTTPRequestV3.blank(self.url + param_url)
|
return fakes.HTTPRequestV21.blank(self.url + param_url)
|
||||||
|
|
||||||
def test_index(self):
|
def test_index(self):
|
||||||
req = self._get_request()
|
req = self._get_request()
|
||||||
|
@ -704,7 +704,7 @@ class BadStateServerMetaDataTestV21(test.TestCase):
|
||||||
self.url = '/fake/servers/%s/metadata' % self.uuid
|
self.url = '/fake/servers/%s/metadata' % self.uuid
|
||||||
|
|
||||||
def _get_request(self, param_url=''):
|
def _get_request(self, param_url=''):
|
||||||
return fakes.HTTPRequestV3.blank(self.url + param_url)
|
return fakes.HTTPRequestV21.blank(self.url + param_url)
|
||||||
|
|
||||||
def test_invalid_state_on_delete(self):
|
def test_invalid_state_on_delete(self):
|
||||||
req = self._get_request('/key2')
|
req = self._get_request('/key2')
|
||||||
|
|
|
@ -1418,7 +1418,7 @@ class ServersControllerDeleteTest(ControllerTest):
|
||||||
|
|
||||||
def _create_delete_request(self, uuid):
|
def _create_delete_request(self, uuid):
|
||||||
fakes.stub_out_instance_quota(self.stubs, 0, 10)
|
fakes.stub_out_instance_quota(self.stubs, 0, 10)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s' % uuid)
|
req = fakes.HTTPRequestV21.blank('/servers/%s' % uuid)
|
||||||
req.method = 'DELETE'
|
req.method = 'DELETE'
|
||||||
return req
|
return req
|
||||||
|
|
||||||
|
@ -1466,7 +1466,7 @@ class ServersControllerDeleteTest(ControllerTest):
|
||||||
|
|
||||||
def test_delete_server_instance_if_not_launched(self):
|
def test_delete_server_instance_if_not_launched(self):
|
||||||
self.flags(reclaim_instance_interval=3600)
|
self.flags(reclaim_instance_interval=3600)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s' % FAKE_UUID)
|
||||||
req.method = 'DELETE'
|
req.method = 'DELETE'
|
||||||
|
|
||||||
self.server_delete_called = False
|
self.server_delete_called = False
|
||||||
|
@ -1676,7 +1676,7 @@ class ServersControllerRebuildInstanceTest(ControllerTest):
|
||||||
compute_api.API.start(mox.IgnoreArg(), mox.IgnoreArg())
|
compute_api.API.start(mox.IgnoreArg(), mox.IgnoreArg())
|
||||||
self.mox.ReplayAll()
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s/action' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s/action' % FAKE_UUID)
|
||||||
body = dict(start="")
|
body = dict(start="")
|
||||||
self.controller._start_server(req, FAKE_UUID, body)
|
self.controller._start_server(req, FAKE_UUID, body)
|
||||||
|
|
||||||
|
@ -1686,7 +1686,7 @@ class ServersControllerRebuildInstanceTest(ControllerTest):
|
||||||
common_policy.parse_rule("project_id:non_fake")
|
common_policy.parse_rule("project_id:non_fake")
|
||||||
}
|
}
|
||||||
policy.set_rules(rules)
|
policy.set_rules(rules)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s/action' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s/action' % FAKE_UUID)
|
||||||
body = dict(start="")
|
body = dict(start="")
|
||||||
exc = self.assertRaises(exception.PolicyNotAuthorized,
|
exc = self.assertRaises(exception.PolicyNotAuthorized,
|
||||||
self.controller._start_server,
|
self.controller._start_server,
|
||||||
|
@ -1695,7 +1695,7 @@ class ServersControllerRebuildInstanceTest(ControllerTest):
|
||||||
|
|
||||||
def test_start_not_ready(self):
|
def test_start_not_ready(self):
|
||||||
self.stubs.Set(compute_api.API, 'start', fake_start_stop_not_ready)
|
self.stubs.Set(compute_api.API, 'start', fake_start_stop_not_ready)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s/action' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s/action' % FAKE_UUID)
|
||||||
body = dict(start="")
|
body = dict(start="")
|
||||||
self.assertRaises(webob.exc.HTTPConflict,
|
self.assertRaises(webob.exc.HTTPConflict,
|
||||||
self.controller._start_server, req, FAKE_UUID, body)
|
self.controller._start_server, req, FAKE_UUID, body)
|
||||||
|
@ -1703,14 +1703,14 @@ class ServersControllerRebuildInstanceTest(ControllerTest):
|
||||||
def test_start_locked_server(self):
|
def test_start_locked_server(self):
|
||||||
self.stubs.Set(compute_api.API, 'start',
|
self.stubs.Set(compute_api.API, 'start',
|
||||||
fakes.fake_actions_to_locked_server)
|
fakes.fake_actions_to_locked_server)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s/action' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s/action' % FAKE_UUID)
|
||||||
body = dict(start="")
|
body = dict(start="")
|
||||||
self.assertRaises(webob.exc.HTTPConflict,
|
self.assertRaises(webob.exc.HTTPConflict,
|
||||||
self.controller._start_server, req, FAKE_UUID, body)
|
self.controller._start_server, req, FAKE_UUID, body)
|
||||||
|
|
||||||
def test_start_invalid(self):
|
def test_start_invalid(self):
|
||||||
self.stubs.Set(compute_api.API, 'start', fake_start_stop_invalid_state)
|
self.stubs.Set(compute_api.API, 'start', fake_start_stop_invalid_state)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s/action' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s/action' % FAKE_UUID)
|
||||||
body = dict(start="")
|
body = dict(start="")
|
||||||
self.assertRaises(webob.exc.HTTPConflict,
|
self.assertRaises(webob.exc.HTTPConflict,
|
||||||
self.controller._start_server, req, FAKE_UUID, body)
|
self.controller._start_server, req, FAKE_UUID, body)
|
||||||
|
@ -1720,7 +1720,7 @@ class ServersControllerRebuildInstanceTest(ControllerTest):
|
||||||
compute_api.API.stop(mox.IgnoreArg(), mox.IgnoreArg())
|
compute_api.API.stop(mox.IgnoreArg(), mox.IgnoreArg())
|
||||||
self.mox.ReplayAll()
|
self.mox.ReplayAll()
|
||||||
|
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s/action' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s/action' % FAKE_UUID)
|
||||||
body = dict(stop="")
|
body = dict(stop="")
|
||||||
self.controller._stop_server(req, FAKE_UUID, body)
|
self.controller._stop_server(req, FAKE_UUID, body)
|
||||||
|
|
||||||
|
@ -1730,7 +1730,7 @@ class ServersControllerRebuildInstanceTest(ControllerTest):
|
||||||
common_policy.parse_rule("project_id:non_fake")
|
common_policy.parse_rule("project_id:non_fake")
|
||||||
}
|
}
|
||||||
policy.set_rules(rules)
|
policy.set_rules(rules)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s/action' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s/action' % FAKE_UUID)
|
||||||
body = dict(stop='')
|
body = dict(stop='')
|
||||||
exc = self.assertRaises(exception.PolicyNotAuthorized,
|
exc = self.assertRaises(exception.PolicyNotAuthorized,
|
||||||
self.controller._stop_server,
|
self.controller._stop_server,
|
||||||
|
@ -1739,7 +1739,7 @@ class ServersControllerRebuildInstanceTest(ControllerTest):
|
||||||
|
|
||||||
def test_stop_not_ready(self):
|
def test_stop_not_ready(self):
|
||||||
self.stubs.Set(compute_api.API, 'stop', fake_start_stop_not_ready)
|
self.stubs.Set(compute_api.API, 'stop', fake_start_stop_not_ready)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s/action' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s/action' % FAKE_UUID)
|
||||||
body = dict(stop="")
|
body = dict(stop="")
|
||||||
self.assertRaises(webob.exc.HTTPConflict,
|
self.assertRaises(webob.exc.HTTPConflict,
|
||||||
self.controller._stop_server, req, FAKE_UUID, body)
|
self.controller._stop_server, req, FAKE_UUID, body)
|
||||||
|
@ -1747,14 +1747,14 @@ class ServersControllerRebuildInstanceTest(ControllerTest):
|
||||||
def test_stop_locked_server(self):
|
def test_stop_locked_server(self):
|
||||||
self.stubs.Set(compute_api.API, 'stop',
|
self.stubs.Set(compute_api.API, 'stop',
|
||||||
fakes.fake_actions_to_locked_server)
|
fakes.fake_actions_to_locked_server)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s/action' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s/action' % FAKE_UUID)
|
||||||
body = dict(stop="")
|
body = dict(stop="")
|
||||||
self.assertRaises(webob.exc.HTTPConflict,
|
self.assertRaises(webob.exc.HTTPConflict,
|
||||||
self.controller._stop_server, req, FAKE_UUID, body)
|
self.controller._stop_server, req, FAKE_UUID, body)
|
||||||
|
|
||||||
def test_stop_invalid_state(self):
|
def test_stop_invalid_state(self):
|
||||||
self.stubs.Set(compute_api.API, 'stop', fake_start_stop_invalid_state)
|
self.stubs.Set(compute_api.API, 'stop', fake_start_stop_invalid_state)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s/action' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s/action' % FAKE_UUID)
|
||||||
body = dict(start="")
|
body = dict(start="")
|
||||||
self.assertRaises(webob.exc.HTTPConflict,
|
self.assertRaises(webob.exc.HTTPConflict,
|
||||||
self.controller._stop_server, req, FAKE_UUID, body)
|
self.controller._stop_server, req, FAKE_UUID, body)
|
||||||
|
@ -1762,7 +1762,7 @@ class ServersControllerRebuildInstanceTest(ControllerTest):
|
||||||
def test_start_with_bogus_id(self):
|
def test_start_with_bogus_id(self):
|
||||||
self.stubs.Set(db, 'instance_get_by_uuid',
|
self.stubs.Set(db, 'instance_get_by_uuid',
|
||||||
fake_instance_get_by_uuid_not_found)
|
fake_instance_get_by_uuid_not_found)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/test_inst/action')
|
req = fakes.HTTPRequestV21.blank('/servers/test_inst/action')
|
||||||
body = dict(start="")
|
body = dict(start="")
|
||||||
self.assertRaises(webob.exc.HTTPNotFound,
|
self.assertRaises(webob.exc.HTTPNotFound,
|
||||||
self.controller._start_server, req, 'test_inst', body)
|
self.controller._start_server, req, 'test_inst', body)
|
||||||
|
@ -1770,7 +1770,7 @@ class ServersControllerRebuildInstanceTest(ControllerTest):
|
||||||
def test_stop_with_bogus_id(self):
|
def test_stop_with_bogus_id(self):
|
||||||
self.stubs.Set(db, 'instance_get_by_uuid',
|
self.stubs.Set(db, 'instance_get_by_uuid',
|
||||||
fake_instance_get_by_uuid_not_found)
|
fake_instance_get_by_uuid_not_found)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/test_inst/action')
|
req = fakes.HTTPRequestV21.blank('/servers/test_inst/action')
|
||||||
body = dict(stop="")
|
body = dict(stop="")
|
||||||
self.assertRaises(webob.exc.HTTPNotFound,
|
self.assertRaises(webob.exc.HTTPNotFound,
|
||||||
self.controller._stop_server, req, 'test_inst', body)
|
self.controller._stop_server, req, 'test_inst', body)
|
||||||
|
@ -1783,7 +1783,7 @@ class ServersControllerUpdateTest(ControllerTest):
|
||||||
fake_get = fakes.fake_compute_get(**options)
|
fake_get = fakes.fake_compute_get(**options)
|
||||||
self.stubs.Set(compute_api.API, 'get',
|
self.stubs.Set(compute_api.API, 'get',
|
||||||
lambda api, *a, **k: fake_get(*a, **k))
|
lambda api, *a, **k: fake_get(*a, **k))
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s' % FAKE_UUID)
|
||||||
req.method = 'PUT'
|
req.method = 'PUT'
|
||||||
req.content_type = 'application/json'
|
req.content_type = 'application/json'
|
||||||
req.body = jsonutils.dumps(body)
|
req.body = jsonutils.dumps(body)
|
||||||
|
@ -1889,7 +1889,7 @@ class ServerStatusTest(test.TestCase):
|
||||||
fakes.fake_instance_get(vm_state=vm_state,
|
fakes.fake_instance_get(vm_state=vm_state,
|
||||||
task_state=task_state))
|
task_state=task_state))
|
||||||
|
|
||||||
request = fakes.HTTPRequestV3.blank('/servers/%s' % FAKE_UUID)
|
request = fakes.HTTPRequestV21.blank('/servers/%s' % FAKE_UUID)
|
||||||
return self.controller.show(request, FAKE_UUID)
|
return self.controller.show(request, FAKE_UUID)
|
||||||
|
|
||||||
def test_active(self):
|
def test_active(self):
|
||||||
|
@ -1915,7 +1915,7 @@ class ServerStatusTest(test.TestCase):
|
||||||
rule = {'compute:reboot':
|
rule = {'compute:reboot':
|
||||||
common_policy.parse_rule('role:admin')}
|
common_policy.parse_rule('role:admin')}
|
||||||
policy.set_rules(rule)
|
policy.set_rules(rule)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/1234/action')
|
req = fakes.HTTPRequestV21.blank('/servers/1234/action')
|
||||||
self.assertRaises(exception.PolicyNotAuthorized,
|
self.assertRaises(exception.PolicyNotAuthorized,
|
||||||
self.controller._action_reboot, req, '1234',
|
self.controller._action_reboot, req, '1234',
|
||||||
body={'reboot': {'type': 'HARD'}})
|
body={'reboot': {'type': 'HARD'}})
|
||||||
|
@ -1943,7 +1943,7 @@ class ServerStatusTest(test.TestCase):
|
||||||
rule = {'compute:confirm_resize':
|
rule = {'compute:confirm_resize':
|
||||||
common_policy.parse_rule('role:admin')}
|
common_policy.parse_rule('role:admin')}
|
||||||
policy.set_rules(rule)
|
policy.set_rules(rule)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/1234/action')
|
req = fakes.HTTPRequestV21.blank('/servers/1234/action')
|
||||||
self.assertRaises(exception.PolicyNotAuthorized,
|
self.assertRaises(exception.PolicyNotAuthorized,
|
||||||
self.controller._action_confirm_resize, req, '1234', {})
|
self.controller._action_confirm_resize, req, '1234', {})
|
||||||
|
|
||||||
|
@ -1965,7 +1965,7 @@ class ServerStatusTest(test.TestCase):
|
||||||
rule = {'compute:revert_resize':
|
rule = {'compute:revert_resize':
|
||||||
common_policy.parse_rule('role:admin')}
|
common_policy.parse_rule('role:admin')}
|
||||||
policy.set_rules(rule)
|
policy.set_rules(rule)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/1234/action')
|
req = fakes.HTTPRequestV21.blank('/servers/1234/action')
|
||||||
self.assertRaises(exception.PolicyNotAuthorized,
|
self.assertRaises(exception.PolicyNotAuthorized,
|
||||||
self.controller._action_revert_resize, req, '1234', {})
|
self.controller._action_revert_resize, req, '1234', {})
|
||||||
|
|
||||||
|
@ -2424,7 +2424,7 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
req = fakes.HTTPRequestV3.blank('/servers')
|
req = fakes.HTTPRequestV21.blank('/servers')
|
||||||
req.method = 'POST'
|
req.method = 'POST'
|
||||||
req.body = jsonutils.dumps(body)
|
req.body = jsonutils.dumps(body)
|
||||||
req.headers["content-type"] = "application/json"
|
req.headers["content-type"] = "application/json"
|
||||||
|
@ -2957,7 +2957,7 @@ class ServersViewBuilderTest(test.TestCase):
|
||||||
|
|
||||||
self.uuid = db_inst['uuid']
|
self.uuid = db_inst['uuid']
|
||||||
self.view_builder = views.servers.ViewBuilderV3()
|
self.view_builder = views.servers.ViewBuilderV3()
|
||||||
self.request = fakes.HTTPRequestV3.blank("")
|
self.request = fakes.HTTPRequestV21.blank("")
|
||||||
self.request.context = context.RequestContext('fake', 'fake')
|
self.request.context = context.RequestContext('fake', 'fake')
|
||||||
self.instance = fake_instance.fake_instance_obj(
|
self.instance = fake_instance.fake_instance_obj(
|
||||||
self.request.context,
|
self.request.context,
|
||||||
|
@ -3460,7 +3460,7 @@ class ServersAllExtensionsTestCase(test.TestCase):
|
||||||
|
|
||||||
self.stubs.Set(compute_api.API, 'create', fake_create)
|
self.stubs.Set(compute_api.API, 'create', fake_create)
|
||||||
|
|
||||||
req = fakes.HTTPRequestV3.blank('/servers')
|
req = fakes.HTTPRequestV21.blank('/servers')
|
||||||
req.method = 'POST'
|
req.method = 'POST'
|
||||||
req.content_type = 'application/json'
|
req.content_type = 'application/json'
|
||||||
body = {'foo': {'a': 'b'}}
|
body = {'foo': {'a': 'b'}}
|
||||||
|
@ -3472,7 +3472,7 @@ class ServersAllExtensionsTestCase(test.TestCase):
|
||||||
def test_update_missing_server(self):
|
def test_update_missing_server(self):
|
||||||
# Test update with malformed body.
|
# Test update with malformed body.
|
||||||
|
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/1')
|
req = fakes.HTTPRequestV21.blank('/servers/1')
|
||||||
req.method = 'PUT'
|
req.method = 'PUT'
|
||||||
req.content_type = 'application/json'
|
req.content_type = 'application/json'
|
||||||
body = {'foo': {'a': 'b'}}
|
body = {'foo': {'a': 'b'}}
|
||||||
|
@ -3493,7 +3493,7 @@ class ServersInvalidRequestTestCase(test.TestCase):
|
||||||
self.controller = servers.ServersController(extension_info=ext_info)
|
self.controller = servers.ServersController(extension_info=ext_info)
|
||||||
|
|
||||||
def _invalid_server_create(self, body):
|
def _invalid_server_create(self, body):
|
||||||
req = fakes.HTTPRequestV3.blank('/servers')
|
req = fakes.HTTPRequestV21.blank('/servers')
|
||||||
req.method = 'POST'
|
req.method = 'POST'
|
||||||
|
|
||||||
self.assertRaises(exception.ValidationError,
|
self.assertRaises(exception.ValidationError,
|
||||||
|
@ -3511,7 +3511,7 @@ class ServersInvalidRequestTestCase(test.TestCase):
|
||||||
self._invalid_server_create(body=body)
|
self._invalid_server_create(body=body)
|
||||||
|
|
||||||
def _unprocessable_server_update(self, body):
|
def _unprocessable_server_update(self, body):
|
||||||
req = fakes.HTTPRequestV3.blank('/servers/%s' % FAKE_UUID)
|
req = fakes.HTTPRequestV21.blank('/servers/%s' % FAKE_UUID)
|
||||||
req.method = 'PUT'
|
req.method = 'PUT'
|
||||||
|
|
||||||
self.assertRaises(webob.exc.HTTPBadRequest,
|
self.assertRaises(webob.exc.HTTPBadRequest,
|
||||||
|
@ -3529,7 +3529,7 @@ class ServersInvalidRequestTestCase(test.TestCase):
|
||||||
self._invalid_server_create(body=body)
|
self._invalid_server_create(body=body)
|
||||||
|
|
||||||
|
|
||||||
class FakeExt(extensions.V3APIExtensionBase):
|
class FakeExt(extensions.V21APIExtensionBase):
|
||||||
name = "DiskConfig"
|
name = "DiskConfig"
|
||||||
alias = 'os-disk-config'
|
alias = 'os-disk-config'
|
||||||
version = 1
|
version = 1
|
||||||
|
|
|
@ -145,7 +145,7 @@ class ServersControllerCreateTest(test.TestCase):
|
||||||
server.pop('imageRef', None)
|
server.pop('imageRef', None)
|
||||||
server.update(params)
|
server.update(params)
|
||||||
body = dict(server=server)
|
body = dict(server=server)
|
||||||
req = fakes.HTTPRequestV3.blank('/servers')
|
req = fakes.HTTPRequestV21.blank('/servers')
|
||||||
req.method = 'POST'
|
req.method = 'POST'
|
||||||
req.body = jsonutils.dumps(body)
|
req.body = jsonutils.dumps(body)
|
||||||
req.headers["content-type"] = "application/json"
|
req.headers["content-type"] = "application/json"
|
||||||
|
|
|
@ -280,7 +280,7 @@ class HTTPRequest(os_wsgi.Request):
|
||||||
return out
|
return out
|
||||||
|
|
||||||
|
|
||||||
class HTTPRequestV3(os_wsgi.Request):
|
class HTTPRequestV21(os_wsgi.Request):
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def blank(*args, **kwargs):
|
def blank(*args, **kwargs):
|
||||||
|
|
|
@ -105,12 +105,12 @@ class SchedulerManagerTestCase(test.NoDBTestCase):
|
||||||
mock.sentinel.instance_uuids)
|
mock.sentinel.instance_uuids)
|
||||||
|
|
||||||
|
|
||||||
class SchedulerV3PassthroughTestCase(test.NoDBTestCase):
|
class SchedulerV21PassthroughTestCase(test.NoDBTestCase):
|
||||||
|
|
||||||
@mock.patch.object(host_manager.HostManager, '_init_instance_info')
|
@mock.patch.object(host_manager.HostManager, '_init_instance_info')
|
||||||
@mock.patch.object(host_manager.HostManager, '_init_aggregates')
|
@mock.patch.object(host_manager.HostManager, '_init_aggregates')
|
||||||
def setUp(self, mock_init_agg, mock_init_inst):
|
def setUp(self, mock_init_agg, mock_init_inst):
|
||||||
super(SchedulerV3PassthroughTestCase, self).setUp()
|
super(SchedulerV21PassthroughTestCase, self).setUp()
|
||||||
self.manager = manager.SchedulerManager()
|
self.manager = manager.SchedulerManager()
|
||||||
self.proxy = manager._SchedulerManagerV3Proxy(self.manager)
|
self.proxy = manager._SchedulerManagerV3Proxy(self.manager)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue