This patch adds pagination support and changes-since filter
for os-migrations API.
Users can now use 'limit' and 'marker' to perform paginate
query of running migrations list. Users can also filter the
results according to the migrations' updated time.
The ``GET /os-migrations`` and server migrations APIs will now
return a uuid value in addition to the migrations id in the response,
and the query parameter schema of the ``GET /os-migrations`` API no
longer allows additional properties.
Co-Authored-By: Yikun Jiang <yikunkero@gmail.com>
Implement: blueprint add-pagination-and-change-since-for-migration-list
Change-Id: I7e01f95d7173d9217f76e838b3ea71555151ef56
This patch adds pagination support and changes-since filter
for os-instance-actions API.
Users can now use 'limit' and 'marker' to perform paginate
query of instance action list. Users can also filter the
results according to the actions' updated time.
Co-Authored-By: Yikun Jiang <yikunkero@gmail.com>
Implement: blueprint pagination-add-changes-since-for-instance-action-list
Change-Id: I1a1b39803e8d0449f21d2ab5ef96d4060e638aa8
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
There is a wrong format 'ephemeral' in the description.
So remove it and valid formats ('ext2', 'ext3', 'ext4' and 'xfs')
are added.
The parameter is optional, so fix it as well.
Change-Id: Icc04cac3a287955ab1a98b7813e3c7ec8183b120
Closes-Bug: #1736502
This function enables users to specify a target host
when cold migrating a VM instance.
This patch modifies the migration API.
APIImpact
Add an optional parameter 'host' in cold migration action.
Change-Id: Iee356c4dd097c846b6ca8617ead6a061300c83f8
Implements: blueprint cold-migration-with-target-queens
In rebuild operation, users can unset the existing keypair
by setting 'key_name' to 'null' in a request body.
(The function has been added in
I23886a89c25f811cfbe7e2500ce7ff52f9162966).
But it is not described obviously in API reference.
So add an additional description in API reference.
Change-Id: I2d1b8eddd8555ad6896541b308895dc537686168
In "Delete Assisted Volume Snapshot",
there is an incorrect example in the description for
the 'delete_info' parameter.
So fix it.
Change-Id: I0b984bee06b0890d7705b9e47a5f975266b6a670
Closes-Bug: #1726254
The block_device_mapping_v2 parameter is a list of dicts, so
we need to fix the type in the api-ref description.
Change-Id: I099bd8adcfc57ae31010d68b5a5b46ffe68bac8d
This adds the new microversion to allow providing
a description when creating a flavor, returning a
flavor description when showing flavor details, and
updating the description on an existing flavor.
Implements blueprint flavor-description
Change-Id: Ib16b0de82f9f9492f5cacf646dc3165a0849d75e
People get confused that os:scheduler_hints is not part of the
'server' portion of the POST /servers request body, it's actually
a separate top-level entry. This change makes a note of that in
the parameter description.
Change-Id: Id176c185dedcda970d1cd730267e2c5861b5b9c0
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
block_device_mapping_v2.bus_type is missing from
POST /servers API reference. This patch add it.
Change-Id: I998cf6195d72c80649e9e0fd43be0cf37f8e2f48
Closes-Bug: #1713895
I noticed this while working on change
I49ffebcd129990f1835f404d98b51732a32171eb and I realized
the scheduler_hints in the legacy filter_properties
dict is a bit different than what's in the RequestSpec
object, namely that the request validation schema is
per-hint. Some require a single value, like 'group', and
some accept a list of values, like 'different_host'.
Given how nebulous scheduler hints are, we should probably
note these in the API reference for the parameter, especially
because scheduler hints should not be considered interoperable.
Change-Id: I74114fc56bee2bebf4a5f5d6823ec968cad9a8e9
As part of the docs migration from openstack-manuals to
nova in the pike release we missed the config-drive docs.
This change does the following:
1. Imports the config-drive doc into the user guide.
2. Fixes a broken link to the metadata service in the doc.
3. Removes a note about liberty being the current release.
4. Adds a link in the API reference parameters to actually
point at the document we have in tree now, which is
otherwise not very discoverable as the main index does
not link to this page (or the user index for that matter).
Partial-Bug: #1714017
Closes-Bug: #1720873
Change-Id: I1d54e1f5a1a94e9821efad99b7fa430bd8fece0a
This adds to the existing warning about forcing a host during
evacuate and mentions how you really really shouldn't be doing
that if the instance is managed by the ironic driver
since those are 1:M with host:node relationships, and since you
can't specify a node when forcing the evacuate, nova will randomly
pick a node from the list for the given host and assign resource
allocations to that node which may already be fully allocated.
Change-Id: I8ae34399d32b2762a67e897807ffa2298e796c4c
The project_id / tenant_id filter parameters when
listing servers is only applied when the all_tenants
filter is used.
Otherwise if an admin is listing servers and specifies
project_id but not all_tenants, they only get back
instances for the admin's project (in the request context).
Change-Id: I9e8fae8fb86604d7394d0dba4d7c75c3fc93033e
Related-Bug: #1185290
Nova has a legacy hack to allow admins to specify hosts via an
availability zone using az:host:node. That means ':' cannot be
included in the name of an availability zone itself.
However, the aggregate API accepts requests which have
availability zone names including ':'.
This patch checks the availabilty zone name when aggregate is
created or updated and raises an error if it contains ':'.
Change-Id: I9b0d8e8d4b3ab2cb3d578c22fa259e0e7c0d325b
Closes-Bug: #1695861
The default sort key when listing servers is the
'created_at' field, which is also in the list of
available sort keys in the same description for
this parameter. The 'created' field doesn't exist.
Change-Id: I7a971c421e69cc7a5630454305ee2cddaf0e92d3
Fix AZ related API docs
While we have a big fat comment in the development docs explaining why it's so
terrible to use default AZ values for either booting an instance or setting
an aggregate AZ metadata, we still have confusing API docs that provide the
wrong name for the AZ...
Fixing that and trying to explain the problem within the docs, too.
This reverts commit 92ca21abd6.
Co-Authored-By: Sylvain Bauza <sbauza@redhat.com>
Co-Authored-By: Stephen Finucane <stephenfin@redhat.com>
Change-Id: Ie4bfe32bbef0f8060bfc0ad4190f262d4a8bd3b2
This reverts commit 71a7eda44b.
This is breaking the gate due to the change in the az name.
Change-Id: Idd7d1aab113f3d4aba8b1deb6e5dc3871a75aa29
Closes-Bug: #1716247
While we have a big fat comment in the development docs explaining why it's so
terrible to use default AZ values for either booting an instance or setting
an aggregate AZ metadata, we still have confusing API docs that provide the
wrong name for the AZ...
Fixing that and trying to explain the problem within the docs, too.
Change-Id: I811d0f219142ca435b2b206e9b11ccd5ac611997
Co-Authored-By: Stephen Finucane <stephenfin@redhat.com>
Bypassing the scheduler during a live migration or evacuation
is not something we want people to be doing as it can easily fail
if the specified host is already full or doesn't provide something
required by the instance, plus it's a nightmare for tracking allocations
in the Placement service when we're bypassing the scheduler.
Because of this, we should have some warnings in the API reference
about doing this, which this patch adds.
Change-Id: I85e7c2677f4d5eccc1e7f349de06960b53ef148d
When creating a server, you can request security groups and
pre-existing ports, but the security groups are only applied to
any new ports that nova creates, not the pre-existing ones that
the user passes in. This change makes a note of that in the API
reference.
Change-Id: I0ea6891f10f021b0ed752200417e87d7e9bfda31
Related-Bug: #1707319
add description about key_name, which tells user 'null' is not
accepted parameter.
this is ths solution that other than change the code.
Change-Id: Id84c7803fdd44961497cd35c15ece98e2852d4f6
Related-Bug: 1700825
Because MySQL is case insensitive by default, and this
is something that depends on the database backend in the
cloud, let's not mention that tags are case sensitive in
the API.
Change-Id: I6efa9d6a5c598ac7a5c898d63b6a4b1934560b80
Related-Bug: #1538011
The max_version on the fixed_ips, floating_ips, networks,
security_groups and security_group_members parameters for the
os-quota-class-sets API should be capped at 2.49, not 2.50.
This is a bit confusing but it works the same as max_version
works in the API code, i.e. the max version is the highest
version you can request that parameter on that API and it
will work. 2.50 was wrong because in 2.50 we don't accept
or return those parameters.
This is similar to the network-related resource deprecation
in the os-quota-sets API with the 2.36 microversion. The API
reference for those parameters in os-quota-sets use
max_version: 2.35.
Change-Id: Ib3e3cdc1ba57172fce1b03a0e77302c3edf9f0dc
Closes-Bug: #1705115
There are quite a few changes here as this is not only handling
uuids for the hypervisor id but it's also a refactor in several
APIs for consistency.
The main changes are detailed in the REST API Version History
doc in this change, but to summarize the changes:
* Hypervisor and service IDs are handled as the UUIDs for those
resources; this is necessary for accurately working with these
resources across multiple cells.
* The 'servers' and 'search' routes are deprecated and folded into
the index and detail methods as query parameters, validated using
json schema.
* The show method will also be able to return the list of servers
hosted on the given hypervisor using the with_servers query
parameter.
* The marker used when paging over lists of hypervisors is the
compute node UUID.
* Using the hypervisor_hostname_pattern query parameter will not
work with paging parameters.
* API reference docs are updated for the detailed changes.
* Functional and unit tests are provided for all changes.
Part of blueprint service-hyper-uuid-in-api
Change-Id: I828350c179df8bcfa4739910abeafaba2f96982b
This patch introduces a new microversion to identify services by uuid
instead of id, to ensure uniqueness across cells. GET /os-services
returns uuid in the id field, and uuid must be provided to delete a
service with DELETE /os-services/{service_uuid}.
The old PUT /os-services/* APIs are now capped and replaced
with a new PUT /os-services/{service_uuid} which takes a uuid path
parameter to uniquely identify the service to update. It also restricts
updates to nova-compute services only, since disabling or forcing-down
a non-compute service like nova-scheduler doesn't make sense as it
doesn't do anything.
The new update() method in this microversion also avoids trying to
re-use the existing private action methods like _enable and _disable
since those are predicated on looking up the service by host/binary,
are confusing to follow for code flow, and just don't really make sense
with a pure PUT resource update method.
Part of blueprint service-hyper-uuid-in-api
Co-Authored-By: Matt Riedemann <mriedem.os@gmail.com>
Change-Id: I45494a4df7ee4454edb3ef8e7c5817d8c4e9e5ad
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
In the resize API reference, mention that the specified flavor
must have a disk size greater than or equal to the current
instance flavor. This is something that doesn't get checked
in the API so it results in a failure on the compute service
which is not obvious to the API user since the instance goes
back into state 'ACTIVE'.
Change-Id: I33fc92ffa346b908a8e4f95da16a68040cfc678e