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:
EdLeafe 2015-08-13 19:43:26 +00:00 committed by He Jie Xu
parent 9f9802eebd
commit 55e04230ad
96 changed files with 137 additions and 137 deletions

View File

@ -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

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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 []

View File

@ -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"

View File

@ -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 []

View File

@ -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 []

View File

@ -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 []

View File

@ -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 []

View File

@ -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"

View File

@ -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"

View File

@ -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.
""" """

View File

@ -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"

View File

@ -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 []

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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 []

View File

@ -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 []

View File

@ -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"

View File

@ -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 []

View File

@ -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"

View File

@ -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'

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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 []

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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"

View File

@ -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

View File

@ -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']:

View File

@ -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()

View File

@ -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."""

View File

@ -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"

View File

@ -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"

View File

@ -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')

View File

@ -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

View File

@ -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"

View File

@ -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):

View File

@ -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)