handle AutoDiskConfigDisabledByImage at API layer
nova compute api layer might raise AutoDiskConfigDisabledByImage, so API layer need to catch them and report correct info. Also, create api handle lots of exceptions which inherit from Invalid, this patch combined them and catch Invalid only. Change-Id: Id0c89e96637d2f82b5bd204eba2c6291b9a5dd38
This commit is contained in:
@@ -983,23 +983,18 @@ class Controller(wsgi.Controller):
|
||||
except (exception.ImageNotActive,
|
||||
exception.FlavorDiskTooSmall,
|
||||
exception.FlavorMemoryTooSmall,
|
||||
exception.InvalidMetadata,
|
||||
exception.InvalidRequest,
|
||||
exception.MultiplePortsNotApplicable,
|
||||
exception.InvalidFixedIpAndMaxCountRequest,
|
||||
exception.NetworkNotFound,
|
||||
exception.PortNotFound,
|
||||
exception.FixedIpAlreadyInUse,
|
||||
exception.SecurityGroupNotFound,
|
||||
exception.InvalidBDM,
|
||||
exception.PortRequiresFixedIP,
|
||||
exception.NetworkRequiresSubnet,
|
||||
exception.InstanceUserDataTooLarge,
|
||||
exception.InstanceUserDataMalformed) as error:
|
||||
raise exc.HTTPBadRequest(explanation=error.format_message())
|
||||
except (exception.PortInUse,
|
||||
exception.NoUniqueMatch) as error:
|
||||
raise exc.HTTPConflict(explanation=error.format_message())
|
||||
except exception.Invalid as error:
|
||||
raise exc.HTTPBadRequest(explanation=error.format_message())
|
||||
|
||||
# If the caller wanted a reservation_id, return it
|
||||
if ret_resv_id:
|
||||
@@ -1189,7 +1184,8 @@ class Controller(wsgi.Controller):
|
||||
except exception.Invalid:
|
||||
msg = _("Invalid instance image.")
|
||||
raise exc.HTTPBadRequest(explanation=msg)
|
||||
except exception.NoValidHost as e:
|
||||
except (exception.NoValidHost,
|
||||
exception.AutoDiskConfigDisabledByImage) as e:
|
||||
raise exc.HTTPBadRequest(explanation=e.format_message())
|
||||
|
||||
return webob.Response(status_int=202)
|
||||
@@ -1396,7 +1392,8 @@ class Controller(wsgi.Controller):
|
||||
except (exception.ImageNotActive,
|
||||
exception.FlavorDiskTooSmall,
|
||||
exception.FlavorMemoryTooSmall,
|
||||
exception.InvalidMetadata) as error:
|
||||
exception.InvalidMetadata,
|
||||
exception.AutoDiskConfigDisabledByImage) as error:
|
||||
raise exc.HTTPBadRequest(explanation=error.format_message())
|
||||
|
||||
instance = self._get_server(context, req, id)
|
||||
|
||||
Reference in New Issue
Block a user