In a future change, the use of 'hw:cpu_policy' will require a host to
report PCPU inventory. Rather than modify the fake driver used in these
tests to report such inventory, just use a different extra spec,
'hw:numa_nodes'. This has the added bonus of being supported by both the
libvirt and Hyper-V virt drivers, unlike 'hw:cpu_policy' and
'hw:mem_page_size', which are only supported by the libvirt virt driver.
Change-Id: Id203dc07f08557b1b094ec72e1df3493ec9524b1
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This microversion implements below API cleanups:
1. 400 for unknown param for query param and for request body.
2. Making server representation always consistent among all APIs
returning the complete server representation.
3. Change the default return value of ``swap`` field from the empty string
to 0 (integer) in flavor APIs.
4. Return ``servers`` field always in the response of GET
hypervisors API even there are no servers on hypervisor
Details: https://specs.openstack.org/openstack/nova-specs/specs/train/approved/api-consistency-cleanup.html
Partial-Implements: blueprint api-consistency-cleanup
Change-Id: I9d257a003d315b84b937dcef91f3cb41f3e24b53
Add a new microversion that adds two new params to create
server named 'host' and 'hypervisor_hostname'.
Part of Blueprint: add-host-and-hypervisor-hostname-flag-to-create-server
Change-Id: I3afea20edaf738da253ede44b4a07414ededafd6
This patch adds a new parameter ``locked_reason`` to
``POST /servers/{server_id}/action`` request where the
action is lock. It enables the user to specify a reason when locking
a server.
The locked_reason will be exposed through ``GET servers/{server_id}``,
``GET /servers/detail``, ``POST /servers/{server_id}/action`` where
the action is rebuild and ``PUT servers/{server_id}`` requests' responses.
The InstanceActionNotification will emit the locked_reason
along with the other instance details. This patch hence changes the
payload object to include the "locked_reason" field.
Note that "locked" will be allowed as a valid filtering/sorting parameter
for ``GET /servers/detail`` and ``GET /servers`` from this new microversion.
Implements blueprint add-locked-reason
Change-Id: I46edd595e7417c584106487123774a73c6dbe65e
The "availability_zone" parameter for server create in the
API reference and the availabilty zone user docs both say
that users should not use the default availability zone (nova)
yet our server create API samples use "nova" which is...bad.
This change fixes the API samples and related tests to use
a fake "us-west" availability zone. For any samples that were
requesting an AZ when creating a server, those are changed from
requesting "nova" to requesting "us-west" and a new
AvailabilityZoneFixture is added to stub out the code used to
validate the requested AZ and what is shown in server detail
responses.
Some unused samples are removed from the os-availability-zone
directory and the API reference and AZ user docs are updated for
formatting and linking to other docs for reference.
Change-Id: I3161157f15f05a3ffaaf1b48e7beb6b3e59c5513
Closes-Bug: #1817963
The down-cell microversion 2.69 just recently merged and it returns
links in the response for GET /servers/detail and GET /servers but not
for GET /servers/{server_id} which was an oversight because that API
returns links normally.
We should include the links key in the 'nova show' case as well and this
patch does exactly that.
Typically this would require a microversion change but given the code
merged recently and is not yet released we are just fixing this
oversight through this patch without a microversion bump.
Closes-Bug: #1818131
Change-Id: I2ce03df994f59c37b5ce3102c4e7165d17701798
The server-groups UUID add to response of 'GET /servers/{id}',
'PUT /servers/{server_id}" and rebuild API
'POST /servers/{server_id}/action'.
Change-Id: I4a2a584df56ece7beb8b12c0ce9b0e6b30237120
Implements: blueprint show-server-group
Co-authored-by: Gerry Kopec <Gerry.Kopec@windriver.com>
Signed-off-by: Yongli He <yongli.he@intel.com>
This patch introduces a new API microversion which will be
used to alter the responses of ``GET /servers``, ``GET /servers/detail``,
``GET /servers/{server_id}`` and ``GET /os-services`` when a cell is
down to return minimal constructs with missing keys.
Implements blueprint handling-down-cell
Change-Id: Id9f12532897912b39093f63e9286540d9029edeb
These samples were unused and incorrect. We don't actually need the
sample, since v2.66 is about listing servers and filtering with
'changes-before', so responses to show a server are unnecessary. Simply
remove the sample.
Closes-Bug: #1800936
Change-Id: I12cf3ffd75098677cf5de1a5f40d783bb661fd74
Add a new microversion 2.67 to support specify ``volume_type``
when boot instances.
Part of bp boot-instance-specific-storage-backend
Change-Id: I13102243f7ce36a5d44c1790f3a633703373ebf7
This adds the changes-before filter to the servers,
os-instance-actions and os-migrations APIs for
filtering resources which were last updated before
or equal to the given time. The changes-before filter,
like the changes-since filter, will return deleted
server resources.
Part of bp support-to-query-nova-resources-filter-by-changes-before
Change-Id: If91c179e3823c8b0da744a9363906b0f7b05c326
Nova does not support a "hw:cpu_model" flavor extra
spec. This was added as part of microversion 2.47 from
WindRiver where their Titanium Cloud product does support
a hw:cpu_model flavor extra spec. We shouldn't include
this in upstream documentation lest someone be confused
and think upstream nova supports it.
Change-Id: Ie646130731fde648ab84a423024ab59f55f5daab
This change adds support for the trusted_image_certificates parameter,
which is used to define a list of trusted certificate IDs that can be
used during image signature verification and certificate validation. The
parameter may contain a list of strings, each string representing the ID
of a trusted certificate. The list is restricted to a maximum of 50 IDs.
The list of certificate IDs will be stored in the trusted_certs field of
the instance InstanceExtra and will be used to verify the validity of
the signing certificate of a signed instance image.
The trusted_image_certificates request parameter can be passed to
the server create and rebuild APIs (if allowed by policy):
* POST /servers
* POST /servers/{server_id}/action (rebuild)
The following policy rules were added to restrict the usage of the
``trusted_image_certificates`` request parameter in the server create
and rebuild APIs:
* os_compute_api:servers:create:trusted_certs
* os_compute_api:servers:rebuild:trusted_certs
The trusted_image_certificates parameter will be in the response
body of the following APIs (not restricted by policy):
* GET /servers/detail
* GET /servers/{server_id}
* PUT /servers/{server_id}
* POST /servers/{server_id}/action (rebuild)
APIImpact
Implements blueprint: nova-validate-certificates
Change-Id: Iedd3fea0e86648fae364f075915555dcb2c4f199
Change Ia89eeb6725459c35369e8f790f68ad9180bd3aba added new
microversion 2.57. This microversion removed field 'personality'
from create server request. By default Nova functional api tests use
samples from '/servers' directory to create a server. But now such
requests got 400 Bad Request because of additional 'personality' field.
We must handle this case if we are testing microversions >= 2.57.
This patch will add sample for microversion 2.57+
Change-Id: I8c4e8ffc00ab53f07e7364767f4480abebd2e357
This microversion makes the following changes:
1. Deprecates personality files from POST /servers and the rebuild
server action APIs.
2. Adds the ability to pass new user_data to the rebuild server
action API.
3. Personality / file injection related limits and quota resources
are removed from the limits, os-quota-sets and os-quota-class-sets
APIs.
Implements blueprint deprecate-file-injection
Change-Id: Ia89eeb6725459c35369e8f790f68ad9180bd3aba
This patch adds `key_name` param to instance rebuild
API. Then the user could reset the instance keypair
when rebuilding. If set key_name to None, the API
will unset the keypair of the instance.
APIImpact
Implements blueprint: rebuild-keypair-reset
Change-Id: I23886a89c25f811cfbe7e2500ce7ff52f9162966
This is the 4th patch of the series,
this patch adds a new microversion
in API to support adding tags when
booting instances.
Implemetes: blueprint support-tag-instance-when-boot
Change-Id: Ifcaaf285c8f98a1d0e8bbbc87b2f57fbce057346
Add a new microversion to change the flavor field in the server
details to display a subset of the flavor information instead of
just a link to the original flavor.
This is more reliable since it shows the actual instance size, while
the flavor may have been deleted/recreated in the meantime or the
flavor extra-specs may have been modified.
Implements: blueprint instance-flavor-api
Change-Id: If646149efb7eec8c90bf7d07c39ff4c495349941
* Example for the rebuild action
The functional test is modified and
the example is replaced with v2.26 examples.
* Example for the rescue action
The example in API reference is replaced with
the example with 'rescue_imgae_ref'.
Parameters for the rebuild action and the rescue action
are also fixed.
The patch completes the parameter verification and
the example verification of servers-actions.inc.
Change-Id: Iaf8808b13d1fdfead50da4cd447b3893578f76dd
Implements: blueprint api-ref-in-rst-pike
Add a functional test for 'removeFloatingIp' action.
Rename the example file for 'addFloatingIp' action
to clarify that it is a request body example.
Change-Id: Ic865318fa640eb17d1317fb3d5f064788ebf44e7
This changes the response for the createImage and createBackup
server action APIs to no longer return a Location header and instead
returns a json dict body with the snapshot image ID. This is done
in a new microversion.
Implements blueprint remove-create-image-location-header-response
Closes-Bug: #1679285
Change-Id: Idc899ee76b8265b1c9e0871b6c7c277424cdd442
In the context of device tagging, bugs have caused the tag attribute
to disappear starting with version 2.33 for block_devices and starting
with version 2.37 for network interfaces. In other words, block
devices could only be tagged in 2.32 and network interfaces between
2.32 and 2.36 inclusively.
This patch documents this behaviour in api-ref and introduces
microversion 2.42, which re-adds the tag in all the right places.
Change-Id: Ia0869dc6f7f5bd347ccbd0930d1d668d37695a22
Closes-bug: 1658571
Implements: blueprint fix-tag-attribute-disappearing
This patch allows the user to specify a tag for a virtual network
interface and/or block device mapping when booting an instance.
Implements: blueprint bp/virt-device-role-tagging
Change-Id: I89247200f4cf1f644daf476727b4a6acb22b0cf6
JSON standard does not allow trailing comma.
Because of this comma my local tox -e docs failed.
It's strange that it works in gate and check jobs.
Change-Id: I58bf48c248b1722a730667ec7c5e792e6929d2df
OS-SCH-HNT:scheduler_hint is actually a top level attribute, because
of historical accident in the yesteryear of v1 (and thus v2 and
v2.1). One day we should fix this.
Change-Id: I34c105628e274dcc2f8101514f95b9032b2b9f71
As extensions options has been deprecated, API sample tests
should run against all extension enable.
This commit enables all extensions for all the remaining sample tests
and remove extensions specific tests and sample files.
Also remove extension setting specific logic from base test class
along with TODOs.
Partially implements blueprint api-sample-tests-with-all-extensions
Change-Id: I66b593760789e5b3b92137a672246f8d91e44cba
As extensions options has been deprecated, API sample tests
should run against all extension enable.
This commit enables all extensions for remaining server API tests
and remove its specific extensions tests and sample files.
Partially implements blueprint api-sample-tests-with-all-extensions
Change-Id: I3cf5762477b8b77bec4e6cb8f7119c62df7c706a
As extensions options has been deprecated, API sample tests
should run against all extension enable.
This commit enables all extensions for server API tests and remove its specific
extensions tests and sample files.
Partially implements blueprint api-sample-tests-with-all-extensions
Change-Id: I7e12a4491738c2908c1dd134c05f38e0db497ee7
As extensions options has been deprecated, API sample tests
should run against all extension enable.
This commit enables all extensions for server actions tests and
remove its specific extensions tests and sample files.
Partially implements blueprint api-sample-tests-with-all-extensions
Change-Id: I88a293958c4c8a1b2c50a837c23bcdda8010e075
Change I89b18709e0cfbbcbf9be96a91a13a1356cdf85b0 added new
microversion 2.37. This microversion added required field 'networks'
into create server request. By default Nova functional api tests use
samples from '/servers' directory to create a server. But now such
requests got 400 Bad Request because of missed 'networks' field.
We must handle this case if we are testing microversions >= 2.37.
This patch will add sample for microversion 2.37+
Closes-Bug: 1613998
Change-Id: I40cac263c97a4a871072d0efe5ebff295c2d917e
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
When we put validation into the project_id in urls we had to expand
the default set of allowed values to include 'openstack' and
'fake'. This cleans up all the instances of 'openstack' in the
functional tests, and api samples, and instead uses a constant string
which looks like a real project_id.
We need a stable project_id and not a sentinel otherwise the samples
will be arbitrarily changes on every update.
Change-Id: I1099fd43d2374abd1658b0917765d5375c4b8d1d
I74b1a340c5ab98fdea2186e87dd13f42ce7c7661 introduced a malformed api
sample and the tox -e docs fails since then. This patch fixes the
sample file.
Closes-bug: #1539071
Change-Id: Ica76db8928fc98db1a09074fdc46439c920e93d8
As extensions options has been deprecated, API sample tests
should run against all extension enable.
This commit enables all extensions for server PUT API tests and
remove its specific extensions tests and sample files.
Adding a hack for other tests which are still running with specific
extensions. That is needed to avoid all tests updates in single commit.
Partially implements blueprint api-sample-tests-with-all-extensions
Change-Id: I9c44da3d9df39c1db0948194502be52f4f15acf2
This patches adds changes to the Nova REST API to allow
users to create a server with a description, rebuild
a server with a description, update the description,
and get the description in the server details.
Note: Future commits will be done to support the server
description in python-novaclient and openstack-client.
APIImpact
Implements blueprint: user-settable-server-description
Change-Id: I74b1a340c5ab98fdea2186e87dd13f42ce7c7661
Change I9b649aafba011d537e3fe4eebef7a678ff6733e4 has added a
compute API to trigger crash dump in instance. This patch adds
the REST API to nova. It enables users to trigger crash dump in
an instance through REST API.
Change-Id: I6ed777ff637254b4b79417008f9055dd19fc7405
Implements: blueprint instance-crash-dump
Co-Authored-By: Hironori Shiina <shiina.hironori@jp.fujitsu.com>
Co-Authored-By: Tang Chen <tangchen@cn.fujitsu.com>
When a compute service fails, the power states of the hosted VMs are not
updated. A normal user querying his or her VMs does not get any indication
about the failure. Also there is no indication about maintenance.
This change will expose new attribute host_status to user querying his
VMs. Attribute is only seen if policy allows.
DocImpact: This adds API microversion
Implements blueprint get-valid-server-state
APIImpact
Change-Id: I5abea08bdc27624a7f23a7db8964f8c2a7b0eaa7
While the API allows for strings which happen to end in an ID for
flavorRef/imageRef, the common path is really just the ID itself, and
we should have the samples do this. The use of full urls in our
samples makes it seem like this is more meaningful than it really is,
and that you could pass a url to a remote system, for instance, which
won't work at all.
Change-Id: I669619b627f954232712d54498b3744353d25451
There are many place where server POST request has been used to tests
other API behavior. There was issue of having duplicate
server POST req and resp sample files in each API sample directory.
we added logic to share those sample files from common place
('servers' sample dir)
As microversion tests also need to share such logic, This commit
extends that logic to work for microversion tests also.
Partially implements blueprint test-collapse-v2-and-v21
Change-Id: I3448e1934585c2dabed6c45216ea0513db258b27
This patch move the all v2.1 api sample tests under
'functional/api_sample_tests'. Also move sample files under
'doc/api-samples'.
Co-Authored-By: Ed Leafe <ed@leafe.com>
Co-Authored-By: Alex Xu <hejie.xu@intel.com>
Partial-Bug: #1462901
Change-Id: I2b924f2ad7687a23a018a9b658e8acd9e04d7963
This patch moves legacy v2 api sample tests under
'nova/tests/functional/api_sample_tests/legacy_v2'
Also create new API sample test base class for matching new
path in 'nova/tests/functional/api_sample_tests/legacy_v2/ -
api_samples_test_base.py'
Change-Id: Ib455d4fc9d1f9a2a7e9a744f7e63086b3cf49c5e
Partial-Bug: #1462901