summaryrefslogtreecommitdiffstats
path: root/nova/exception.py
Commit message (Collapse)AuthorAgeFilesLines
* Merge "xenapi: Remove vestigial `compile_metrics` code"Jenkins2013-07-021-4/+0
|\
| * xenapi: Remove vestigial `compile_metrics` codeRick Harris2013-06-271-4/+0
| | | | | | | | | | | | | | | | | | | | `compile_metrics` is no longer called as it was superceded by: https://github.com/openstack/nova/commit/8887f10c66bca248f289db8f834ae8f36f9a03a1 Fixes bug 1194990 Change-Id: Ia651ac69fc38ed3f5cb29562556f7065caba225a
* | Merge "Remove broken config_drive image_href support."Jenkins2013-06-271-0/+4
|\ \
| * | Remove broken config_drive image_href support.Chris Behrens2013-06-261-0/+4
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | image_href support has not been working since at least shortly before Folsom release. This is a good indication that this functionality is not used. As far as I can tell, the docs also do not match what was supported. An image ID was required, but docs show examples with full hrefs. DocImpact http://docs.openstack.org/developer/nova/api_ext/ext_config_drive.html References to supporting image_hrefs should be removed. This patch also removes the hack that passed a config_drive_id via the Instance dictionary when config_drive_id is not a valid Column for Instance. Fixes bug 1186401 Change-Id: Iced7bc8e278cb9f208183f1dbb7a293675a47eae
* / Fix a couple typos in the nova.exception moduleMatt Riedemann2013-06-261-2/+2
|/ | | | | | | | | This patch fixes a couple of typos in localized user-facing strings in the nova.exception module. Fixes bug 1194944 Change-Id: Ia85e69c23832ab4fd9f56c525075bd30bf4b059e
* Merge "Do not raise NEW exceptions"Jenkins2013-06-241-2/+4
|\
| * Do not raise NEW exceptionsBoris Pavlovic2013-06-221-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Raising NEW exception is bad practice, because we lose TraceBack. So all places like: except SomeException as e: raise e should be replaced by except SomeException: raise If we are doing some other actions before reraising we should store information about exception then do all actions and then reraise it. This is caused by eventlet bug. It lost information about exception if it switch threads. fixes bug 1191730 Change-Id: Ia375ecef9f16bda65d5146d14ed4b37a988abb0c
* | xenapi: revisit error handling around calls to agentJohn Garbutt2013-06-191-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Now we have settings to hint if the agent is present or not, and by default we do not check for the agent, if the agent is not responding to our calls for its version, we can fail the build. In environments that need the agent to inject the networking, you really want the agent to fail if it is not present. If the agent did not inject the networking, the server will have no networking. However, we can still leave the agent upgrade to silently fail, as the agent should be backwards compatible. fixes bug 1188540 Change-Id: I8acdabd8d2bd24b088dad3cd4abec300d0ada3fb
* | Merge "Remove unused cert db method."Jenkins2013-06-181-4/+0
|\ \
| * | Remove unused cert db method.Russell Bryant2013-06-141-4/+0
| |/ | | | | | | | | | | | | | | nova.db.sqlalchemy.api contained a certificate_get() method that was unused. It was not in the main db.api. This method was also the only reference to CertificateNotFound, so remove that as well. Change-Id: Iba9aece2302e2f175e5d60e48b23959885a81c8d
* / Add unique constraints to Cell.Yuriy Zveryanskyy2013-06-171-0/+4
|/ | | | | | | | | | | | | In documentation: "name: Name of the current cell. This must be unique for each cell" Added unique constraint 'uniq_cell_name0deleted' ('name','deleted') to Cell model and migrate sripts. Added new exception `CellsExists`. Updated cell_create() in db.api. Tests updated respectively. blueprint db-enforce-unique-keys Change-Id: Ib76e167089cb4756e4438613b49013ebf0874afe
* xenapi: remove auto_disk_config check during resizeJohn Garbutt2013-06-121-0/+4
| | | | | | | | | | | | | | | | | | | | | This check was introduced by the following change: 7c5c8a743c21733120c85fdefb84b4357f5848d0 This is an alternative fix to ensure resize down is not processed if the disk cannot be resized. Note the failure now registers an instance action and does not leave the VM in an error state. In addition, this keeps the behavior that a failure to resize up and instance during spawn will not cause the operation to fail and put the VM into error. fixes bug 1188135 fixes bug 1187934 fixes bug 1081225 Change-Id: I5b3dfdc7fcda26c55702dde6cdf191beee0c818c
* Nova instance group DB supportGary Kotton2013-06-111-0/+22
| | | | | | DB support for blueprint instance-group-api-extension Change-Id: I615af9826ef61fd63d4cd8017908f943969bf177
* Merge "Add missing conversion specifier to ServiceGroupUnavailable"Jenkins2013-06-101-1/+1
|\
| * Add missing conversion specifier to ServiceGroupUnavailableJoe Gordon2013-05-261-1/+1
| | | | | | | | | | | | | | | | | | The message in the ServiceGroupUnavailable exception was missing the 's' conversion specifier. Fix bug 1183733 Change-Id: I54869431511a72c49ccf61f5e7b1a30607959423
* | Merge "BDM class and transformation functions"Jenkins2013-06-101-0/+11
|\ \
| * | BDM class and transformation functionsNikola Dipanov2013-06-081-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds the utility functions that will help us switch between versions of block device mapping data. In order to accomplish this, and to have a more structured approach to dealing with block device mapping data in the future, this patch introduces a BlockDeviceDict class which is a thin wrapper around a standard dict that makes it easier to reason about which fields are present in the dictionary, and introduces said conversion routines. blueprint: improve-block-device-handling Change-Id: I9370333059b8c9aaf92010470b8475a913d329b2
* | | Merge "Adds check that the core V3 API is loaded"Jenkins2013-06-101-0/+4
|\ \ \
| * | | Adds check that the core V3 API is loadedChris Yeoh2013-06-071-0/+4
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds infrastructure to be able to check that the core V3 API plugins are present and raise an exception and abort if any are missing. The list is deliberately hard coded though it is not yet complete and will be expanded as the core APIs are ported and it is decided exactly what will be considered to be the core API. Partially implements blueprint v3-api-extension-framework Change-Id: Ic2c1d5cd6836ee18819106558880682cf4cda487
* / / Improve Keypair error messages in osapiRick Harris2013-06-061-1/+1
|/ / | | | | | | | | | | | | | | | | | | The KeypairAPI code provides useful error messages that weren't being percolated back through the OpenStack API. This patch addresses this by using the original `message` when crafting the HTTPException objects. References bug 1187952 Change-Id: I786a225010d912d7bfea5c01838ddcf43fd90d53
* | Improve Python 3.x compatibilityDirk Mueller2013-06-011-1/+1
| | | | | | | | | | | | | | | | | | Mechanical translation of the deprecated except x,y: construct with except x as y: The latter works with any Python >= 2.6. Add Hacking check. Change-Id: I845829d97d379c1cd9b3a77e7e5786586f263b64
* | Add base object modelDan Smith2013-05-291-0/+12
|/ | | | | | | | | | | | | This adds the base infrastructure for a unified object model in Nova. It provides a somewhat-magical metaclass which serves to automatically register objects that are capable of being remoted. Magic remoting of methods happens via two decorators, allowing a given nova service to globally declare that such actions should happen over RPC to avoid DB accesses. For more details, see blueprint unified-object-model Change-Id: Iecd54ca22666f730c41d2278f74b86d922624a4e
* Merge "Fix tests for sqlalchemy utils"Jenkins2013-05-241-0/+4
|\
| * Fix tests for sqlalchemy utilsBoris Pavlovic2013-05-241-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fix tests to be able to run it with postgresql and mysql. Some tests should be run only on sqlite Method create_shadow_tables raises different exception in different backends (when we try to create duplicate table): In postgresql it is ProgrammingError In sqlite and mysql it is OperationalError So create new Exception that will be raised in both cases. bp db-common-migration-and-utils Change-Id: I11be23106bc01bd3c72dad30edfb31a17177bb34
* | Remove ImageTooLarge exceptionRick Harris2013-05-221-4/+0
|/ | | | | | | | | InstanceTypeDiskTooSmall and ImageTooLarge are really two sides of the same coin; an image is larger than the root_gb of the instance_type. Rather than have two exceptions for this, this patch consolidates down to just InstanceTypeDiskTooSmall. Change-Id: I401205072c111a960beb2932c6c1889141ae03c3
* Merge "Cells: Don't allow active -> build"Jenkins2013-05-151-0/+5
|\
| * Cells: Don't allow active -> buildChris Behrens2013-05-151-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds support for passing 'expected_vm_state' in an instance_update dict much like the current support for 'expected_task_state'. For cells, when the API cell receives an instance update containing a vm_state of BUILDING, raise an exception if the instance is in some other state. This addresses out-of-order messaging issues that can cause an instance to appear to have a huge delay going ACTIVE. (A periodic task run can later heal the state, but it can take a long while) Fixes bug 1180283 Change-Id: I64252b30e2596812f3b84da64b1fc8681661d7f8
* | xenapi: ensure vdi is not too big when resizing downJohn Garbutt2013-05-151-0/+7
|/ | | | | | | | | | | | | | | | | Fix for bug 1155066 This change adds some rollback into the resize disk down code within xenapi, and reports a better error message when the disk is too big to resize down. On a successful rollback, the user is notified of the error by the instance actions, rather than leaving the server in the error state. The user is then able to free up some disk space such that the resize can work correctly. Change-Id: Ibad568ab3cfb9caaf4fe002572c8cda973d501a7
* Convert to using oslo's execute() method.Michael Still2013-05-041-19/+0
| | | | | | | | There are some small warts (mostly around other execute() like methods which reuse the exception). I will fix these warts in later reviews. Change-Id: Ice9cdbdc5f3e5a9f8365f5d99acf1863a9fe3e7a
* Reset migrating task state for MigrationError exceptionsHans Lindgren2013-05-011-0/+4
| | | | | | | | | | | | | | | | | Create an exception type for pre-check errors and add it to the list of exceptions for which instance task state is reset to ACTIVE to avoid cases where an instance get stuck in MIGRATING state. Convert existing instances of raise MigrationError in scheduler and driver pre-checks to have them raise the new MigrationPreCheckError exception instead. In addition, also make sure that expected exceptions are passed over RPC silently. Resolves bug 1171526. Change-Id: I00fa0962e555f895dd98861684ec7767fed3b37b
* Update to using oslo periodic tasks implementation.Michael Still2013-05-011-4/+0
| | | | | | | Convert nova to using the oslo periodic tasks implementation. There are no functional changes in this review. Change-Id: I767e0ad17781d5f9d5e987e0a4ad65796243ae5c
* Merge "Refactor _run_instance() to unify control flow"Jenkins2013-04-261-0/+9
|\
| * Refactor _run_instance() to unify control flowBrian Elliott2013-04-261-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _run_instance() had multiple points where various classes of errors were handled. This patch classifies the possible error/exit conditions into the following categories: * success * rescheduled - an error occurred, but the build will be returned to scheduled for another attempt. * aborted - build was aborted for a non-error. (e.x. instace was deleted during spawn) * fatal - general case of uncaught exceptions resulting in the instance going to error. blueprint create-error-notification Change-Id: I3f01753bde8af0750ba9067c8a98ded45d5a0eb7
* | Remove unused exception and variable from scheduler.Alvaro Lopez Garcia2013-04-181-9/+0
|/ | | | | | | There are no cost functions, so there is no cache and no Exception to be raised. Change-Id: I4a67bd45e3f0c91e5507ed3794dc20b13292596b
* Merge "Limit the checks for block device becoming available."Jenkins2013-04-031-0/+6
|\
| * Limit the checks for block device becoming available.Joshua Harlow2013-04-021-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | Instead of previously looping potentially forever for a block device mapping to become created from the volume api, basically blocking a greenthread until this happens we now will have a number of attempts (defaulting to 10) that we will wait for the volume api to create said block device mapping (or error out). Fixes bug 1162064 Change-Id: I6ff0b42aad48df735d09f91a0a9fe98e6abcf2eb
* | Return proper error message when network conflictsHaiwei Xu2013-04-011-0/+5
| | | | | | | | | | | | | | | | | | | | | | Fixes bug 1158075 When creating a network which is already existing, we got an internal server error which can't show the error reason. This patch returns conflict error(HTTP 409) instead of internal server error(HTTP 500), so that users can know the error reason from the error message. Change-Id: I9e39a7152e37756b34b1c8d77de057012743f0f7
* | 'injected_files' should be base 64 encoded.Brian Elliott2013-03-291-0/+4
|/ | | | | | | | | If an instance build needs to be rescheduled, send the original base 64 encoded injected_files parameter. bug 1161479 Change-Id: I4dad95e95cd27f7f128989daa36b3a2bbf132c73
* Add a format_message method to the ExceptionsNikola Dipanov2013-03-271-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch adds a format_message method to the NovaException class that will almost always do what a user wants, when they want to print out the message of the exception. Exceptions that are received through RPC are turned into an actual exception classes by the deserialize_remote_exception function of the nova.openstack.common.rpc.common module. This function then overrides __str__ and __unicode__ methods of a new class to print the whole trace. We still want to preserve this functionality (for logging) but do not want to leak the trace back to the user in the HTTP response. Based on the above, This patch attempts to establish a convention that states: if you need to get the message of a NovaException subclass - always use the format_message method. Only use str(e) or unicode(e) when you suspect that they were overriden. Initially this was attempted through adding a custom metaclass to the NovaException class so that format_message cannot be overridden in subclasses, however due to a bug in testtools - many tests were failing. A patch was proposed to testtols to remedy this (https://github.com/testing-cabal/testtools/pull/34) however until it is merged, we cannot use metaclasses with our exception classes as they cause tests to fail. Change-Id: I0a399b9ab3227bad644b031c9b689fe0ce64586e
* Merge "Add quotas for fixed ips."Jenkins2013-03-151-0/+4
|\
| * Add quotas for fixed ips.Michael Still2013-03-151-0/+4
| | | | | | | | | | | | | | | | | | | | DocImpact: there is now a default quota of 10 fixed ips per tenant. This will need to be adjusted by deployers if that number does not meet their needs. Resolves bug 1125468. Change-Id: Iffa19583340f80cb2a13ba5fce31f7ff724a52d6
* | Don't include traceback when wrapping exceptionsVishvananda Ishaya2013-03-141-0/+1
|/ | | | | | | | | | | | | | | | | | | The fix in fa52cb09b2270876c9d9a03106f961be6c9db834 strips tracebacks from exceptions when returning them to the user, but it still spams the log with a long traceback. We shouldn't be including the traceback when we wrap the exception in the first place. Instead we just include the message. It also updates the error code to 409 for device in use since this is actually a conflict. Fix for: bug 1155315 bug 1103324 bug 1092610 Change-Id: I95019a3022eb52e0335c455009c13fe229475d03
* Prevent rescue for volume-backed instancesNikola Dipanov2013-03-091-0/+4
| | | | | | | | | | | | | | | | | This patch prevents rescuing of volume_backed instances, by checking for it in the API layer and raising an exception if instance on which a rescue was attempted is volume backed. Rescue is supposed to just be a way to log into a wayward instance if something goes wrong with the base image that may have had some data (logfiles etc.) and make it possible to grab that - block devices are assumed to be accessible by re-attaching them, and are considered persistant so no need for rescue there. Fixes bug: #1067744 blueprint: improve-boot-from-volume Change-Id: I8a4b1ccff7406837de3086aa413034e8e647b8fa
* Remove parameters containing passwords from Notifications.Sandy Walsh2013-03-051-2/+10
| | | | | | | | | | | | | | | | | | compute.manager methods often takes password parameters in methods that are wrapped with exception handlers and notifiers. What can happen is these passwords will get bundled up and sent outside of the system. This patch will strip out any parameter with *_pass* in the name. The side effect of this is that all notification will have the error parameters in the 'args' part of the notification payload. Previously only the positional args were in the 'args' part and keyword args were placed in the payload directly. This may affect consumers of the error notifications. Change-Id: I2e7822eb5416d315ceb690f739e4dba9d52a7954
* Merge "Adds retry on upload_vhd for xapi glance plugin"Jenkins2013-03-041-0/+4
|\
| * Adds retry on upload_vhd for xapi glance pluginNicholas Kuechler2013-02-271-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a retry for the xapi glance plugin to handle transient issues when uploading the vhd. An example issue we're seeing is a connection timeout: ['XENAPI_PLUGIN_FAILURE', 'upload_vhd', 'error', "(110, 'Connection timed out')"] To work around transient issues such as a connection timeout, we should retry based on glance_num_retries before outright failing. Change-Id: Ice6fdd3dd39ef40e5997d69209aaafa66bff5d6e Fixes: bug #1134493
* | Merge "instance_info_cache_update creates wrongly"Jenkins2013-03-021-0/+5
|\ \
| * | instance_info_cache_update creates wronglyChris Behrens2013-03-011-0/+5
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | If instance_info_cache_update() finds that the entry doesn't exist, it attempts to create an entry, but it didn't use all of the data. This patch fixes that. Also if the info_cache entry was found to be deleted, the old code would attempt to create a new entry. This would have failed with DBDuplicateEntry.. Instead, raise InstanceInfoCacheNotFound, which is more appropriate. (It doesn't seem we actually ever hit this case.) Fixes bug 1131594 Change-Id: Id008faf5c4a48ab6a04e75796b7e61dea102acc9
* / don't stack trace if long ints are passed to dbSean Dague2013-02-281-0/+4
|/ | | | | | | | | | | | | | | | | | | | If we pass a integer, which is longer than the id field in the database, but a valid python integer into any of the REST API calls SQLalchemy throws a DataError, and the user sees a 500 instead of InstanceNotFound. This can be triggered by using a id of 9223372036854775808 (for instance). This issue is seen on postgresql, mysql and sqlite don't hit it. Instead, catch the DataError exception, and return an InvalidID exception. If InvalidID is thrown catch that at the API layer and return the expected not found. This was caught when reenabling tempest tests for bug #1046870 and is one of serveral patches in nova needed to enable test_servers_negative.py in tempest. Change-Id: I6130863a95567eabd3ae05a09e4a9f26bb5f5098
* Merge "Identify baremetal nodes by UUID."Jenkins2013-02-211-0/+8
|\