This adds the 2.37 microversion to the REST API for automatically
allocating a network, i.e. get me a network.
The majority of the changes to the REST API concern request
validation. 'networks' is now required in the server POST body
after this microversion. The 'auto' or 'none' special network
uuid values are used, but if specified, can not be specified
with any other requested network values.
The other special case that is checked is when the minimum
compute service version is not new enough to support this change,
i.e. a Mitaka compute will not have the network API code that
knows how to deal with the special auto/none network IDs. Because
the REST API is checking the service version, the service caches
the service version after the first check. Once all computes are
updated to Newton then a restart of the nova-api service(s) will
be required to flush the cache. A release note is provided for
this situation.
The api-ref docs are also updated for this microversion including
an example API sample request.
The matching Tempest change to test this is here:
I89b18709e0cfbbcbf9be96a91a13a1356cdf85b0
The matching python-novaclient change is here:
I6636ddcd3be7bf393d2d69cc6c1ba5c7d65ff674
Implements blueprint get-me-a-network
Change-Id: I89b18709e0cfbbcbf9be96a91a13a1356cdf85b0
Currently imageRef in server create, rebuild and rescue
operation can be accepted as random url which contains image
UUID and fetch the UUID from that.
As /images proxy APIs are deprecated, and ImageRef in
server creation etc are UUID only and valid against glance.
This patch makes imageRef handling as UUID only and
return 400 if non UUID are requested.
NOTE- Previously nova use to allow the empty string which was
ok in case of boot from volume.
We will keep the same behavior of allowing empty string in case of
boot from volume only and 400 in all other case.
Closes-Bug: #1607229
Change-Id: I49f4da62c1b5b3fd8c5f67039ae113f76722b26c
Make aggregate.create() and destroy() use the API rather than cell database.
Also block aggregate creation until main database empty. This makes
Aggregate.create() fail until the main database has had all of its aggreagtes
migrated. Since we want to avoid any overlap or clashes in integer ids we
need to enforce this.
Note that this includes a change to a notification sample, which encodes
the function and module of a sample exception (which happens to be during
an aggregate operation). Since the notifications are encoding internal
function names, which can and will change over time, this is an expected
change.
blueprint cells-aggregate-api-db
Co-Authored-By: Dan Smith <dansmith@redhat.com>
Change-Id: Ida70e3c05f93d6044ddef4fcbc1af999ac1b1944
As discussed at the newton midcycle and in the dev
mailing list:
http://lists.openstack.org/pipermail/openstack-dev/2016-July/099860.html
We should add a Tempest test for any microversion that
changes the response schema so we have coverage in Tempest
and also so we don't have to fill large gaps in coverage
in Tempest when adding other unrelated tests.
Change-Id: Ie7cfe7ee857caf630d4380cf673ae208842fbc00
The nova team would like to stop dynamically loading python modules to
implement vendordata in the metadata service and configdrive. Instead, we
propose to provide a module which can fetch dynamic vendordata from an
external REST server.
Things still to do:
- Documentation
- Support HTTP caching headers
- Cache vendordata responses
- Write vendordata documentation
- Unit test coverage of requests exceptions
- Unit test coverage of attempted vd overwrites
Blueprint: vendordata-reboot
Change-Id: I19c61a637a640a00f90c6bc8e82c38e7d4084493
This is the final patch in this series. This patch bumps the
microversion to 2.36, all the proxy APIs were deprecated.
Partially implements blueprint deprecate-api-proxies
Change-Id: I1a8a44530be29292561e90d6f7bd7ed512a88ee3
Added details for:
1. Server volumes ops
2. Server block device mapping
3. Server neutron
4. Server pause
5. Server suspend
blueprint feature-classification
Change-Id: I6fe7ce561e47fc09939a7e4ddc25e19f07adef2d
Until now the notification devref only contained a link to the sample file
and that link did only exist after the sample file was merged.
This is suboptimal as the locally generated doc might be incomplete.
This patch changes the doc to contain the content of the sample file.
Change-Id: I4343a2feb13de8b614e8d42d5f1db14102ab492e
Lets focus on server operations that must be tested for each of the Nova
virt drivers, such as create a server and snapshot a server.
This initial list is not meant to be complete, rather its some of the
key headline server actions that we should look at first. This list
includes all actions of the above type that are included in DefCore.
Follow changes will look at correctly populating the data for each of
the features that have been included.
blueprint feature-classification
Change-Id: Ibe31acbae38ea9f2b06aedded66aa486ed1f5cb8
Add in feature_classification.ini that makes use of new sphinx
extension feature_matrix. While it is loosely based on the
support_matrix extension, longer term this extension will live
outside the Nova tree. As such, this has been created as a new
separate sphinx plugin.
The matrix has links to wiki page for the CI in the header of the
summary matrix. This is called a target.
Also, there are links to admin docs, API docs, and tempest test uuids
added into the feature details. An option is added to ensure these are
always present in the prototype matrix.
A maturity status is added to be clear about the level of maturity
of each feature. When in maturity mode, this is added into the summary
table in place of the status. There is also some formating for the
different maturity levels.
blueprint feature-classification
Change-Id: Ib5895e8de901f1a282d0f5c0ecb811ff8b451497
The instance.restore.start and instance.restore.end notifications
are transformed to the versioned framework.
Change-Id: I4459ec05a7153af7a0f04adcccb9d99cb5f661e5
Implements: bp versioned-notification-transformation-newton
This service version indicates that the successful delete of a
BuildRequest during instance deletion will cause nova-conductor to stop
a build when it notices that the BuildRequest is gone. This simplifies
the delete code for dealing with pre-scheduled instances.
Change-Id: I961d002cccd3e01a26cb5174e0804db7fc1f836d
After this microversion Nova API allows to get several keypairs
with the help of new optional parameters 'limit' and 'marker'
which were added to GET /os-keypairs request.
Partial-Bug: #1599904
Implements blueprint: keypairs-pagination
Change-Id: Idd3757f5be90ec4af1bd1a7ca3f9c20319dbfd33
pre live-migration checks now are done in async way. This patch
updates rest api version to keep this tracked.
bp: async-live-migration-rest-check
Change-Id: I9fed3079d0f1b7de3ad1b3ecd309c93785fd11fe
The instance.resize.start and instance.resize.end notifications
are transformed to the versioned framework.
Implements: bp versioned-notification-transformation-newton
Change-Id: If5183eddb7d79712f360cde11c554e4798f86255
The nova-manage vm command is replaced with the nova list command
in python-novaclient, and has been for a long time.
As of microversion 2.3, the fields that are output from
nova-manage vm list are all covered in the REST API for showing server
details, which can also be used via the --fields option of the nova
list command. The nova list command also allows filtering by host.
This sets the timer for deprecation and then removal in Ocata.
Change-Id: Ibce8c3deb24a16019b721d3b91640ca342ae541b
Closes-Bug: #1494841
For backward compatibility, ComputeCapacityFilter treats extra spec
keys which contain no colons like 'x' the same as 'capabilities:x',
because hoststate doesn't contain attribute like x, this filter always
return False. So it causes conflict with
AggregateInstanceExtraSpecsFilter, and limits user to define extra spec
keys without colons.
This patch solves the conflict and keep it backward compatible.
This patch also joins two lines into one in method host_passes.
Change-Id: Ia9e7c882bcee131e106e67dc46ed9ce1224e4c67
Closes-Bug: #1582589
The instance.pause.start and instance.pause.end notifications
are transformed to the versioned framework.
Implements: bp versioned-notification-transformation-newton
Change-Id: I67979c1cd7cd221a2241846255bf2a884a9d60f5
Instance.shelve.start and instance.shelve.end notifications
are transformed to the new versioned framework.
Change-Id: Ibb52f4c9d8ec10810916a6ccb2bb494db7300d05
Implements: bp versioned-notification-transformation-newton
This is the final patch in the sequence.
The nova-manage quota_usage_refresh command will
sync a project or user's usage in the database
with the actual usage.
Implements blueprint: refresh-quotas-usage
Change-Id: Ic6da10b9c567ad5396b4a22b160e1abef8fa8f28
The instance.suspend.start and instance.suspend.end
notifications are transformed to the versioned notifications
framework.
Change-Id: I6a90019773c415db9d27c893eb64466ae101b7d7
Implements: blueprint versioned-notification-transformation-newton
Depends-On: #313654
The instance.power_on.start and instance.power_on.end notifications
are transformed to the versioned framework.
Change-Id: I4e4fd701a59064b89e38b50dcc01c9d8846a09b0
Implements: bp versioned-notification-transformation-newton