Attaching a volume returns HTTP 202
Instead of returning an HTTP 200 and a `volumeAttachment` object, attaching a volume to an instance returns HTTP 202 starting from API version 2.101. To keep the functionality for older API versions, we move the `_attach_volume()` method from n-api to n-conductor and either do a call or a cast depending on whether the API needs to return a value. n-conductor then handles reserving the block_device_mapping's device by calling n-compute before it starts the previously-already-async volume attachment. We have to move `_check_attach_and_reserve_volume` into compute utils, because it's getting called in both conductor and compute api (for the shelved offloaded attach). The new RPC method in the conductor needs a long timeout when used with API versions less than the new 2.101, because it waits for the call to `reserve_block_device_name()` in nova-compute which already needs a long timeout. Updating the functional tests' `post_server_volume()` and `_attach_volume()` to not return the attachment anymore is possible, as no test uses the returned values. Change-Id: I4d38c2679f0e88cca30055a9c8c45ba1dd6fb5ef Implements: blueprint async-volume-attachments Signed-off-by: Johannes Kulik <johannes.kulik@sap.com>
This commit is contained in:
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"volumeAttachment": {
|
||||
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
|
||||
"tag": "foo",
|
||||
"delete_on_termination": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"volumeAttachments": [
|
||||
{
|
||||
"attachment_id": "979ce4f8-033a-409d-85e6-6b5c0f6a6302",
|
||||
"delete_on_termination": false,
|
||||
"device": "/dev/sdc",
|
||||
"serverId": "7696780b-3f53-4688-ab25-019bfcbbd806",
|
||||
"tag": null,
|
||||
"volumeId": "227cc671-f30b-4488-96fd-7d0bf13648d8",
|
||||
"bdm_uuid": "c088db45-92b8-49e8-81e2-a1b77a144b3b"
|
||||
},
|
||||
{
|
||||
"attachment_id": "c5684109-0311-4fca-9814-350e46ab7d2a",
|
||||
"delete_on_termination": true,
|
||||
"device": "/dev/sdb",
|
||||
"serverId": "7696780b-3f53-4688-ab25-019bfcbbd806",
|
||||
"tag": "foo",
|
||||
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
|
||||
"bdm_uuid": "1aa24536-6fb5-426c-8894-d627f39aa48b"
|
||||
}
|
||||
]
|
||||
}
|
||||
+10
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"volumeAttachment": {
|
||||
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
|
||||
"id": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
|
||||
"serverId": "fddf0901-8caf-42c9-b496-133c570b171b",
|
||||
"device": "/dev/sdb",
|
||||
"tag": "foo",
|
||||
"delete_on_termination": true
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"volumeAttachment": {
|
||||
"attachment_id": "721a5c82-5ebc-4c6a-8339-3d33d8d027ed",
|
||||
"delete_on_termination": true,
|
||||
"device": "/dev/sdb",
|
||||
"serverId": "7ebed2ce-85b3-40b5-84ae-8cc725c37ed2",
|
||||
"tag": "foo",
|
||||
"volumeId": "a07f71dc-8151-4e7d-a0cc-cd24a3f11113",
|
||||
"bdm_uuid": "c088db45-92b8-49e8-81e2-a1b77a144b3b"
|
||||
}
|
||||
}
|
||||
@@ -19,8 +19,8 @@
|
||||
}
|
||||
],
|
||||
"status": "CURRENT",
|
||||
"version": "2.100",
|
||||
"version": "2.101",
|
||||
"min_version": "2.1",
|
||||
"updated": "2013-07-23T11:33:21Z"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
}
|
||||
],
|
||||
"status": "CURRENT",
|
||||
"version": "2.100",
|
||||
"version": "2.101",
|
||||
"min_version": "2.1",
|
||||
"updated": "2013-07-23T11:33:21Z"
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user