Rename classes containing 'v3' to 'v21'

This part of the ongoing v3 cleanup effort.

Partial-Bug: #1462901
Change-Id: I5d9b43503629cc3f5a566f7bfa23cc5d0d14d985
changes/34/212734/6
EdLeafe 8 years ago committed by He Jie Xu
parent 9f9802eebd
commit 55e04230ad

@ -319,7 +319,7 @@ class APIRouterV21(base_wsgi.Router):
def _check_load_extension(ext):
if (self.init_only is None or ext.obj.alias in
self.init_only) and isinstance(ext.obj,
extensions.V3APIExtensionBase):
extensions.V21APIExtensionBase):
# Check whitelist is either empty or if not then the extension
# is in the whitelist

@ -60,7 +60,7 @@ class AccessIPsController(wsgi.Controller):
self._extend_server(req, server)
class AccessIPs(extensions.V3APIExtensionBase):
class AccessIPs(extensions.V21APIExtensionBase):
"""Access IPs support."""
name = "AccessIPs"

@ -82,7 +82,7 @@ class AdminActionsController(wsgi.Controller):
instance.save(admin_state_reset=True)
class AdminActions(extensions.V3APIExtensionBase):
class AdminActions(extensions.V21APIExtensionBase):
"""Enable admin-only server actions
Actions include: resetNetwork, injectNetworkInfo, os-resetState

@ -59,7 +59,7 @@ class AdminPasswordController(wsgi.Controller):
common.raise_feature_not_supported(msg=msg)
class AdminPassword(extensions.V3APIExtensionBase):
class AdminPassword(extensions.V21APIExtensionBase):
"""Admin password management support."""
name = "AdminPassword"

@ -157,7 +157,7 @@ class AgentController(wsgi.Controller):
return {'agent': agent}
class Agents(extensions.V3APIExtensionBase):
class Agents(extensions.V21APIExtensionBase):
"""Agents support."""
name = "Agents"
@ -170,7 +170,7 @@ class Agents(extensions.V3APIExtensionBase):
return resource
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.
"""
return []

@ -200,7 +200,7 @@ class AggregateController(wsgi.Controller):
return {"aggregate": _aggregate}
class Aggregates(extensions.V3APIExtensionBase):
class Aggregates(extensions.V21APIExtensionBase):
"""Admin-only aggregate administration."""
name = "Aggregates"

@ -90,7 +90,7 @@ class AssistedVolumeSnapshotsController(wsgi.Controller):
return exc.HTTPNotFound(explanation=e.format_message())
class AssistedVolumeSnapshots(extensions.V3APIExtensionBase):
class AssistedVolumeSnapshots(extensions.V21APIExtensionBase):
"""Assisted volume snapshots."""
name = "AssistedVolumeSnapshots"
@ -103,7 +103,7 @@ class AssistedVolumeSnapshots(extensions.V3APIExtensionBase):
return res
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.
"""
return []

@ -181,7 +181,7 @@ class InterfaceAttachmentController(wsgi.Controller):
return {'interfaceAttachments': results}
class AttachInterfaces(extensions.V3APIExtensionBase):
class AttachInterfaces(extensions.V21APIExtensionBase):
"""Attach interface support."""
name = "AttachInterfaces"
@ -197,7 +197,7 @@ class AttachInterfaces(extensions.V3APIExtensionBase):
return res
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.
"""
return []

@ -115,7 +115,7 @@ class AvailabilityZoneController(wsgi.Controller):
return self._describe_availability_zones_verbose(context)
class AvailabilityZone(extensions.V3APIExtensionBase):
class AvailabilityZone(extensions.V21APIExtensionBase):
"""1. Add availability_zone to the Create Server API.
2. Add availability zones describing.
"""
@ -131,7 +131,7 @@ class AvailabilityZone(extensions.V3APIExtensionBase):
return resource
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.
"""
return []

@ -160,7 +160,7 @@ class BareMetalNodeController(wsgi.Controller):
_no_ironic_proxy("port-delete")
class BareMetalNodes(extensions.V3APIExtensionBase):
class BareMetalNodes(extensions.V21APIExtensionBase):
"""Admin-only bare-metal node administration."""
name = "BareMetalNodes"
@ -174,7 +174,7 @@ class BareMetalNodes(extensions.V3APIExtensionBase):
return resource
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.
"""
return []

@ -29,7 +29,7 @@ ATTRIBUTE_NAME = "block_device_mapping_v2"
LEGACY_ATTRIBUTE_NAME = "block_device_mapping"
class BlockDeviceMapping(extensions.V3APIExtensionBase):
class BlockDeviceMapping(extensions.V21APIExtensionBase):
"""Block device mapping boot support."""
name = "BlockDeviceMapping"

@ -28,7 +28,7 @@ ATTRIBUTE_NAME = "block_device_mapping"
ATTRIBUTE_NAME_V2 = "block_device_mapping_v2"
class BlockDeviceMappingV1(extensions.V3APIExtensionBase):
class BlockDeviceMappingV1(extensions.V21APIExtensionBase):
"""Block device mapping boot support."""
name = "BlockDeviceMappingV1"

@ -303,7 +303,7 @@ class CellsController(wsgi.Controller):
updated_since=updated_since, deleted=deleted)
class Cells(extensions.V3APIExtensionBase):
class Cells(extensions.V21APIExtensionBase):
"""Enables cells-related functionality such as adding neighbor cells,
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)}
class Certificates(extensions.V3APIExtensionBase):
class Certificates(extensions.V21APIExtensionBase):
"""Certificates support."""
name = "Certificates"

@ -170,7 +170,7 @@ class CloudpipeController(wsgi.Controller):
nw.save()
class Cloudpipe(extensions.V3APIExtensionBase):
class Cloudpipe(extensions.V21APIExtensionBase):
"""Adds actions to create cloudpipe instances.
When running with the Vlan network mode, you need a mechanism to route
@ -191,7 +191,7 @@ class Cloudpipe(extensions.V3APIExtensionBase):
return resource
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.
"""
return []

@ -53,7 +53,7 @@ class ConfigDriveController(wsgi.Controller):
self._add_config_drive(req, servers)
class ConfigDrive(extensions.V3APIExtensionBase):
class ConfigDrive(extensions.V21APIExtensionBase):
"""Config Drive Extension."""
name = "ConfigDrive"

@ -58,7 +58,7 @@ class ConsoleAuthTokensController(wsgi.Controller):
if i in connect_info}}
class ConsoleAuthTokens(extensions.V3APIExtensionBase):
class ConsoleAuthTokens(extensions.V21APIExtensionBase):
"""Console token authentication support."""
name = "ConsoleAuthTokens"
alias = ALIAS

@ -72,7 +72,7 @@ class ConsoleOutputController(wsgi.Controller):
return {'output': output}
class ConsoleOutput(extensions.V3APIExtensionBase):
class ConsoleOutput(extensions.V21APIExtensionBase):
"""Console log output support, with tailing ability."""
name = "ConsoleOutput"

@ -107,7 +107,7 @@ class ConsolesController(wsgi.Controller):
raise exc.HTTPNotFound(explanation=e.format_message())
class Consoles(extensions.V3APIExtensionBase):
class Consoles(extensions.V21APIExtensionBase):
"""Consoles."""
name = "Consoles"

@ -83,7 +83,7 @@ class CreateBackupController(wsgi.Controller):
return resp
class CreateBackup(extensions.V3APIExtensionBase):
class CreateBackup(extensions.V21APIExtensionBase):
"""Create a backup of a server."""
name = "CreateBackup"

@ -62,7 +62,7 @@ class DeferredDeleteController(wsgi.Controller):
raise webob.exc.HTTPConflict(explanation=e.format_message())
class DeferredDelete(extensions.V3APIExtensionBase):
class DeferredDelete(extensions.V21APIExtensionBase):
"""Instance deferred delete."""
name = "DeferredDelete"

@ -112,7 +112,7 @@ class ServerDiskConfigController(wsgi.Controller):
self._show(req, resp_obj)
class DiskConfig(extensions.V3APIExtensionBase):
class DiskConfig(extensions.V21APIExtensionBase):
"""Disk Management Extension."""
name = "DiskConfig"

@ -98,7 +98,7 @@ class EvacuateController(wsgi.Controller):
return {}
class Evacuate(extensions.V3APIExtensionBase):
class Evacuate(extensions.V21APIExtensionBase):
"""Enables server evacuation."""
name = "Evacuate"

@ -53,7 +53,7 @@ class ExtendedAZController(wsgi.Controller):
self._extend_server(context, server, db_instance)
class ExtendedAvailabilityZone(extensions.V3APIExtensionBase):
class ExtendedAvailabilityZone(extensions.V21APIExtensionBase):
"""Extended Availability Zone support."""
name = "ExtendedAvailabilityZone"

@ -69,7 +69,7 @@ class ExtendedServerAttributesController(wsgi.Controller):
req.api_version_request)
class ExtendedServerAttributes(extensions.V3APIExtensionBase):
class ExtendedServerAttributes(extensions.V21APIExtensionBase):
"""Extended Server Attributes support."""
name = "ExtendedServerAttributes"

@ -55,7 +55,7 @@ class ExtendedStatusController(wsgi.Controller):
self._extend_server(server, db_instance)
class ExtendedStatus(extensions.V3APIExtensionBase):
class ExtendedStatus(extensions.V21APIExtensionBase):
"""Extended Status support."""
name = "ExtendedStatus"

@ -65,7 +65,7 @@ class ExtendedVolumesController(wsgi.Controller):
req.api_version_request)
class ExtendedVolumes(extensions.V3APIExtensionBase):
class ExtendedVolumes(extensions.V21APIExtensionBase):
"""Extended Volumes support."""
name = "ExtendedVolumes"

@ -199,7 +199,7 @@ class ExtensionInfoController(wsgi.Controller):
return dict(extension=self._translate(ext))
class ExtensionInfo(extensions.V3APIExtensionBase):
class ExtensionInfo(extensions.V21APIExtensionBase):
"""Extension information."""
name = "Extensions"

@ -105,7 +105,7 @@ class FixedIPController(wsgi.Controller):
raise webob.exc.HTTPBadRequest(explanation=msg)
class FixedIps(extensions.V3APIExtensionBase):
class FixedIps(extensions.V21APIExtensionBase):
"""Fixed IPs support."""
name = "FixedIPs"

@ -142,7 +142,7 @@ class FlavorActionController(wsgi.Controller):
return _marshall_flavor_access(flavor)
class FlavorAccess(extensions.V3APIExtensionBase):
class FlavorAccess(extensions.V21APIExtensionBase):
"""Flavor access support."""
name = "FlavorAccess"

@ -90,7 +90,7 @@ class FlavorManageController(wsgi.Controller):
return self._view_builder.show(req, flavor)
class FlavorManage(extensions.V3APIExtensionBase):
class FlavorManage(extensions.V21APIExtensionBase):
"""Flavor create/delete API support."""
name = "FlavorManage"

@ -49,7 +49,7 @@ class FlavorRxtxController(wsgi.Controller):
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."""
name = "FlavorRxtx"

@ -115,7 +115,7 @@ class FlavorsController(wsgi.Controller):
return limited_flavors
class Flavors(extensions.V3APIExtensionBase):
class Flavors(extensions.V21APIExtensionBase):
"""Flavors Extension."""
name = "Flavors"
alias = ALIAS

@ -136,7 +136,7 @@ class FlavorExtraSpecsController(wsgi.Controller):
raise webob.exc.HTTPNotFound(explanation=msg)
class FlavorsExtraSpecs(extensions.V3APIExtensionBase):
class FlavorsExtraSpecs(extensions.V21APIExtensionBase):
"""Flavors extra specs support."""
name = 'FlavorExtraSpecs'
alias = ALIAS

@ -250,7 +250,7 @@ class FloatingIPDNSEntryController(wsgi.Controller):
raise webob.exc.HTTPNotFound(explanation=e.format_message())
class FloatingIpDns(extensions.V3APIExtensionBase):
class FloatingIpDns(extensions.V21APIExtensionBase):
"""Floating IP DNS support."""
name = "FloatingIpDns"
@ -273,7 +273,7 @@ class FloatingIpDns(extensions.V3APIExtensionBase):
return resources
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.
"""
return []

@ -50,7 +50,7 @@ class FloatingIPPoolsController(wsgi.Controller):
return _translate_floating_ip_pools_view(pools)
class FloatingIpPools(extensions.V3APIExtensionBase):
class FloatingIpPools(extensions.V21APIExtensionBase):
"""Floating IPs support."""
name = "FloatingIpPools"
@ -63,7 +63,7 @@ class FloatingIpPools(extensions.V3APIExtensionBase):
return resource
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.
"""
return []

@ -295,7 +295,7 @@ class FloatingIPActionController(wsgi.Controller):
raise webob.exc.HTTPConflict(explanation=msg)
class FloatingIps(extensions.V3APIExtensionBase):
class FloatingIps(extensions.V21APIExtensionBase):
"""Floating IPs support."""
name = "FloatingIps"

@ -152,7 +152,7 @@ class FloatingIPBulkController(wsgi.Controller):
raise exception.InvalidInput(reason=six.text_type(exc))
class FloatingIpsBulk(extensions.V3APIExtensionBase):
class FloatingIpsBulk(extensions.V21APIExtensionBase):
"""Bulk handling of Floating IPs."""
name = "FloatingIpsBulk"
@ -165,7 +165,7 @@ class FloatingIpsBulk(extensions.V3APIExtensionBase):
return resource
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.
"""
return []

@ -137,7 +137,7 @@ class FpingController(wsgi.Controller):
}
class Fping(extensions.V3APIExtensionBase):
class Fping(extensions.V21APIExtensionBase):
"""Fping Management Extension."""
name = "Fping"

@ -74,7 +74,7 @@ class Controller(wsgi.Controller):
self._perhaps_hide_addresses(instance, server)
class HideServerAddresses(extensions.V3APIExtensionBase):
class HideServerAddresses(extensions.V21APIExtensionBase):
"""Support hiding server addresses in certain states."""
name = 'HideServerAddresses'

@ -283,7 +283,7 @@ class HostController(wsgi.Controller):
return {'host': resources}
class Hosts(extensions.V3APIExtensionBase):
class Hosts(extensions.V21APIExtensionBase):
"""Admin-only host administration."""
name = "Hosts"

@ -181,7 +181,7 @@ class HypervisorsController(wsgi.Controller):
return dict(hypervisor_statistics=stats)
class Hypervisors(extensions.V3APIExtensionBase):
class Hypervisors(extensions.V21APIExtensionBase):
"""Admin-only hypervisor administration."""
name = "Hypervisors"

@ -128,7 +128,7 @@ class ImageMetadataController(wsgi.Controller):
raise exc.HTTPForbidden(explanation=e.format_message())
class ImageMetadata(extensions.V3APIExtensionBase):
class ImageMetadata(extensions.V21APIExtensionBase):
"""Image Metadata API."""
name = "ImageMetadata"
alias = ALIAS

@ -49,7 +49,7 @@ class ImageSizeController(wsgi.Controller):
self._extend_image(image, image_cached)
class ImageSize(extensions.V3APIExtensionBase):
class ImageSize(extensions.V21APIExtensionBase):
"""Adds image size to image listings."""
name = "ImageSize"

@ -150,7 +150,7 @@ class ImagesController(wsgi.Controller):
return self._view_builder.detail(req, images)
class Images(extensions.V3APIExtensionBase):
class Images(extensions.V21APIExtensionBase):
"""Proxying API for Images."""
name = "Images"

@ -80,7 +80,7 @@ class InstanceActionsController(wsgi.Controller):
return {'instanceAction': action}
class InstanceActions(extensions.V3APIExtensionBase):
class InstanceActions(extensions.V21APIExtensionBase):
"""View a log of actions and events taken on an instance."""
name = "InstanceActions"
@ -96,7 +96,7 @@ class InstanceActions(extensions.V3APIExtensionBase):
return [ext]
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.
"""
return []

@ -126,7 +126,7 @@ class InstanceUsageAuditLogController(wsgi.Controller):
log=log)
class InstanceUsageAuditLog(extensions.V3APIExtensionBase):
class InstanceUsageAuditLog(extensions.V21APIExtensionBase):
"""Admin-only Task Log Monitoring."""
name = "OSInstanceUsageAuditLog"
alias = ALIAS

@ -59,7 +59,7 @@ class IPsController(wsgi.Controller):
return self._view_builder.show(networks[id], id)
class IPs(extensions.V3APIExtensionBase):
class IPs(extensions.V21APIExtensionBase):
"""Server addresses."""
name = "Ips"

@ -281,7 +281,7 @@ class Controller(wsgi.Controller):
self._add_key_name(req, servers)
class Keypairs(extensions.V3APIExtensionBase):
class Keypairs(extensions.V21APIExtensionBase):
"""Keypair Support."""
name = "Keypairs"

@ -51,7 +51,7 @@ class LimitsController(wsgi.Controller):
return limits_views.ViewBuilderV3()
class Limits(extensions.V3APIExtensionBase):
class Limits(extensions.V21APIExtensionBase):
"""Limits support."""
name = "Limits"

@ -53,7 +53,7 @@ class LockServerController(wsgi.Controller):
self.compute_api.unlock(context, instance)
class LockServer(extensions.V3APIExtensionBase):
class LockServer(extensions.V21APIExtensionBase):
"""Enable lock/unlock server actions."""
name = "LockServer"

@ -99,7 +99,7 @@ class MigrateServerController(wsgi.Controller):
'os-migrateLive', id)
class MigrateServer(extensions.V3APIExtensionBase):
class MigrateServer(extensions.V21APIExtensionBase):
"""Enable migrate and live-migrate server actions."""
name = "MigrateServer"

@ -53,7 +53,7 @@ class MigrationsController(wsgi.Controller):
return {'migrations': output(migrations)}
class Migrations(extensions.V3APIExtensionBase):
class Migrations(extensions.V21APIExtensionBase):
"""Provide data on migrations."""
name = "Migrations"
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
# extension--only first character capitalized.
class Multinic(extensions.V3APIExtensionBase):
class Multinic(extensions.V21APIExtensionBase):
"""Multiple network support."""
name = "Multinic"

@ -26,7 +26,7 @@ MAX_ATTRIBUTE_NAME = "max_count"
RRID_ATTRIBUTE_NAME = "return_reservation_id"
class MultipleCreate(extensions.V3APIExtensionBase):
class MultipleCreate(extensions.V21APIExtensionBase):
"""Allow multiple create in the Create Server v3 API."""
name = "MultipleCreate"

@ -175,7 +175,7 @@ class NetworkController(wsgi.Controller):
raise exc.HTTPBadRequest(explanation=e.format_message())
class Networks(extensions.V3APIExtensionBase):
class Networks(extensions.V21APIExtensionBase):
"""Admin-only Network Management Extension."""
name = "Networks"

@ -78,7 +78,7 @@ class NetworkAssociateActionController(wsgi.Controller):
common.raise_feature_not_supported()
class NetworksAssociate(extensions.V3APIExtensionBase):
class NetworksAssociate(extensions.V21APIExtensionBase):
"""Network association support."""
name = "NetworkAssociationSupport"

@ -72,7 +72,7 @@ class PauseServerController(wsgi.Controller):
common.raise_feature_not_supported()
class PauseServer(extensions.V3APIExtensionBase):
class PauseServer(extensions.V21APIExtensionBase):
"""Enable pause/unpause server actions."""
name = "PauseServer"

@ -131,7 +131,7 @@ class PciController(wsgi.Controller):
return dict(pci_devices=results)
class Pci(extensions.V3APIExtensionBase):
class Pci(extensions.V21APIExtensionBase):
"""Pci access support."""
name = "PciAccess"
alias = ALIAS

@ -18,7 +18,7 @@ from nova.api.openstack import extensions
ALIAS = "os-personality"
class Personality(extensions.V3APIExtensionBase):
class Personality(extensions.V21APIExtensionBase):
"""Personality support."""
name = "Personality"

@ -21,7 +21,7 @@ from nova.api.openstack import extensions
ALIAS = "os-preserve-ephemeral-rebuild"
class PreserveEphemeralRebuild(extensions.V3APIExtensionBase):
class PreserveEphemeralRebuild(extensions.V21APIExtensionBase):
"""Allow preservation of the ephemeral partition on rebuild."""
name = "PreserveEphemeralOnRebuild"

@ -93,7 +93,7 @@ class QuotaClassSetsController(wsgi.Controller):
return self._format_quota_set(None, values)
class QuotaClasses(extensions.V3APIExtensionBase):
class QuotaClasses(extensions.V21APIExtensionBase):
"""Quota classes management support."""
name = "QuotaClasses"

@ -171,7 +171,7 @@ class QuotaSetsController(wsgi.Controller):
QUOTAS.destroy_all_by_project(context, id)
class QuotaSets(extensions.V3APIExtensionBase):
class QuotaSets(extensions.V21APIExtensionBase):
"""Quotas management support."""
name = "Quotas"

@ -183,7 +183,7 @@ class RemoteConsolesController(wsgi.Controller):
common.raise_feature_not_supported()
class RemoteConsoles(extensions.V3APIExtensionBase):
class RemoteConsoles(extensions.V21APIExtensionBase):
"""Interactive Console support."""
name = "Consoles"
alias = ALIAS

@ -99,7 +99,7 @@ class RescueController(wsgi.Controller):
id)
class Rescue(extensions.V3APIExtensionBase):
class Rescue(extensions.V21APIExtensionBase):
"""Instance rescue mode."""
name = "Rescue"

@ -18,7 +18,7 @@ from nova.api.openstack import extensions
ALIAS = "os-scheduler-hints"
class SchedulerHints(extensions.V3APIExtensionBase):
class SchedulerHints(extensions.V21APIExtensionBase):
"""Pass arbitrary key/value pairs to the scheduler."""
name = "SchedulerHints"

@ -131,7 +131,7 @@ class SecurityGroupDefaultRulesController(sg.SecurityGroupControllerBase):
return sg_rule
class SecurityGroupDefaultRules(extensions.V3APIExtensionBase):
class SecurityGroupDefaultRules(extensions.V21APIExtensionBase):
"""Default rules for security group support."""
name = "SecurityGroupDefaultRules"
alias = ALIAS

@ -492,7 +492,7 @@ class SecurityGroupsOutputController(wsgi.Controller):
self._extend_servers(req, list(resp_obj.obj['servers']))
class SecurityGroups(extensions.V3APIExtensionBase):
class SecurityGroups(extensions.V21APIExtensionBase):
"""Security group support."""
name = "SecurityGroups"
alias = ALIAS

@ -49,7 +49,7 @@ class ServerDiagnosticsController(wsgi.Controller):
common.raise_feature_not_supported()
class ServerDiagnostics(extensions.V3APIExtensionBase):
class ServerDiagnostics(extensions.V21APIExtensionBase):
"""Allow Admins to view server diagnostics through server action."""
name = "ServerDiagnostics"

@ -115,7 +115,7 @@ class ServerExternalEventsController(wsgi.Controller):
return robj
class ServerExternalEvents(extensions.V3APIExtensionBase):
class ServerExternalEvents(extensions.V21APIExtensionBase):
"""Server External Event Triggers."""
name = "ServerExternalEvents"

@ -156,7 +156,7 @@ class ServerGroupController(wsgi.Controller):
return {'server_group': self._format_server_group(context, sg)}
class ServerGroups(extensions.V3APIExtensionBase):
class ServerGroups(extensions.V21APIExtensionBase):
"""Server group support."""
name = "ServerGroups"
alias = ALIAS

@ -159,7 +159,7 @@ class ServerMetadataController(wsgi.Controller):
'delete metadata', server_id)
class ServerMetadata(extensions.V3APIExtensionBase):
class ServerMetadata(extensions.V21APIExtensionBase):
"""Server Metadata API."""
name = "ServerMetadata"
alias = ALIAS

@ -57,7 +57,7 @@ class ServerPasswordController(wsgi.Controller):
instance.save()
class ServerPassword(extensions.V3APIExtensionBase):
class ServerPassword(extensions.V21APIExtensionBase):
"""Server password support."""
name = "ServerPassword"

@ -60,7 +60,7 @@ class ServerUsageController(wsgi.Controller):
self._extend_server(server, db_instance)
class ServerUsage(extensions.V3APIExtensionBase):
class ServerUsage(extensions.V21APIExtensionBase):
"""Adds launched_at and terminated_at on Servers."""
name = "ServerUsage"

@ -117,7 +117,7 @@ class ServersController(wsgi.Controller):
return False
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
# function here rather than on every request. We
# 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)
class Servers(extensions.V3APIExtensionBase):
class Servers(extensions.V21APIExtensionBase):
"""Servers."""
name = "Servers"

@ -199,7 +199,7 @@ class ServiceController(wsgi.Controller):
return self._perform_action(req, id, body, actions)
class Services(extensions.V3APIExtensionBase):
class Services(extensions.V21APIExtensionBase):
"""Services support."""
name = "Services"

@ -85,7 +85,7 @@ class ShelveController(wsgi.Controller):
id)
class Shelve(exts.V3APIExtensionBase):
class Shelve(exts.V21APIExtensionBase):
"""Instance shelve mode."""
name = "Shelve"

@ -269,7 +269,7 @@ class SimpleTenantUsageController(wsgi.Controller):
return {'tenant_usage': usage}
class SimpleTenantUsage(extensions.V3APIExtensionBase):
class SimpleTenantUsage(extensions.V21APIExtensionBase):
"""Simple tenant usage extension."""
name = "SimpleTenantUsage"

@ -64,7 +64,7 @@ class SuspendServerController(wsgi.Controller):
'resume', id)
class SuspendServer(extensions.V3APIExtensionBase):
class SuspendServer(extensions.V21APIExtensionBase):
"""Enable suspend/resume server actions."""
name = "SuspendServer"

@ -188,7 +188,7 @@ class TenantNetworkController(wsgi.Controller):
return {"network": network_dict(networks[0])}
class TenantNetworks(extensions.V3APIExtensionBase):
class TenantNetworks(extensions.V21APIExtensionBase):
"""Tenant-based Network Management Extension."""
name = "OSTenantNetworks"

@ -70,7 +70,7 @@ class UsedLimitsController(wsgi.Controller):
return context.project_id
class UsedLimits(extensions.V3APIExtensionBase):
class UsedLimits(extensions.V21APIExtensionBase):
"""Provide data on limited resources that are being used."""
name = "UsedLimits"

@ -20,7 +20,7 @@ ALIAS = "os-user-data"
ATTRIBUTE_NAME = 'user_data'
class UserData(extensions.V3APIExtensionBase):
class UserData(extensions.V21APIExtensionBase):
"""Add user_data to the Create Server API."""
name = "UserData"

@ -36,7 +36,7 @@ class VersionsController(wsgi.Controller):
return builder.build_version(versions.VERSIONS[id])
class Versions(extensions.V3APIExtensionBase):
class Versions(extensions.V21APIExtensionBase):
"""API Version information."""
name = "Versions"

@ -61,7 +61,7 @@ class ServerVirtualInterfaceController(wsgi.Controller):
entity_maker=_translate_vif_summary_view)
class VirtualInterfaces(extensions.V3APIExtensionBase):
class VirtualInterfaces(extensions.V21APIExtensionBase):
"""Virtual interface support."""
name = "VirtualInterfaces"

@ -530,7 +530,7 @@ class SnapshotController(wsgi.Controller):
return {'snapshot': retval}
class Volumes(extensions.V3APIExtensionBase):
class Volumes(extensions.V21APIExtensionBase):
"""Volumes support."""
name = "Volumes"

@ -404,7 +404,7 @@ def os_compute_soft_authorizer(extension_name):
@six.add_metaclass(abc.ABCMeta)
class V3APIExtensionBase(object):
class V21APIExtensionBase(object):
"""Abstract base class for all V3 API extensions.
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):
self.stubs.Set(policy, 'enforce', fake_policy_enforce)
req = fakes.HTTPRequestV3.blank('/extensions')
req = fakes.HTTPRequestV21.blank('/extensions')
res_dict = self.controller.index(req)
self.assertEqual(3, len(res_dict['extensions']))
for e in res_dict['extensions']:
@ -89,7 +89,7 @@ class ExtensionInfoTest(test.NoDBTestCase):
def test_extension_info_show(self):
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')
self.assertEqual(1, len(res_dict))
self.assertEqual(res_dict['extension']['name'],
@ -104,7 +104,7 @@ class ExtensionInfoTest(test.NoDBTestCase):
def test_extension_info_list_not_all_discoverable(self):
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)
self.assertEqual(2, len(res_dict['extensions']))
for e in res_dict['extensions']: