Commit ec596c24 authored by Iustin Pop's avatar Iustin Pop
Browse files

Catch BlockDeviceError when starting instance

This is a forward-port of commit 1149 on the 1.2 branch:
  _GatherAndLinkBlockDevs used to raise the errors.BlockDeviceError
  exception when it failed to create a block device, and with this patch
  set it does so also when it fails to create a symlink to it.

  With this patch we move the call to this function into a pre-existing
  try-except block in the code, and catch the BlockDeviceError exception,
  logging a message and returning a failure state if it happens.

  Reviewed-by: iustinp

The changes are related to the new hypervisor and logging syntax.

Original-Author: ultrotter
parent 9332fd8a
......@@ -809,11 +809,13 @@ def StartInstance(instance, extra_args):
if instance.name in running_instances:
return True
block_devices = _GatherAndLinkBlockDevs(instance)
hyper = hypervisor.GetHypervisor(instance.hypervisor)
try:
block_devices = _GatherAndLinkBlockDevs(instance)
hyper = hypervisor.GetHypervisor(instance.hypervisor)
hyper.StartInstance(instance, block_devices, extra_args)
except errors.BlockDeviceError, err:
logging.exception("Failed to start instance")
return False
except errors.HypervisorError, err:
logging.exception("Failed to start instance")
return False
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment