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
This patch marks the network related quota in the quota-class API
as deprecated in the 2.50 microversion. Also rewrite the release note for
2.50 microversion, change to describe the API change instead of the history.
Change-Id: Ida5518b7d43e85d9f30b11ed2819025a190aefd6
Allow Cinder to use external events to signal a volume extension.
1) Nova will then call os-brick to perform the volume extension
so the host can detect its new size.
2) Compute driver will resize the device in QEMU so instance can detect
the new disk size without rebooting.
This change:
* Adds the 'volume-extended' external event.
The event tag needs to be the extended volume id.
* Bumps the latest microversion to 2.51.
* Exposes non-traceback instance action event details for
non-admins on the microversion. This is needed for the
non-admin API user that initiated the volume extend
operation to be able to tell when the nova-compute side
is complete.
Co-Authored-By: Matt Riedemann <mriedem.os@gmail.com>
Blueprint: nova-support-attached-volume-extend
Change-Id: If10cffd0dc4c9879f6754ce39bee5fae1d04f474
For "GET /servers/{server_id}/os-instance-actions/{request_id}",
the "events" parameter in the response body is only included by
default policy for administrators. You can get details if you're
an admin or own the server, but the events are only returned for
admins by default.
This change does two things:
1. Fixes the description of the default policy since admin or
owner can get action details for a particular request.
2. Fixes the "events" parameter description by pointing out it
is optional and only returned by default for admins.
Change-Id: I6410a0aac223133d8d07fd65c268553ebb9e7e67
Closes-Bug: #1702573
v2.1 API which does not return the 'server_groups' and
'server_group_members' quotas in GET & PUT os-quota-class-sets
API response. v2 API used to return those keys in API response.
Also filter out the network related quotas from os-quota-class-sets
APIs
Fixing this with microversion.
Closes-Bug: #1701211
Closes-Bug: #1693168
implement-blueprint fix-quota-classes-api
Change-Id: I66aeb7a92fb5ee906fead78030bd84a2e97916e8
Add the description for the following items
in the API reference and the API guide.
* 'X-Openstack-Request-Id' header in request
* 'X-Openstack-Request-Id' header in response
* 'X-Compute-Request-Id' in response
Change-Id: Idd9181c1530eb9576da9941416b697a97c0cfb8d
Closes-Bug: #1693555
Add missing parameters in limits.inc.
Fix inconsistency in the description ('instance' and 'server').
Change-Id: I9e361471024fd9618a7b6a7b49a1aeca810e6f05
Implements: blueprint api-ref-in-rst-pike
Closes-Bug: #1654316
'networks' quota can be available based on config value.
api-ref should show that for quota-set APIs and also sample files
so that it can be tested somewhere.
Also adding it to quota class APIs sample files also.
Closes-Bug: #1702201
Change-Id: I84d562a8ca10826dea4675d74669b5de64ff0ed0
This commit adds the api doc for os-quota-class-set GET & PUT
APIs.
- Also mentioned about the recommendation over usage of this API.
- Added warning for current bug in v2.1 API #1693168
This is also needed by BP
- https://blueprints.launchpad.net/nova/+spec/fix-quota-classes-api
Change-Id: Ib765e2d1dec7b236a2009148e0b1067a46326ce9
Related-Bug: #1693168
Closes-Bug: #1602400
This patch adds microversion 2.49, which supports tagged attachment
of network interfaces and block devices.
Change-Id: I8d3bbe7e9a21d2694d10ee89628deb333e6b0487
Implements: blueprint virt-device-tagged-attach-detach
swap output is actully an empty string ('') now when query
flavor if the swap is 0, so we need indicate that before we
sort out any conclusion (whether we need fix it or not).
Change-Id: I5a5397479dd894f90dad9a1de509a50f6b3b5477
Related-Bug: 1436683
The hypervisor_hostname shown in the os-hypervisors and servers
APIs is actually the Ironic node uuid, not a name. This comes
from the Ironic virt driver _node_resource method which eventually
gets used in the resource tracker to set the ComputeNode
hypervisor_hostname field, which is used to also set the instance.node
value in the ResourceTracker later during the instance claim.
The confusion probably lies in the fact that the variable passed
around the code is also referred to as "nodename", but in the case
of Ironic it's not actually a hostname, it's a uuid.
Change-Id: Ic639abe9989b282bad71581bb861314619c0f48b
Closes-Bug: #1698000
There are two changes here:
1. It is important to state that this API only returns a summary
of compute node/service statistics for *enabled* nova-compute
services. The DB API query filters out disabled compute services.
2. Fixes a typo in the description of the hypervisor_statistics
parameter.
Change-Id: Iee28147b701ab42eb07d344cd2f4cb157b74b2f2
Since there are chances that the guest OS won't honor the order of networks
and assign NIC#1 to the second requested network, we say to our users to
rather use device tagging and metadata querying.
Amending the api-ref to mention explicitly that Nova doesn't support NIC
ordering although there are codepaths for that which try that.
Change-Id: Id134f7745111ccd12695bb041fcce182e833126a
Related-Bug: #1696664
The marker for paging over hypervisors (compute nodes) is the
integer id field (compute_nodes.id column). This corrects the
type in the API reference parameters.
Change-Id: If925929171a2d7a1fbd0a8926e550512915c24a3
Closes-Bug: #1696554
Before this patch, VM diagnostics response was just a
'blob' of data returned by each hypervisor. New API
version makes diagnostics response standardized.
New response has a set of fields which each hypervisor
will try to fill. If hypervisor unable to provide a
specific field then this field will be reported as 'None'.
Tempest tests: I7757c5beeea3d3b0bc15a51cafc5ea2ada65e76c
DocImpact: admin guide docs should be updated to mention
standardized version of the diagnostics response
blueprint: restore-vm-diagnostics
Change-Id: If0b1493cc5c1c7f0d9896dd68342ad4dea4f7da2
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
Artom ruined my day by pointing out that with microversion 2.37
and specifying the enum "auto" for the networks entry in a server
create request, you can't also apply a device tag to the port
that's auto-created for the server.
This change updates the networks API reference parameter description
to note that wrinkle since it's not obvious otherwise without looking
at the API schema.
Change-Id: I1e39aa5a41befb24bb947be060f43f0a96134139