KeyError from storwize driver when 'host' is not provided to terminate_connection
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Cinder |
Fix Released
|
Medium
|
Jay Bryant | ||
Havana |
Fix Released
|
Medium
|
Avishay Traeger |
Bug Description
When user tries to delete an instance, if the nova compute driver for the instance's host is down, the nova api code goes into _local_delete(). The following code creates a fake "connector" without a 'host' key/vale.
for bdm in bdms:
if bdm['volume_id']:
# NOTE(vish): We don't have access to correct volume
# connector info, so just pass a fake
# connector. This can be improved when we
# expose get_volume_
When code flow reaches the cinder driver, which expects a 'host', a "KeyError: 'host'" exception is raised, and deletion of the instance fails.
The failure in deletion is as expected since the nova driver is not up. This issue is requesting a modification in nova api code, so that if the nova compute server is not available, a more meaningful error message ("nova compute server is not available") could be returned, before getting to the cinder code.
summary: |
- KeyError from storwize driver when 'host' is not provided + KeyError from storwize driver when 'host' is not provided to + terminate_connection |
tags: |
added: storwize removed: storwize-svc |
Changed in cinder: | |
milestone: | none → icehouse-1 |
Changed in cinder: | |
assignee: | nobody → Avishay Traeger (avishay-il) |
Changed in cinder: | |
milestone: | icehouse-1 → icehouse-2 |
Changed in cinder: | |
assignee: | Avishay Traeger (avishay-il) → Jay Bryant (jsbryant) |
Changed in cinder: | |
milestone: | icehouse-2 → icehouse-1 |
status: | Fix Committed → Fix Released |
tags: | removed: havana-backport-potential in-stable-havana |
Changed in cinder: | |
milestone: | icehouse-1 → 2014.1 |
The volume_api block in _local_delete is catching an exception but not the KeyError so the instance deletion would fail here since a KeyError is not an Exception.