945 Commits

Author SHA1 Message Date
Yongli He
3dcb404b1f Add server sub-resource topology API
Add a new server topology API to show server NUMA information:
  - GET /servers/{server_id}/topology

Add new policy to control the default behavior:
  - compute:server:topology:index
  - compute:server:topology:host:index

Change-Id: Ie647ef96597195b0ef00f77cece16c2bef8a78d4
Implements: blueprint show-server-numa-topology
Signed-off-by: Yongli He <yongli.he@intel.com>
2019-08-30 10:04:56 +08:00
zhangbailin
27b6c18c66 Specify availability_zone to unshelve
This adds support, in a new microversion, for specifying an availability
zone to the unshelve server action when the server is shelved offloaded.

Note that the functional test changes are due to those tests using the
"latest" microversion where an empty dict is not allowed for unshelve
with 2.77 so the value is changed from an empty dict to None.

Implements: blueprint support-specifying-az-when-restore-shelved-server
Closes-Bug: #1723880

Change-Id: I4b13483eef42bed91d69eabf1f30762d6866f957
2019-08-27 12:57:10 -04:00
Ghanshyam Mann
f7e672d302 Update api-ref for 2.75 to add config_drive in server update response
In 2.75, we missed to add the config_drive field in api-ref for
update server response
- I9d257a003d315b84b937dcef91f3cb41f3e24b53.

This commit updates the api-ref.

Change-Id: I46ab0b8650bf50a5384bb56027cdf0dc2a9bb2fe
Partial-Implements: blueprint api-consistency-cleanup
2019-08-20 12:58:36 +00:00
Matt Riedemann
ad75beee11 api-ref: add config_drive to 2.75 rebuild response parameters
Change I9d257a003d315b84b937dcef91f3cb41f3e24b53 and the 2.75
microversion returns the config_drive parameter in the rebuild
response and it's in the 2.75 rebuild response sample but was
missing from the response parameters table.

Change-Id: I89eca8638bc0d64b7f320f4ec5c49375bfebdb56
2019-08-19 15:01:35 -04:00
Zuul
35485eacfb Merge "API microversion 2.76: Add 'power-update' external event" 2019-08-15 23:39:50 +00:00
Surya Seetharaman
62f6a0a1bc API microversion 2.76: Add 'power-update' external event
This patch adds a new external event called "power-update"
through which ironic will convey all (power_off and power_on)
power state changes (running -> shutdown or shutdown -> running
will be the only ones handled by nova and the rest will be ignored)
on a physical instance to nova. The database will be updated
accordingly to reflect the real vm_state and power_state of the
instance. This way nova will not be able to enforce
an incorrect power state on the physical instance during
the periodic "sync_power_states" task.

Implements blueprint nova-support-instance-power-update
Story: 2004969
Task: 29423

Change-Id: I2b292050cc3ce5ef625659f5a1fe56bb76072496
2019-08-15 13:19:44 -04:00
Takashi NATSUME
abfb28291a api-ref: Fix collapse of 'host_status' description
Fix collapse of 'host_status' description in the follwoing APIs
in the compute API reference.

- PUT /servers/{server_id}
- POST /servers/{server_id}/action (rebuild)

Change-Id: I003f9a81ac6f7e0ec13a24db3fda1b7ff6612bc5
Closes-Bug: #1840094
2019-08-14 10:46:26 +09:00
Ghanshyam Mann
b26bc7fd7a Multiple API cleanup changes
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
2019-08-12 08:52:38 -05:00
Zuul
4f26ab0657 Merge "Retrun 400 if invalid query parameters are specified" 2019-08-09 23:50:19 +00:00
Matt Riedemann
ebd68b3d1e api-ref: document valid GET /os-migrations?migration_type values
There are only four valid values for the migration_type filter
when listing migrations so let's document them for the request
parameter. Note that the API jsonschema validation does not
restrict the values since the filter parameter pre-dated jsonschema
validation for query parameters. Specifying an invalid value would
just result in no results from the DB query.

Change-Id: I7fee254edefd524633af62d80cb47009b1cf010b
2019-08-06 18:40:48 -04:00
Takashi NATSUME
ae7ebdf45e Retrun 400 if invalid query parameters are specified
The following APIs return 500 error currently
if an invalid sort key or an invalid sort direction
query parameter is specified.

- GET /flavors
- GET /flavors/detail

Make the APIs return 400 error in that case.

Change-Id: I1d6d2c1f734b28dbea5c67cf88717149dd4911d7
Closes-Bug: #1835925
2019-08-04 23:59:51 +00:00
Zuul
d358df32f7 Merge "api-ref: touch up the os-services docs" 2019-07-25 19:25:27 +00:00
Matt Riedemann
af2e5a5755 api-ref: touch up the os-services docs
Make it clear that the first GET /os-services response sample
is for 2.11 and make the version suffix format for the 2.69
example match the other response examples, i.e. "(v2.x)".

Also mention that PUT /os-services/{service_id} only allows
nova-compute services. Before Pike it was possible to update
non-nova-compute services though it didn't really make sense.

Change-Id: I585582710884a53d91f4453011d3407a94efe1e3
2019-07-25 11:48:53 -04:00
Zuul
bca4fdec9a Merge "Correct project/user id descriptions for os-instance-actions" 2019-07-25 08:58:05 +00:00
Zuul
ab34c941be Merge "Remove deprecated Core/Ram/DiskFilter" 2019-07-23 23:36:06 +00:00
Stephen Finucane
78645e61c6 Remove deprecated Core/Ram/DiskFilter
These were deprecated during Stein [1] and can now be removed, lest they
cause hassle with the PCPU work. As noted in [1], the aggregate
equivalents of same are left untouched for now.

[1] https://review.opendev.org/#/c/596502/

Change-Id: I8a0d332877fbb9794700081e7954f2501b7e7c09
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-07-23 07:49:41 -07:00
qiufossen
6b3aa31458 Correct project/user id descriptions for os-instance-actions
The 'user_id' and 'project_id' parameter descriptions for server actions
imply that they are the value of the user/project that owns the server,
but that is incorrect - they are the project/user id of whoever made the
request/initiated the action.

The existing project_id_instance_action parameter variable, which is only
used by the os-cloudpipe reference, is renamed to avoid confusion with
instance actions.

Co-Authored-By: Brin Zhang <zhangbailin@inspur.com>

Closes-Bug: #1835063
Change-Id: I1c05d59ebf1fda6319df5ee305c2b8a6a9562242
2019-07-22 15:23:16 -04:00
Andreas Jaeger
dbe6321537 Update api-ref location
The api documentation is now published on docs.openstack.org instead
of developer.openstack.org. Update all links that are changed to the
new location.

Note that Neutron publishes to api-ref/network, not networking anymore.

Note that redirects will be set up as well but let's point now to the
new location.

For details, see:
http://lists.openstack.org/pipermail/openstack-discuss/2019-July/007828.html

Change-Id: Id2cf3aa252df6db46575b5988e4937ecfc6792bb
2019-07-22 19:17:28 +02:00
zhangyangyang
d29d1d1a9e Bump the openstackdocstheme extension to 1.20
Some options are now automatically configured by the version 1.20:
- project
- html_last_updated_fmt
- latex_engine
- latex_elements
- version
- release.

Change-Id: I3a5c7e115d0c4f52b015d0d55eb09c9836cd2fe7
2019-07-19 18:30:16 +08:00
Zuul
47a9829058 Merge "Remove needs:* todo from deprecated APIs api-ref" 2019-07-13 00:34:10 +00:00
zhu.boxiang
564290ab14 Add host and hypervisor_hostname flag to create server
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
2019-07-09 22:55:16 +08:00
Takashi NATSUME
e75598be31 api-ref: Fix a broken link
The link to the API extension document has been broken.
The API extension document does not exist currently,
so just remove the link.

Change-Id: I8920a00004528f5fa30d1b5a2f53ffa5f65f2ea8
2019-07-05 13:24:18 +09:00
Ghanshyam Mann
a2852d98ec Remove needs:* todo from deprecated APIs api-ref
There are few needs:body/example/parameter_verification
pending on deprecated APIs. It is not worth to spend time on
completing those.

Removing those todo part and adding note about not updating
them.

Change-Id: I1f2bc4e6d8bdb2b41c4b22c18573a4fc75bea38e
2019-06-28 19:09:31 +00:00
Stephen Finucane
81e4d13c32 conf: Rename 'configuration drive' to 'config drive'
Keeps dansmith happy.

Change-Id: Ifd8537692de98ee02ff7333812d2877273a0a388
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-06-20 18:23:14 +01:00
Zuul
6f6f99d13d Merge "Block swap volume on volumes with >1 rw attachment" 2019-05-30 17:47:10 +00:00
Yikun Jiang
9614354535 Fix the server group "policy" field type in api-ref
The server group policy field added in v2.64 is a string but
the API reference says the parameter is an object.

This patch changes it from "object" to "string".

Change-Id: I1b4efe8afb302d94c810389e124c5370cbe72ddf
Closes-bug: #1830800
2019-05-29 09:16:51 +08:00
Zuul
a7058b1988 Merge "Update description of valid whitelist for non-admin user" 2019-05-23 07:30:53 +00:00
翟小君
31007102b0 Update description of valid whitelist for non-admin user
Non-admin user can filter instance by instance-uuid and other
filter keys with being configured using the "os_compute_api:
servers:allow_all_filters" policy rule. The policy rule was
added with Ia5504da9a00bad689766aeda20255e10b7629f63.

Closes-Bug:1819425

Change-Id: I74146b4370b6017cb199466258165fc6df080082
2019-05-22 20:56:41 +00:00
Matt Riedemann
5a1d159d14 Block swap volume on volumes with >1 rw attachment
If we're swapping from a multiattach volume that has more than one
read/write attachment, another server on the secondary attachment could
be writing to the volume which is not getting copied into the volume to
which we're swapping, so we could have data loss during the swap.

This change does volume read/write attachment counting for the volume
we're swapping from and if there is more than one read/write attachment
on the volume, the swap volume operation fails with a 400 BadRequest
error.

Depends-On: https://review.openstack.org/573025/
Closes-Bug: #1775418
Change-Id: Icd7fcb87a09c35a13e4e14235feb30a289d22778
2019-05-22 09:09:00 +00:00
Matt Riedemann
c07746af90 api-ref: mention default project filtering when listing servers
This removes the "all" wording from the List Servers API
reference docs since it could be confused with actually returning
all servers across all tenants (the all_tenants filters). It also
mentions that by default only servers associated with the project
making the request are returned, i.e. the project associated with
the auth token on the request. This is probably fairly obvious
and automatic to anyone that's worked with openstack for a long
time but might not be for a new user and is not really documented
anywhere in the API reference or API guide that I could find.

Change-Id: Ie28164e4813a7a48addcd80d81c72c978ac9f395
2019-05-17 15:30:13 -04:00
Zuul
780f737547 Merge "api-ref: 'os-hypervisors' doesn't reflect overcommit ratio" 2019-05-13 17:35:20 +00:00
Zuul
26b1761f3c Merge "api-ref: fix mention of all_tenants filter for non-admins" 2019-05-13 12:47:57 +00:00
Surya Seetharaman
c541ace518 Microversion 2.73: Support adding the reason behind a server lock
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
2019-05-11 21:48:27 +00:00
Matt Riedemann
57646dfe77 api-ref: fix mention of all_tenants filter for non-admins
The API reference for listing servers says that the all_tenants
filter parameter is available for non-admins which is likely
a mistake because of it being in the _get_server_search_options
method, but all_tenants is admin-only by default policy because
of the os_compute_api:servers:index:get_all_tenants and
os_compute_api:servers:detail:get_all_tenants policy rules.

This change fixes the API reference to remove all_tenants from
the list of non-admin filter parameters and also adds a note to
the _get_server_search_options method to avoid future confusion.

Change-Id: I0e937afbdf8e19d2efd626047913d4c8a9b88b76
Closes-Bug: #1828042
2019-05-07 10:47:04 -04:00
Stephen Finucane
fb14f24cc3 Remove '/os-cells' REST APIs
Drop support for the os-cells REST APIs, which are part of the cells v1
feature which has been deprecated since Pike.

This API now returns a 410 response for all routes.

Unit tests are removed and the functional API sample tests are just
asserting the 410 response now. The latter are also expanded to cover
APIs that weren't previously tested.

The API sample docs are left intact since the API reference still builds
from those and can be considered more or less branchless, so people
looking at the API reference can apply it to older deployments of nova
before os-cells was removed.

A release note added for previous cells v1 removals is amended to note
this additional change.

Part of blueprint remove-cells-v1

Change-Id: Iddb519008515f591cf1d884872a5887afbe766f2
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2019-04-16 18:26:13 +01:00
Zuul
7bf27511ac Merge "api-ref: add more details to confirmResize troubleshooting" 2019-04-05 01:01:39 +00:00
Matt Riedemann
214656eff2 api-ref: fix description of os-server-external-events 'events' param
The description on the 'events' parameter for the
POST /os-server-external-events API did not make sense,
so this re-words it.

Change-Id: Iaec80e03a8ab0cd1b34126701bd0754953394e42
2019-04-03 18:08:41 -04:00
Matt Riedemann
3dbb0c4c57 api-ref: document ordering for instance actions and events
Whenever I use the os-instance-actions API I have to look at
the DB API source code to figure out the sort order of the
resulting instanceActions and each action's events, which
is desc(created_at) in both cases (and desc(id) but that should
not matter here since the id is not exposed in the API).

This change mentions the resulting sort order of those fields
in the API reference so I can stop looking at source code.

[1] https://github.com/openstack/nova/blob/e7ae6c65c/nova/db/sqlalchemy/api.py#L5149
[2] https://github.com/openstack/nova/blob/e7ae6c65c/nova/db/sqlalchemy/api.py#L5289

Change-Id: Ib5758bc21296e8b6c041198661c147b8e99d57e5
2019-04-03 18:03:28 -04:00
Matt Riedemann
4d0aab16ec api-ref: add more details to confirmResize troubleshooting
This does a few things:

1. Fixes the "migration_status" wording since that does not
   exist and could be confused as a field on the server
   resource which it is not, it is referring to the migration
   resource status.

2. Fixes the RESIZED status mention since that is not a real
   server status, it probably meant VERIFY_RESIZE (RESIZED is
   the name of the nova.compute.vm_states variable used in the
   code to set the VERIFY_RESIZE status in the API).

3. Adds words about options to correct the server status from
   ERROR after confirmResize fails, the most obvious being
   an admin resetting the server status to ACTIVE or the user
   hard rebooting the server.

Change-Id: I7de257ad78031d137616d724bee3fa1cbf40d6fa
Related-Bug: #1821594
2019-03-29 09:38:45 -04:00
Matt Riedemann
45cecbb427 Fix JsonFilter query hint examples in docs
The API reference and part of the scheduler filter docs for
the JsonFilter query hint are using invalid json strings
in the examples.

This fixes both invalid locations using the same json string
used in the openstack server create command example in the
scheduler admin docs.

Change-Id: Iaab8608c7ffa6fbbea40a838dd02d8096f632f7a
Closes-Bug: #1821764
2019-03-26 12:05:30 -04:00
Takashi NATSUME
f87bf4c6b9 api-ref: Add description for BDM volume_size
Add description of cases that 'block_device_mapping_v2.volume_size`
is required in the "Create Server" (POST /servers) API.

Change-Id: I36f28ca756b908b5fc591cc87f5786a3e217285e
Closes-Bug: #1818310
2019-03-13 16:17:20 +00:00
licanwei
14a6767634 api-ref: typo service.disable_reason
'disable_reason' should be 'disabled_reason'

Change-Id: Ie320d7a7eb675bfdba2c907fd44b99c02974d343
2019-03-05 16:58:13 +08:00
Zuul
482d8c9621 Merge "api-ref: explain aggregate set_metadata semantics" 2019-03-04 13:20:13 +00:00
Matt Riedemann
268190b252 api-ref: explain aggregate set_metadata semantics
This came up as a source of confusion while reviewing
change Ic27195e46502067c87ee9c71a811a3ca3f610b73 because
I thought that the "metadata" key in the
POST /os-aggregates/{aggregate_id}/action (set_metadata)
API was an overwrite of the existing metadata rather than
an update.

The way the Aggregate.update_metadata() method works is that
new entries are added, existing metadata is updated if the
value is not None, otherwise existing entries are removed
if the value is None.

And because of the AggregateAPI.is_safe_to_update_az() method
the special "availability_zone" metadata cannot be unset to None
once it is set. So the only way to remove an AZ is to delete the
aggregate altogether.

This updates the API reference description of the "metadata"
parameter in the "set_metadata" action API.

Change-Id: I6fa9f9691b945b5212b7f951ab0a26b4d3049df9
Related-Bug: #1378904
2019-03-01 12:36:42 -05:00
Matt Riedemann
1241e3ec2a Stop using "nova" in API samples when creating a server
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
2019-03-01 10:43:08 -05:00
Yongli He
2cc7c0e589 Adds the server group info into show server detail API.
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>
2019-02-28 14:22:46 -05:00
Zuul
21c6b2def7 Merge "api-ref: mark os-cells as deprecated" 2019-02-25 18:36:40 +00:00
Matt Riedemann
1c6fdc9aec Add microversion to expose virtual device tags
This change adds a new microversion to expose virtual
device tags for volumes and ports attached to a server.

Implements blueprint expose-virtual-device-tags-in-rest-api

Change-Id: I09420ff7134874dfe4dc399931c7740e81ecc2d0
2019-02-21 13:38:51 +00:00
Zuul
b5a9eab559 Merge "API microversion 2.69: Handles Down Cells Documentation" 2019-02-21 00:29:01 +00:00
Surya Seetharaman
833af5c9bf API microversion 2.69: Handles Down Cells Documentation
This patch adds the documentation around the work regarding
handling down cells that was introduced in v2.69.

Related to blueprint handling-down-cell

Change-Id: I78ed924a802307a992ff90e61ae7ff07c2cc39d1
2019-02-20 10:10:50 -08:00