OpenStack Compute (Nova)
Go to file
Matt Riedemann eda54b1ed7 Handle unicode when dealing with duplicate flavors during online migrations
In python 2.7 you can't cast unicode to str and you'll get a
UnicodeEncodeError if you try. Since our exception messages are
translated, they can contain unicode and if we hit a duplicate flavor
exception while performing online flavor migrations it will break the
migration and block any further migrations until resolved - which would
require manual intervention.

This patch fixes the bug so that we use six.text_type instead of str
for logging the duplicate exception and adds a test to exhibit the bug
and prove it's fixed.

On a side note, it's curious that we don't delete the duplicate flavor
from the main database during the online data migration, but it's also
strange that you'd have duplicates in the API database because the
Flavor.create() checks to see if all flavors have been migrated from
the main DB to the API DB and if not you can't create new flavors in
the API DB - so the only way to get the duplicates is either by inserting
them into the API DB manually or perhaps some other kind of race issue.
Anyway, that's not dealt with here.

Change-Id: I3bdb1a8ca72c3e72ddc3bc5102cff8df18148617
Partial-Bug: #1653261
2016-12-30 12:27:48 -05:00
api-guide/source docs: cleanup wording for 'SOFT_DELETED' in api-guide 2016-11-28 11:51:00 -05:00
api-ref/source Merge "Replace "Openstack" with "OpenStack"" 2016-12-27 10:54:40 +00:00
contrib Merge "changed quantum to neutron in vif-openstack" 2014-03-05 10:45:05 +00:00
devstack Add RC file for excluding tempest tests for LVM job 2016-05-17 10:25:45 -04:00
doc Trival fix typo 2016-12-23 14:36:56 +08:00
etc/nova Add CORS filter to versions pipeline 2016-12-02 11:44:09 -05:00
nova Handle unicode when dealing with duplicate flavors during online migrations 2016-12-30 12:27:48 -05:00
plugins/xenserver Add a hacking rule for string interpolation at logging 2016-10-11 08:39:48 +00:00
releasenotes Merge "conf: Deprecate more nova-net options" 2016-12-21 14:33:06 +00:00
tools Add Python 3.5 functional tests in tox.ini 2016-12-14 13:33:07 +08:00
.coveragerc Remove nova/openstack/* from .coveragerc 2016-10-12 16:20:49 -04:00
.gitignore doc: Integrate oslo_policy.sphinxpolicygen 2016-10-20 10:31:01 +01:00
.gitreview Add .gitreview config file for gerrit. 2011-10-24 15:07:19 -04:00
.mailmap Add mailmap entry 2014-05-07 12:14:26 -07:00
.testr.conf [placement] Adjust the name of the gabbi tests 2016-09-20 19:14:44 +00:00
CONTRIBUTING.rst Workflow documentation is now in infra-manual 2014-12-05 03:30:37 +00:00
HACKING.rst hacking: Use uuidutils or uuidsentinel to generate UUID 2016-11-29 11:49:24 +05:30
LICENSE initial commit 2010-05-27 23:05:26 -07:00
MAINTAINERS Add a maintainers file 2015-05-23 03:22:07 +10:00
README.rst Show team and repo badges on README 2016-11-25 13:55:29 +01:00
babel.cfg Get rid of distutils.extra. 2012-02-08 19:30:39 -08:00
bindep.txt List system dependencies for running common tests 2016-08-24 06:49:32 +02:00
requirements.txt Updated from global requirements 2016-12-23 03:16:27 +00:00
run_tests.sh Add description on how to run ./run_test.sh -8 2016-01-11 13:17:04 +00:00
setup.cfg Add nova-status upgrade check command framework 2016-12-19 16:40:50 -05:00
setup.py Updated from global requirements 2015-09-17 16:41:48 +00:00
test-requirements.txt Updated from global requirements 2016-12-23 03:16:27 +00:00
tests-functional-py3.txt Fix urllib.urlencode issue in functional tests on Python 3 2016-12-23 17:13:54 +08:00
tests-py3.txt Merge "Enble compute.test_compute_mgr.ComputeManagerUnitTestCase on Python 3" 2016-12-28 13:38:01 +00:00
tox.ini Add Python 3.5 functional tests in tox.ini 2016-12-14 13:33:07 +08:00

README.rst

Team and repository tags

image

OpenStack Nova

OpenStack Nova provides a cloud computing fabric controller, supporting a wide variety of compute technologies, including: libvirt (KVM, Xen, LXC and more), Hyper-V, VMware, XenServer and OpenStack Ironic.

OpenStack Nova is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.

API

To learn how to use Nova's API, consult the documentation available online at:

http://developer.openstack.org/api-guide/compute/ http://developer.openstack.org/api-ref/compute/

For more information on OpenStack APIs, SDKs and CLIs, please see:

http://www.openstack.org/appdev/ http://developer.openstack.org/

Operators

To learn how to deploy and configure OpenStack Nova, consult the documentation available online at:

http://docs.openstack.org

For information about the different compute (hypervisor) drivers supported by Nova, please read:

http://docs.openstack.org/developer/nova/feature_classification.html

In the unfortunate event that bugs are discovered, they should be reported to the appropriate bug tracker. If you obtained the software from a 3rd party operating system vendor, it is often wise to use their own bug tracker for reporting problems. In all other cases use the master OpenStack bug tracker, available at:

http://bugs.launchpad.net/nova

Developers

For information on how to contribute to Nova, please see the contents of the CONTRIBUTING.rst.

Any new code must follow the development guidelines detailed in the HACKING.rst file, and pass all unit tests.

Further developer focused documentation is available at:

http://docs.openstack.org/developer/nova/