microversion 2.98 changed the GET and GET list details
API response to expand the image field
- https://review.opendev.org/c/openstack/nova/+/939649
but when we change the views/servers.py then update server
and rebuild server API response also gets updated.
- https://review.opendev.org/c/openstack/nova/+/939649/12/nova/api/openstack/compute/views/servers.py#595
The microversion change actually changed the response for
the update and rebuild API but did not update the documentation
about this change. Neither added test for rebuild and update
which verify the response change.
Since microversion 2.75, we have made all these 4 APIs response
consistent.
Implements: blueprint image-properties-in-server-show
Change-Id: Ifc2edc59c601391a31fd8953c742969e5b368767
microversion 2.96 changed the GET and GET list details
APi response to add a new field 'pinned_availability_zone'
- https://review.opendev.org/c/openstack/nova/+/904568
but when we change the views/servers.py then update server
and rebuild server API response also gets updated.
- https://review.opendev.org/c/openstack/nova/+/904568/17/nova/api/openstack/compute/views/servers.py#309
The microversion change actually changed the response for
the update and rebuild API but did not update the documentation
about this change. Neither added test for rebuild and update
which verify the response change.
Since microversion 2.75, we have made all these 4 APIs response
consistent.
Change-Id: I31fbb3c5e689302713bfb7a254c5d0cc12de2dc4
Nova currently lacks a straightforward way to expose scheduler hints
associated with a server. This change extends existing Nova's
API to allow users to retrieve this information when it is available.
It adds a new API microversion to support returning the associated
scheduler_hints in ``GET /servers/{server_id}``, `GET /servers/detail``,
``PUT /servers/{server_id}`` and ``POST /server/{server_id}/action``
(rebuild) responses.
Implements: blueprint show-scheduler-hints-in-server-details
Change-Id: If0070cfbc218e0515bf3b58fc8c5067ae22c7072
This change adds a new api microversion to add support for
including image properties in ``server show`` and ``server list
--long`` responses as well as in response for ``server rebuild``
instance action.
Implements: blueprint image-properties-in-server-show
Change-Id: Ic135389954e43e6478288c0cdcffd780915cdb40
As of now, the server show and server list --long output
shows the availability zone, that is, the AZ to which the
host of the instance belongs. There is no way to tell from
this information if the instance create request included an
AZ or not.
This change adds a new api microversion to add support for
including availability zone requested during instance create
in server show and server list --long responses.
Change-Id: If4cf09c1006a3f56d243b9c00712bb24d2a796d3
Extend microversion 2.90 to allow FQDNs in the hostname parameter.
Multi-create with --hostname continues to be refused, returning error
400 to the user. This simplifies the code by not needing to handle any
sort of suffix or prefix mangling of the FQDN to handle multiple
instances. No other changes are made - not Neutron integration,
metadata API changes (the FQDN will appear as-is in places where the
hostname currently appears), etc.
Change-Id: I47e397dc6da8263762479cc8ae4f8777a6d9d811
Implements: bp/fqdn-in-hostname
Add microversion 2.90, which allows allows users to configure the
hostname that will be exposed via the nova metadata service when
creating their instance.
Change-Id: I95047c1689ac14fa73eba48e19dc438988b78aad
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Enable the policy fixture by default, which should yield more realistic
functional tests. We need to update some tests to use admin APIs where
policy dictates they are necessary. Note that we're currently testing
the legacy policy - not the updated, scoped policy - since the legacy
policy is the default one currently.
Note that we also need to modify the 'SingleCellSimple' fixture in this
change to use the same project ID as the 'OSAPIFixture'.
Change-Id: Ia3dea78f16cb3c7081714c4db36e20d5ee76ed7d
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
We're going to want to use this for realistic API samples. The samples
we're using here were taken from a DevStack deployment based on pre-RC1
Train code so they should be fairly reflective of what you'd see in a
real deployment.
Note that this effectively undoes a lot of the changes first introduced
in Ibbee7fd11c1aa254e399d302adbae69126e98262, particularly around the
responses for instances in a down cell, where we previously changed
things so a 'security_groups' field was present in the response. This
is okay since we're not creating interfaces and therefore don't expect
to have security groups present.
Change-Id: I3c94b61fc323fefbd1c8790c4a2f60cada29e86f
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This has been tying us to nova-network. This should be a one line change
but it has a large knock-on effect due to lots of samples using it. We
just need to suck it up and deal with it, unfortunately.
Change-Id: I09c88e0fdf3635683c56901637fc3c0a9084d482
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Three tests require modification to specifically request an API that our
NeutronFixture provides. The rest just work (TM).
Change-Id: I423b7ab5c98ea9d559caefec0b49271e28a140fa
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
For our immediate purposes, this should always return something so we
modify the mock to do just that. That requires some modifications to
existing tests but is otherwise pretty simple. A future change will
address the TODO contained within to properly mock the neutron API.
Change-Id: Ibbee7fd11c1aa254e399d302adbae69126e98262
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
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