OpenStack Compute (Nova)
Go to file
melanie witt a80eb82f67 Remove redundant call to get/create default security group
In the instance_create DB API method, it ensures the (legacy) default
security group gets created for the specified project_id if it does
not already exist. If the security group does not exist, it is created
in a separate transaction.

Later in the instance_create method, it reads the default security group
back that it wrote earlier (via the same ensure default security group
code). But since it was written in a separate transaction, the current
transaction will not be able to see it and will get back 0 rows. So, it
creates a duplicate default security group record if project_id=NULL
(which it will be, if running nova-manage db online_data_migrations,
which uses an anonymous RequestContext with project_id=NULL). This
succeeds despite the unique constraint on project_id because in MySQL,
unique constraints are only enforced on non-NULL values [1].

To avoid creation of a duplicate default security group for
project_id=NULL, we can use the default security group object that was
returned from the first security_group_ensure_default call earlier in
instance_create method and remove the second, redundant call.

This also breaks out the security groups setup code from a nested
method as it was causing confusion during code review and is not being
used for any particular purpose. Inspection of the original commit
where it was added in 2012 [2] did not contain any comments about the
nested method and it appeared to either be a way to organize the code
or a way to reuse the 'models' module name as a local variable name.

Closes-Bug: #1824435

[1] https://dev.mysql.com/doc/refman/8.0/en/create-index.html#create-index-unique
[2] https://review.opendev.org/#/c/8973/2/nova/db/sqlalchemy/api.py@1339

 Conflicts:
	gate/post_test_hook.sh

NOTE(melwitt): The conflict is because of the difference from Train in
the patch below this one where we need to pass the cell1 config to the
archive command because change
If133b12bf02d708c099504a88b474dce0bdb0f00 is not in Stein.

Change-Id: Idb205ab5b16bbf96965418cd544016fa9cc92de9
(cherry picked from commit 6ea945e3b1)
(cherry picked from commit 416290f193)
2019-11-05 23:39:10 +00:00
api-guide/source Documentation for bandwidth support 2019-03-18 11:24:56 +01:00
api-ref/source Merge "Fix the server group "policy" field type in api-ref" into stable/stein 2019-09-18 17:30:55 +00:00
devstack Remove the CachingScheduler 2018-10-18 17:55:36 -04:00
doc Fix unit of hw_rng:rate_period 2019-10-17 22:31:56 +09:00
etc/nova Add oslo.privsep to config-generator list 2019-03-01 16:43:21 +00:00
gate Remove redundant call to get/create default security group 2019-11-05 23:39:10 +00:00
nova Remove redundant call to get/create default security group 2019-11-05 23:39:10 +00:00
playbooks/legacy OpenDev Migration Patch 2019-04-19 19:47:27 +00:00
releasenotes Imported Translations from Zanata 2019-11-03 06:27:01 +00:00
tools Make Xen code py3-compatible 2018-08-10 20:04:19 +00:00
.coveragerc Remove nova/openstack/* from .coveragerc 2016-10-12 16:20:49 -04:00
.gitignore Remove Placement API reference 2018-11-28 03:38:41 +00:00
.gitreview OpenDev Migration Patch 2019-04-19 19:47:27 +00:00
.mailmap Add mailmap entry 2014-05-07 12:14:26 -07:00
.stestr.conf Finish stestr migration 2017-11-24 16:51:12 -05:00
.zuul.yaml Switch to opensuse-15 nodeset 2019-10-30 07:07:11 +01:00
CONTRIBUTING.rst Update links in documents 2018-01-12 17:05:11 +08:00
HACKING.rst Remove descriptions of nonexistent hacking rules 2019-09-03 02:15:41 +00:00
LICENSE initial commit 2010-05-27 23:05:26 -07:00
MAINTAINERS Fix broken URLs 2017-09-07 15:42:31 +02:00
README.rst Docs: modernise links 2018-03-24 20:27:11 +08:00
babel.cfg Get rid of distutils.extra. 2012-02-08 19:30:39 -08:00
bindep.txt Merge "Bindep does not catch missing libpcre3-dev on Ubuntu" 2018-02-14 07:31:09 +00:00
lower-constraints.txt Merge "Require python-ironicclient>=2.7.0" 2019-03-22 02:55:13 +00:00
requirements.txt Merge "Convert driver supported capabilities to compute node provider traits" 2019-03-05 09:50:12 +00:00
setup.cfg Update mailinglist from dev to discuss 2018-12-05 09:44:35 +08:00
setup.py Updated from global requirements 2017-03-02 11:50:48 +00:00
test-requirements.txt Require python-ironicclient>=2.7.0 2019-03-12 15:10:11 -04:00
tox.ini Update UPPER_CONSTRAINTS_FILE for stable/stein 2019-03-22 03:50:05 +00: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, OpenStack Ironic and PowerVM.

Use the following resources to learn more.

API

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

For more information on OpenStack APIs, SDKs and CLIs in general, refer to:

Operators

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

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:

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:

Other Information

During each Summit and Project Team Gathering, we agree on what the whole community wants to focus on for the upcoming release. The plans for nova can be found at: