317 Commits

Author SHA1 Message Date
Jenkins
15cac9d7e5 Merge "Handle uuids in os-hypervisors API" 2017-07-20 01:03:27 +00:00
Jenkins
d3e6b94eb9 Merge "Use uuid for id in os-services API" 2017-07-20 01:02:42 +00:00
Jenkins
e4669f4dc7 Merge "api-ref: fix max_version for deprecated os-quota-class-sets parameters" 2017-07-19 17:35:13 +00:00
Jenkins
28fe91ffea Merge "Do not mention that tags are case sensitive in docs" 2017-07-19 17:32:57 +00:00
Jenkins
c7d734d2a9 Merge "api-ref: Verify parameters in os-migrations.inc" 2017-07-19 16:29:39 +00:00
Matt Riedemann
22f4aedb85 Do not mention that tags are case sensitive in docs
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
2017-07-18 17:47:22 -04:00
Matt Riedemann
90c6e256b8 api-ref: fix max_version for deprecated os-quota-class-sets parameters
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
2017-07-18 17:15:49 -04:00
Matt Riedemann
622bfb2e95 Handle uuids in os-hypervisors API
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
2017-07-18 17:08:01 -04:00
Dan Peschman
2f7bf29d47 Use uuid for id in os-services API
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
2017-07-18 15:39:57 -04:00
Jenkins
430ec6504b Merge "Support tag instances when boot(4/4)" 2017-07-18 16:31:31 +00:00
Jenkins
62f4d60362 Merge "api-ref: mention disk size limitations in resize flavor" 2017-07-18 11:44:58 +00:00
Takashi NATSUME
319656dd11 api-ref: Verify parameters in os-migrations.inc
Change-Id: I6baeecc4c2d62c3c39d856f5b659cb986a00b724
Implements: blueprint api-ref-in-rst-pike
Closes-Bug: #1668747
2017-07-18 00:38:40 +00:00
Kevin_Zheng
b50b5a660e Support tag instances when boot(4/4)
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
2017-07-17 15:59:42 -04:00
Jenkins
56c4d684bf Merge "Fix the releasenote and api-ref for quota-class API" 2017-07-17 17:28:41 +00:00
Matt Riedemann
a48f124caf api-ref: mention disk size limitations in resize flavor
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
2017-07-15 18:08:26 -04:00
Jenkins
ac20980702 Merge "api-ref: Add missing parameters in limits.inc" 2017-07-13 17:45:32 +00:00
He Jie Xu
d0f91817eb Fix the releasenote and api-ref for quota-class API
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
2017-07-13 07:05:22 +00:00
Jenkins
b70476304b Merge "Add ability to signal and perform online volume size change" 2017-07-13 01:14:07 +00:00
Jenkins
a2f97a41f3 Merge "api-ref: Add X-Openstack-Request-Id description" 2017-07-13 00:59:19 +00:00
Jenkins
418b65ad7c Merge "api-ref: Fix parameters in server-security-groups" 2017-07-13 00:58:44 +00:00
Mathieu Gagné
bbe0f313bd Add ability to signal and perform online volume size change
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
2017-07-12 11:53:20 -04:00
Matt Riedemann
d2d84eb102 api-ref: mark instance action events parameter as optional
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
2017-07-12 10:56:13 -04:00
Jenkins
0ffe7b2789 Merge "Fix quota class set APIs" 2017-07-12 05:56:35 +00:00
ghanshyam
92e0efeefd Fix quota class set APIs
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
2017-07-10 21:44:08 +00:00
Takashi NATSUME
9fbd7861dd api-ref: Add X-Openstack-Request-Id description
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
2017-07-10 14:03:14 +00:00
Takashi NATSUME
247aa22355 api-ref: Add missing parameters in limits.inc
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
2017-07-10 14:02:28 +00:00
Takashi NATSUME
3f96ec6490 api-ref: Fix parameters in server-security-groups
Change-Id: Ie8dc3252603ce77910e1addb67cdc8844369dfca
Implements: blueprint api-ref-in-rst-pike
Closes-Bug: #1699732
2017-07-10 14:02:13 +00:00
Jenkins
56cd608d3a Merge "Add 'networks' quota in quota sample files" 2017-07-07 09:06:47 +00:00
Jenkins
e2d0442b5e Merge "Add api-ref for os-quota-class-set APIs" 2017-07-06 06:55:39 +00:00
ghanshyam
e332797e42 Add 'networks' quota in quota sample files
'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
2017-07-04 23:45:30 +00:00
ghanshyam
b25b66e284 Add api-ref for os-quota-class-set APIs
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
2017-07-04 17:40:56 +03:00
ghanshyam
d22fe39986 Fix 'project-id' 'user-id' as required in server group
'project_id' and 'user_id' are introduced as mandatory param in
microversion 2.13 but api-ref shows them as optional
- https://developer.openstack.org/api-ref/compute/?expanded=show-server-group-details-detail#show-server-group-details

api-ref should reflect the actual behavior.

Change-Id: Id7e734c65a97c82824c00ed054c13cb9fae2dd3c
Closes-Bug: #1702238
2017-07-04 15:03:18 +03:00
Artom Lifshitz
125c17465f API support for tagged device attachment
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
2017-06-30 09:05:34 +03:00
Takashi NATSUME
d04ddb0a2b api-ref: Fix missing parameters in API Versions
Add 'updated' and 'media-types' explicitly
in parameter tables.

Change-Id: I3e9f3374d4183d7ef7d3cb55cc95a4499ab20d49
Closes-Bug: #1634668
2017-06-28 03:01:10 +00:00
Jenkins
a43d1b17e2 Merge "Update api-ref to indicate swap param" 2017-06-22 17:28:23 +00:00
jichenjc
34f0259a5e Update api-ref to indicate swap param
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
2017-06-22 14:38:02 +00:00
Jenkins
d59d762fa7 Merge "api-ref: fix hypervisor_hostname description for Ironic" 2017-06-20 18:51:16 +00:00
Jenkins
8a7a2b8f92 Merge "api-ref: cleanup PUT /os-hypervisors/statistics docs" 2017-06-20 00:35:25 +00:00
Jenkins
bc4c91e7be Merge "Amend api-ref for multiple networks request" 2017-06-19 14:28:13 +00:00
Matt Riedemann
b541f71d0f api-ref: fix hypervisor_hostname description for Ironic
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
2017-06-15 14:20:15 -04:00
Matt Riedemann
298565a762 api-ref: cleanup PUT /os-hypervisors/statistics docs
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
2017-06-15 00:32:47 +00:00
Kevin_Zheng
ebb245edc2 Add missing query filter params for GET /os-services API
The GET /os-services API takes "host" and "binary" query filter
parameters:

3a5d592e60/nova/api/openstack/compute/services.py (L54-L58)

And novaclient exposes those filters:

https://docs.openstack.org/cli-reference/nova.html#nova-service-list

But they aren't documented in the API reference:

https://developer.openstack.org/api-ref/compute/?expanded=list-compute-services-detail#list-compute-services

Change-Id: I0ed35404d93475538326d3020754a6f97f25d08c
Closes-bug: #1697563
2017-06-13 08:19:31 +00:00
Sylvain Bauza
7d7cc94221 Amend api-ref for multiple networks request
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
2017-06-09 11:48:24 -04:00
Matt Riedemann
4404c4444c api-ref: fix type for hypervisor_marker
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
2017-06-07 20:18:24 -04:00
Jenkins
80a6f44e12 Merge "Update server create networks API reference description for tags" 2017-06-06 18:06:37 +00:00
Sergey Nikitin
a944838993 Standardization of VM diagnostics info API.
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
2017-06-05 07:45:51 +00:00
Chris Friesen
90636e0f33 show flavor info in server details
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
2017-06-02 12:09:24 -04:00
Matt Riedemann
60b55ad1d9 Update server create networks API reference description for tags
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
2017-06-01 16:30:48 -04:00
Jenkins
ff0ec7411b Merge "fix typo" 2017-05-24 18:51:02 +00:00
fuzk
24b1660f07 fix typo
Change-Id: Ib6c3571a91b2c3a2e167f4d39b993984fa246a72
2017-05-23 08:32:38 +08:00