nova/nova/api/openstack/compute
Ildiko Vancsa ae53c22457 Handle Cinder 3.27 style attachments in swap_volume
This adds the support for new style volume attachments
to the swap volume operation.

If the existing volume attachment (old_volume) was created
using the new flow, it will have attachment_id set. Based
on that the API will create a new volume attachment for the
volume being swapped to and then pass that attachment to the
compute over RPC. Note that we do not yet create new-style
volume attachments so this is all no-op code for now. And
when we do start creating new-style volume attachments, that
will only be allowed when Cinder is new enough (3.27 microversion)
and all compute services are upgraded, so we don't perform
any nova-compute service version checks here.

Once on the compute, we key off the new_attachment_id being
passed from the API to tell if we should use the old or new
style calls to Cinder. For example, initialize_connection and
terminate_connection are replaced with attachment_update and
attachment_delete.

Co-Authored-By: Matt Riedemann <mriedem.os@gmail.com>
Co-Authored-By: John Griffith <john.griffith8@gmail.com>

Depends-On: I23391300468cc5e2f45a12d5ad8617ab48c21e6a

Partially Implements: blueprint cinder-new-attach-apis

Change-Id: I4b8bd01f1ffe2640fe7313213bf853d2e1bef9dd
2017-07-07 03:01:26 -04:00
..
schemas API support for tagged device attachment 2017-06-30 09:05:34 +03:00
views Standardization of VM diagnostics info API. 2017-06-05 07:45:51 +00:00
__init__.py Use plain routes list for '/servers' endpoint instead of stevedore 2017-04-25 22:38:33 +08:00
admin_actions.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
admin_password.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
agents.py Use plain routes list for os-agents endpoint instead of stevedore 2017-05-01 20:31:17 +03:00
aggregates.py Use plain routes list for '/os-aggregates' endpoint instead of stevedore 2017-04-25 22:38:37 +08:00
assisted_volume_snapshots.py Use plain routes list for os-assisted-volume-snapshots endpoint 2017-05-01 20:59:26 +03:00
attach_interfaces.py API support for tagged device attachment 2017-06-30 09:05:34 +03:00
availability_zone.py Use plain routes list for os-availability-zone endpoint instead of stevedore 2017-05-01 22:02:45 +03:00
baremetal_nodes.py Merge "Remove deprecated ironic.api_version config option" 2016-07-27 14:27:30 +00:00
block_device_mapping_v1.py Remove the stevedore extension point for server create 2017-04-06 18:52:11 +00:00
block_device_mapping.py Use plain routes list for block_device_mapping instead of stevedore 2017-06-12 15:48:56 +01:00
cells.py [1/3]Replace six.iteritems() with .items() 2016-12-22 02:43:12 +00:00
certificates.py Use plain routes list for os-certificates endpoint instead of stevedore 2017-05-22 18:02:23 +08:00
cloudpipe.py Use plain routes list for os-cloudpipe endpoint instead of stevedore 2017-06-19 16:44:19 +01:00
config_drive.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
console_auth_tokens.py Use plain routes list for os-consoles, os-console-auth-tokens endpoint instead of stevedore 2017-06-12 15:48:19 +01:00
console_output.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
consoles.py Use plain routes list for os-consoles, os-console-auth-tokens endpoint instead of stevedore 2017-06-12 15:48:19 +01:00
create_backup.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
deferred_delete.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
evacuate.py Ensure the JSON-Schema covers the legacy v2 API 2017-06-30 07:25:05 +00:00
extended_availability_zone.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
extended_server_attributes.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
extended_status.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
extended_volumes.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
extension_info.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
fixed_ips.py Use plain routes list for os-fixed-ips endpoint instead of stevedore 2017-05-01 19:05:18 +00:00
flavor_access.py Verify project id for flavor access calls 2017-05-04 18:23:17 -04:00
flavor_manage.py Use plain routes list for flavor endpoint instead of stevedore[1] 2017-04-25 22:38:37 +08:00
flavor_rxtx.py Use plain routes list for flavor endpoint instead of stevedore[1] 2017-04-25 22:38:37 +08:00
flavors_extraspecs.py Use plain routes list for flavors-extraspecs endpoint instead of stevedore 2017-04-25 22:38:37 +08:00
flavors.py Use plain routes list for flavor endpoint instead of stevedore[1] 2017-04-25 22:38:37 +08:00
floating_ip_dns.py Use plain routes list for os-floating-ip-dns endpoint instead of stevedore 2017-05-01 20:03:20 +03:00
floating_ip_pools.py Use plain routes list for os-floating-ip-pools endpoint instead of stevedore 2017-05-01 19:01:16 +03:00
floating_ips_bulk.py Use plain routes list for os-floating-ips-bulk endpoint instead of stevedore 2017-05-01 19:22:14 +03:00
floating_ips.py remove get_nw_info_for_instance from compute.utils 2017-06-13 13:30:06 +02:00
fping.py Use plain routes list for os-fping endpoint 2017-06-07 14:25:58 +08:00
helpers.py remove personality extension 2016-06-24 14:44:53 -04:00
hide_server_addresses.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
hosts.py Use plain routes list for hosts endpoint instead of stevedore 2017-06-07 14:25:58 +08:00
hypervisors.py Consolidate index and detail methods in HypervisorsController 2017-06-19 11:19:01 -04:00
image_metadata.py [1/3]Replace six.iteritems() with .items() 2016-12-22 02:43:12 +00:00
image_size.py policy: Replaces 'authorize' in nova-api (part 3) 2016-06-28 23:11:10 +00:00
images.py Depracate Images Proxy APIs 2016-07-21 00:50:36 +08:00
instance_actions.py Use plain routes list for instance actions endpoint 2017-06-07 14:25:58 +08:00
instance_usage_audit_log.py Use plain routes list for os-instance-usage-audit-log endpoint instead of stevedore 2017-04-29 14:32:54 +08:00
ips.py Use plain routes list for server ips endpoint 2017-06-07 14:25:58 +08:00
keypairs.py Use plain routes list for '/os-keypairs' endpoint instead of stevedore 2017-04-25 22:38:37 +08:00
limits.py Use plain routes list for limits endpoint instead of stevedore 2017-05-24 14:29:07 +08:00
lock_server.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
migrate_server.py Ensure the JSON-Schema covers the legacy v2 API 2017-06-30 07:25:05 +00:00
migrations.py Use plain routes list for os-migrations endpoint instead of stevedore 2017-05-27 10:12:52 +00:00
multinic.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
multiple_create.py Remove multiple create from stevedore 2017-06-19 16:49:34 +01:00
networks_associate.py Deprecated networks related proxy APIs 2016-07-21 13:29:41 +08:00
networks.py Provide more duplicate VLAN network error info 2016-08-23 00:14:10 +00:00
pause_server.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
quota_classes.py Use plain routes list for os-quota-classes endpoint instead of stevedore 2017-06-19 16:38:03 +01:00
quota_sets.py Use plain routes list for os-quota-sets endpoint instead of stevedore 2017-05-22 18:02:23 +08:00
remote_consoles.py Use plain routes list for os-remote-consoles instead of stevedore 2017-06-19 16:49:34 +01:00
rescue.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
rest_api_version_history.rst API support for tagged device attachment 2017-06-30 09:05:34 +03:00
routes.py Use plain routes list for os-remote-consoles instead of stevedore 2017-06-19 16:49:34 +01:00
scheduler_hints.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
security_group_default_rules.py Deprecate SecurityGroup related proxy API 2016-07-26 14:14:44 +08:00
security_groups.py Optimize creating security_group 2017-05-27 10:14:53 +00:00
server_diagnostics.py Fixed some nits for microversion 2.48 2017-06-06 13:34:17 +00:00
server_external_events.py Use plain routes list for os-server-external-events endpoint 2017-06-01 11:47:51 +01:00
server_groups.py Ensure the JSON-Schema covers the legacy v2 API 2017-06-30 07:25:05 +00:00
server_metadata.py Use plain routes list for server-metadata endpoint instead of stevedore 2017-05-03 02:45:17 +00:00
server_migrations.py Use plain routes list for server-migrations endpoint instead of stevedore 2017-06-01 11:47:51 +01:00
server_password.py Use plain routes list for server-password endpoint instead of stevedore 2017-05-17 09:32:31 +08:00
server_tags.py Send out notifications when instance tags changed 2017-06-06 12:53:28 -04:00
server_usage.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
servers.py Simplify a condition 2017-06-22 20:22:05 +00:00
services.py Explain why API services are filtered out of GET /os-services 2017-06-21 15:59:14 -04:00
shelve.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
simple_tenant_usage.py Move to proper target_cell calling convention 2017-05-23 08:12:42 -07:00
suspend_server.py Totally freeze the extension_info API 2017-05-08 16:32:48 +08:00
tenant_networks.py Count networks to check quota 2017-06-19 21:51:46 +00:00
used_limits.py Use plain routes list for limits endpoint instead of stevedore 2017-05-24 14:29:07 +08:00
user_data.py Use plain routes list for user_data instead of stevedore 2017-06-13 14:04:00 +00:00
versions.py Remove unused conf 2016-09-02 09:02:23 +08:00
versionsV21.py Rename classes containing 'v3' to 'v21' 2015-08-18 15:25:46 +08:00
virtual_interfaces.py use plain routes list for os-virtual-interfaces 2017-06-07 14:25:58 +08:00
volumes.py Handle Cinder 3.27 style attachments in swap_volume 2017-07-07 03:01:26 -04:00
wsgi.py Add pbr-installed wsgi application for metadata api 2017-05-02 16:58:11 +00:00