| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
Change-Id: Ieba42647837e57dfd1650a3a299ba8b22a123821
|
|
|
|
|
|
|
|
| |
Change-Id: I1f5b772bff8fa2dc508c4bdd3dd1f32838594786
Related-Bug: #1673569
(cherry picked from commit 3f985f1eda6f29180878a3d21c20c5057179486a)
(cherry picked from commit acb19160d4d348e29a21ad57c61c7369352c4d1c)
(cherry picked from commit c2c91ce44592fc5dc2aacee1cf7f5b5cfd2e9a0a)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The wrap_exception decorator optionally emited a notification.
Based on the code comments the original intention was not to include the
context to that notification due to security reasons. However the
implementation did included the context to the payload of the legacy
notification.
Recently we saw circural reference errors during the payload serialization
of this notification. Based on the logs the only complex data structure
that could cause circural reference is the context. So this patch
removes the context from the legacy exception notification.
The versioned exception notification is not affected as it does not
contain the args of the decorated function.
Conflicts:
nova/exception_wrapper.py
nova/tests/unit/test_exception.py
NOTE(mriedem): The conflict is due to some refactor in Newton:
6329d721ef326488d5d660e4f68febf563ed93ab
Closes-Bug: #1673375
Change-Id: I1d217620e52d45595a3e0e49ed57b4ab33cd1688
(cherry picked from commit 3bf177a59cfd0b4e74dba256c3466ba2ea9bfbf7)
(cherry picked from commit a8a1915456a86f504d23f215867da730d436fe33)
(cherry picked from commit d0ee248bab6727555561c15998c58a0f11a5351b)
|
|
|
|
| |
Change-Id: I608d869701607c35973cfa2f2ec3d7ea588f901a
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we go to detect the minimum version for a given service, we
should ignore any deleted services. Without this, we will return
the minimum version of all records, including those that have been
deleted with "nova service-delete". This patch filters deleted
services from the query.
Conflicts:
nova/db/sqlalchemy/api.py
nova/tests/unit/db/test_db_api.py
NOTE(mriedem): The conflicts are due to not having change
11cb56a2243faa9f2614a8f9a9a84603bc91d6b1 in Mitaka.
Closes-Bug: #1668310
Change-Id: Ic96a5eb3728f97a3c35d2c5121e6fdcd4fd1c70b
(cherry picked from commit c79770e615799cd4457ac603dcad4fb3452fe2bc)
(cherry picked from commit a1dd547d3ba7d9cf5b73da1ce9668e412501ace1)
(cherry picked from commit 1ad5c7305c37079ced24bf623810e63d5eac2661)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
test_stamp_pattern was recently unskipped:
I2c13099595d8ee8099e02e3f06096078c7d27c34
It uses security groups which cells v1 does
not support, so we have to skip this test in
the cells v1 job.
Conflicts:
devstack/tempest-dsvm-cells-rc
NOTE(mriedem): The conflict is due to not having
b113cb13e95b4d9305f093342ad4d34378aee8bb in mitaka.
Change-Id: Id7e8351026ca86694fc9814002b96260f6ba10f9
Closes-Bug: #1664607
(cherry picked from commit d12535839817c4385986ccaffe52b5903d3088ca)
(cherry picked from commit 18fb0a17298dce2b361cc47f16d0d1500484f0d1)
(cherry picked from commit db075faf2a767cf3f62768e85a79c3cff200d3cb)
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The legacy v2 API allowed None for the boot_index [1]. It
allowed this implicitly because the API code would convert
the block_device_mapping_v2 dict from the request into a
BlockDeviceMapping object, which has a boot_index field that
is nullable (allows None).
The API reference documentation [2] also says:
"To disable a device from booting, set the boot index
to a negative value or use the default boot index value,
which is None."
It appears that with the move to v2.1 and request schema
validation, the boot_index schema was erroneously set to
not allow None for a value, which is not backward compatible
with the v2 API behavior.
This change fixes the schema to allow boot_index=None again
and adds a test to show it working.
This should not require a microversion bump since it's fixing
a regression in the v2.1 API which worked in the v2 API and
is already handled throughout Nova's block device code.
Closes-Bug: #1662699
[1] https://github.com/openstack/nova/blob/13.0.0/nova/compute/api.py#L1268
[2] http://developer.openstack.org/api-ref/compute/#create-server
Change-Id: Ice78a0982bcce491f0c9690903ed2c6b6aaab1be
(cherry picked from commit e34f05edb2efc79bfdd8e73cca8fa02ea6ef2d60)
(cherry picked from commit ff1925ae47245f056690889a6e063ebce1bb7a80)
(cherry picked from commit dce8618166d80dc6cf2854920f6275eee73b8d84)
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add simple script to setup mysql and postgresql databases, this script
can be run by users during testing and will be run by CI systems for
specific setup before running unit tests. This is exactly what is
currently done by OpenStack CI in project-config.
This allows to change in project-config the python-db jobs to
python-jobs since python-jobs will call this script initially.
See also
http://lists.openstack.org/pipermail/openstack-dev/2016-November/107784.html
Update devref for this.
Needed-By: Iea42a0525b2c5a5cdbf8604eb23a6e7b029f6b48
Change-Id: Ie9bae659077dbe299eea131572117036065bdccf
(cherry picked from commit d60dffc6bef4d2de32b9509a62f894136c434c3c)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Current BDM JSON-Schema validation doesn't work for invalid device
parameter in 2nd dict, because JSON-Schema definition is wrong.
This patch fixes it.
Co-Authored-By: Zhenyu Zheng <zhengzhenyu@huawei.com>
Conflicts:
nova/api/openstack/compute/schemas/block_device_mapping.py
nova/tests/unit/api/openstack/compute/test_block_device_mapping.py
NOTE(mriedem): The conflicts were due to some additional validation and
tests added for BDMs v2.1 in Newton which are not in Mitaka.
Change-Id: I56348dc2b7abd9526dfbf21305755505765811c5
Closes-Bug: #1651064
(cherry picked from commit a65551ecd09b3116a13d9b6cc833be0c05b716da)
(cherry picked from commit c00d433d2951386648260f005c5cb0ffd159dca4)
|
|
|
|
|
|
|
|
|
|
|
| |
Infra is now ready to use constraints everywhere, adapt
the venv environment to use the default install command instead of a
specific non-constrainted install command.
With this change, now all tox environments use constraints.
Change-Id: Ibb73b4a27b5b0462a9e9f2dd80e437bcc8c7f8f4
(cherry picked from commit af13871fc8696b06c7afe66443e60192edeb70c0)
|
|\ |
|
| |
| |
| |
| |
| |
| |
| | |
This is to add some missing %s in print message
Change-Id: Ifd4e59265bd976b817191a41e7854613f71539dd
(cherry picked from commit 987decc56ca5cdb6400832b3ec46d293408ec97d)
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The functional testenv doesn't work with python 3.x on our codebase.
If someone is on a platform that defaults to python => python3,
functional tests will fail for them.
Closes-Bug: #1632521
Change-Id: I7bf6653f55c10d0a4f75054e519edf7da19c5c09
(cherry picked from commit 32e533d59abcd2ec27eebf174b492a75a85e7554)
|
|/
|
|
|
|
|
| |
For more information about this automatic import see:
https://wiki.openstack.org/wiki/Translations/Infrastructure
Change-Id: Idfb8b46ea7489fcd13ac6af9cd8202c5b66e352a
|
|\
| |
| |
| | |
stable/mitaka
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Instance extras are stored as serialized objects in the database and
because of this it is possible to get a version back that is older
than what the client requested. This is in itself not a problem, but
the way we do things right now in conductor we end up trying to
backport to a newer version, which raises InvalidTargetVersion.
This change adds a check to make sure we skip backporting if the
requested version is newer than the actual db version as long as the
major version is the same.
Change-Id: I34ac0abd016b72d585f83ae2ce34790751082180
Closes-Bug: #1596119
(cherry picked from commit 1e3e7309997f90fbd0291c05cc859dd9ac0ef161)
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
DevicePathInUse might be raised in attach action,
we didn't catch it so a 500 error might be returned
to end user.
NOTE: mitaka also includes the legacy_v2 API so this needs to
be patched there to.
Change-Id: Ic9f0979b5adef28bb47756e7fc2ce5a3d6493298
Closes-Bug: 1621452
(cherry picked from commit 6051499a856659290c381e1a80328e48fe8a2199)
(cherry picked from commit 1ef4b725f1df54bc45f6d50a02d9aa65d3bff338)
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
As the following part of API-WG guidline[1],
If a request contains a reference to a nonexistent resource in the
body (not URI), the code should be 400 Bad Request. Do not use 404
NotFound because :rfc:`7231#section-6.5.4` (section 6.5.4) mentions
the origin server did not find a current representation for the
target resource for 404 and representation for the target resource
means a URI
Nova should return a BadRequest response(400) in this case, because
new_volume_id is specified in a request body. old_volume_id is not
necessary to be changed because the value is specified with URI.
So it is valid to return NotFound response if that is not existent.
[1]: https://github.com/openstack/api-wg/blob/master/guidelines/http.rst#failure-code-clarifications
Close-Bug: #1629110
Change-Id: Ib781b116f5af713d64b5880858cc4f81c3da3977
(cherry picked from commit edd86d9dac1ea75bc580a7964e7d699ee9644b19)
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
When doing Live migration with shared storage, it happens erratically,
that the check for the shared storage test_file fails. Because the shared
volume is under heavy IO (many instances on many compute nodes) the client
does not immediately sees the new content of the folder. This delay
could take up to 30s.
This can be fixed if the client is forced to refresh the directories
content, which can be achieved by 'touch' on the directory. Doing so,
the test_file is visibile instantly, within ms.
The patch adds a 'touch' on instances_path in check_shared_storage_test_file,
before checking the existence of the file.
Conflicts:
nova/tests/unit/virt/libvirt/test_driver.py
NOTE(lyarwood): Conflict caused by the signature of
_check_shared_storage_test_file changing as part of I6cca257
Change-Id: I16be39142278517f43e6eca3441a56cbc9561113
Closes-Bug: #1617299
(cherry picked from commit 1af73d1fb3169c5b3cce77d94316922496bbaf9a)
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Due to lack of an error handling, delete-volume API returns HTTP500
error when deleting an attached volume.
This patch adds the error handling.
The corresponding Tempest test is Idb6267be770bcf2541595babebf269cdc71c2b8d
Closes-Bug: #1630783
Change-Id: Ia07556b2dc18678baa4c8fbd65820d8047362ef9
(cherry picked from commit 2afc4e466958b19a4cbb9147abb69f54a06bd507)
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When validating a PF in the method 'get_function_by_ifname'
the number of VFs are read from a file,
the path to that file was missing a slash ('/').
Change-Id: I7bf4bb96f1f769bff247f5af2c81dd96b08e2f04
Closes-Bug: #1625220
(cherry picked from commit 859de9c9971a3dd13f245d2245686fb3d19a832d)
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The should_migrate_data() method used to gate PCIDevice online migrations
has, unfortunately, been incorrect since day one. It checks for the
nova-api service, but should have been checking for nova-osapi_compute.
This fixes that and adds a test.
Change-Id: I69faa52fc126db6e99827bcb7dcf0841d0e15e74
Closes-Bug: #1630732
(cherry picked from commit fb17be18cd0001f58ff5aae883b61c02a9342f88)
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
When new code is installed with a newer service version, the version in
the DB should get updated.
The fix here is to:
1) eliminate the special case for 'version' in save()
2) cause version to be saved on startup
NOTE(lyarwood): Single conflict caused by the use of Mock 1.3.0 on
stable/mitaka and as a result the lack of assert_called_once().
Conflicts:
nova/tests/unit/test_service.py
Change-Id: I96fa9dabfb9b7a5f1703baf80534d8b104dab4e6
Closes-Bug: 1579839
(cherry picked from commit 854c39e26d94f006f539ea993ffaafa4892b100c)
|
|\ \ \
| | | |
| | | |
| | | | |
into stable/mitaka
|
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This is something I expect has been very broken for a long time. We
have rows in tables such as instance_extra, instance_faults, etc that
pertain to a single instance, and thus have a foreign key on their
instance_uuid column that points to the instance. If any of those
records exist, an instance can not be archived out of the main
instances table.
The archive routine currently "handles" this by skipping over said
instances, and eventually iterating over all the tables to pull out
any records that point to that instance, thus freeing up the instance
itself for archival. The problem is, this only happens if those extra
records are actually marked as deleted themselves. If we fail during
a cleanup routine and leave some of them not marked as deleted, but
where the instance they reference *is* marked as deleted, we will
never archive them.
This patch adds another phase of the archival process for any table
that has an "instance_uuid" column, which attempts to archive records
that point to these deleted instances. With this, using a very large
real world sample database, I was able to archive my way down to
zero deleted, un-archivable instances (from north of 100k).
Conflicts:
nova/db/sqlalchemy/api.py (indentation change)
Closes-Bug: #1622545
Change-Id: I77255c77780f0c2b99d59a9c20adecc85335bb18
(cherry picked from commit ceaf853894352b6d0ae12efe85ba5eb4e651e58a)
|
|\ \ \
| | | |
| | | |
| | | | |
migration" into stable/mitaka
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
On env with NUMA topology and enabled cpu pinning we have one problem.
If instance changes numa node (or even pinned cpus in numa node)
during cold migration from one host to another confirming resize
failed with "Cannot pin/unpin cpus from the following pinned set".
It happening because confirm_resize() tries to clean up source
host using numa topology from destination host.
Closes-Bug: #1585214
Change-Id: I3b87be3f25fc0bce4efd9804fa562a6f66355464
(cherry picked from commit d7b8d997f0a7d40055c544470533e8a11855ff8f)
|
|\ \ \ \ |
|
| | |/ /
| |/| |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Calling super method in cells_api.py causes duplicated method call in
nova-api and nova-cell. I found the problem in shelve and unshelve,
so fix about them. (Nova cell v1 may have similar problems)
Change-Id: I8030b6ffc1710bca733e38a9a6fb0d7de5f24268
Closes-bug: #1588657
(cherry picked from commit 32be8108366bf47f0066deb53a5330379f6fd10c)
|
|\ \ \ \
| | | | |
| | | | |
| | | | | |
stable/mitaka
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
This patch enables block live migration with read-only config drive.
Basically it copies config drive to destination host prior to migration
start, so that QEMU will not try to write to read-only device and
therefore it will not raise an exception.
Co-Authored-By: Bartosz Fic <bartosz.fic@intel.com>
Co-Authored-By: Michael Still <mikal@stillhq.com>
Change-Id: I9ddaef658e3d9a77e4982275d7df9e56b0a5459f
Closes-Bug: #1246201
(cherry picked from commit bc4b9980fa74e15e98aed5633c61480c751767b5)
|
|\ \ \ \ \ |
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
librbd is a Python binding around a C library, which is not aware of
eventlet - all the calls to the functions from this library will block
the whole nova-compute process for duration of a call. To make sure
nova-compute remains responsive we need to wrap all the calls in
tpool.Proxy() eventlet helper, that switches the execution context
back to the event loop, while the call is executed in a native OS
thread from a pool.
Prefer tpool.Proxy() to tpool.execute() here as the former allows for
wrapping objects and automatically executes all the method calls in
native OS threads, while the latter needs to be applied to each
method call in the code repeatedly.
Existing calls are modified for the sake of consistency.
Closes-Bug: #1607461
Change-Id: I743ab372332eb656258a476ae91f5e8fd2cbdc99
(cherry picked from commit 3405a28688eacbca23cf5cac0a611d33fb1a1f2c)
|
|\ \ \ \ \ |
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
IOVisor vif driver fails with some network names
because of schema usage in ifc_ctl, so this changeset
removes the network name along to the ifc_ctl
Change-Id: If91591acd95cd965ed2b8738136f2bd3d7bc4b0b
Closes-Bug: #1527370
(cherry picked from commit 5dc7bcee56ca4d7cad9dfe16f879cabd23192521)
|
|\ \ \ \ \ \ |
|
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | |
| | | | | | | |
The image transfer is unnecessary complicated and buggy. When
transferring streamOptimized images we have to update the progress of
the NFC lease to prevent timeouts.
This patch replaces the complex usage of blocking queues and threads with
a simple read+write loop. It has the same performance and the code is
much cleaner. The NFC lease is updated with the loopingcall utility.
Closes-Bug: #1546454
Closes-Bug: #1278690
Related-Bug: #1495429
Change-Id: I96e8e0682bcc642a2a5c4b7d2851812bef60d2ff
(cherry picked from commit 2df83abaa0a5c828421fc38602cc1e5145b46ff4)
|
|\ \ \ \ \ \ \ |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
The nova.pci.manager.PciDevTracker.claim_instance() accepted an Instance
object and called nova.objects.InstancePCIRequests.get_by_instance() to
retrieve the PCI requests for the instance. This caused a DB lookup of
the PCI requests for that instance, even though in all situations other
than for migration/resize, the instance's PCI requests were already
retrieved by the resource tracker.
This change removes that additional DB lookup during claim_instance() by
changing the instance parameter to instead be an InstancePCIRequests
object and an InstanceNUMATopology object.
Also in this patch is a change to nova.objects.PciDevice.claim() that
changes the single parameter to an instance UUID instead of an Instance
object, since nothing other than the instance's UUID was used in the
method.
Closes-Bug: #1582278
Related-Bug: #1368201
Change-Id: I9ab10c3035628f083233114b47b43a9b9ecdd166
(cherry picked from commit 1f259e2a9423a4777f79ca561d5e6a74747a5019)
|
|\ \ \ \ \ \ \ \
| |/ / / / / / / |
|
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | |
| | | | | | | | |
Removes the calls to InstancePCIRequests.get_XXX() from within the
claims.Claim and claims.MoveClaim constructors and instead has the
resource tracker construct the PCI requests and pass them into the
constructor.
This allows us to remove the needlessly duplicative _test_pci() method
in claims.MoveClaim and will allow the next patch in the series to
remove the call in nova.pci.manager.PciDevTracker.claim_instance() that
re-fetches PCI requests for the supplied instance.
Related-Bug: #1368201
Related-Bug: #1582278
Change-Id: Ib2cc7c985839fbf88b5e6e437c4b395ab484b1b6
(cherry picked from commit 74fbff88639891269f6a0752e70b78340cf87e9a)
|
|\ \ \ \ \ \ \ \
| |/ / / / / / /
| | | | | | | /
| |_|_|_|_|_|/
|/| | | | | | |
|