Activity log for bug #1850280

Date Who What changed Old value New value Message
2019-10-29 10:00:57 Balazs Gibizer bug added bug
2019-10-29 10:01:10 Balazs Gibizer nova: assignee Balazs Gibizer (balazs-gibizer)
2019-10-29 10:01:44 Balazs Gibizer nova: status New Triaged
2019-10-29 10:01:51 Balazs Gibizer nova: importance Undecided Medium
2019-10-29 10:01:58 Balazs Gibizer tags neutron
2019-10-29 12:11:10 Balazs Gibizer description At the start of the move operation the nova-api checks that the server has ports with resource request as some of the move operations are not supported for such servers yet. Unfortunately if move the operation is called by a non-admin user (either it is a resize, or another move operation with explicit policy change) then nova uses the non-admin token to query neutron. If the neutron port is queried with a non admin token then neutron does not return the resource_request to nova in the port response. Therefore nova thinks that the port ha no resource request and allows the operation. Reproduce in Ussuri =================== * Boot a server with qos port. * Change the nova policy to allow evacuate to be called by the owner of the server "os_compute_api:os-evacuate": "rule:admin_or_owner" * stop the nova-compute service on the host where the server currently running and wait until the controller decides that the compute is done * with the non-admin owner initiate the evacuate of the server Expected: * evacuate rejected Actual: * evacuate accepted (and later fail due to missing implementation) Triage ====== Due to [1] not using an admin client nova does not get the resource requests of the attached ports. Affected versions and operations ================================ * Ussuri: evacute, live migrate, unshelve * Train: evacuate, live migrate, unshelve (resize and cold migrate is supported so the faulty check is not there any more) * Stein: resize, migrate, evacuate, live migrate, unshelve * Rocky or older: Not applicable as booting server with qos ports is implemented in Stein. [1] https://github.com/openstack/nova/blob/9742a64403c0a0ae5e0b37df5b0bf3ba14ac4626/nova/api/openstack/common.py#L576 At the start of the move operation the nova-api checks that the server has ports with resource request as some of the move operations are not supported for such servers yet. Unfortunately if move the operation is called by a non-admin user (either it is a resize, or another move operation with explicit policy change) then nova uses the non-admin token to query neutron. If the neutron port is queried with a non admin token then neutron does not return the resource_request to nova in the port response. Therefore nova thinks that the port ha no resource request and allows the operation. Reproduce in Ussuri =================== * Boot a server with qos port. * Change the nova policy to allow evacuate to be called by the owner of the server "os_compute_api:os-evacuate": "rule:admin_or_owner" * stop the nova-compute service on the host where the server currently running and wait until the controller decides that the compute is done * with the non-admin owner initiate the evacuate of the server Expected: * evacuate rejected Actual: * evacuate accepted (and later fail due to missing implementation) Triage ====== Due to [1] not using an admin client nova does not get the resource requests of the attached ports. Affected versions and operations ================================ The resize, migrate, live migrate, evacuate, unshelve opertaions are affected on master, Train, Stein. [1] https://github.com/openstack/nova/blob/9742a64403c0a0ae5e0b37df5b0bf3ba14ac4626/nova/api/openstack/common.py#L576
2019-10-29 16:04:24 OpenStack Infra nova: status Triaged In Progress
2019-11-06 20:36:16 Matt Riedemann nominated for series nova/train
2019-11-06 20:36:16 Matt Riedemann bug task added nova/train
2019-11-06 20:36:16 Matt Riedemann nominated for series nova/stein
2019-11-06 20:36:16 Matt Riedemann bug task added nova/stein
2019-11-06 20:36:26 Matt Riedemann nova/stein: status New Triaged
2019-11-06 20:36:30 Matt Riedemann nova/stein: importance Undecided Medium
2019-11-06 20:36:36 Matt Riedemann nova/train: status New Triaged
2019-11-06 20:36:42 Matt Riedemann nova/train: importance Undecided Medium
2019-11-06 20:58:11 OpenStack Infra nova: assignee Balazs Gibizer (balazs-gibizer) Matt Riedemann (mriedem)
2019-11-06 21:00:16 Matt Riedemann nova: assignee Matt Riedemann (mriedem) Balazs Gibizer (balazs-gibizer)
2019-11-08 21:16:17 OpenStack Infra nova: status In Progress Fix Released
2019-11-13 09:21:10 OpenStack Infra nova/train: status Triaged In Progress
2019-11-13 09:21:10 OpenStack Infra nova/train: assignee Balazs Gibizer (balazs-gibizer)
2019-11-16 00:39:24 OpenStack Infra nova/train: status In Progress Fix Committed
2019-11-16 16:34:09 OpenStack Infra nova/stein: status Triaged In Progress
2019-11-16 16:34:09 OpenStack Infra nova/stein: assignee Balazs Gibizer (balazs-gibizer)
2019-11-18 17:41:29 OpenStack Infra nova/stein: assignee Balazs Gibizer (balazs-gibizer) Matt Riedemann (mriedem)
2019-11-18 17:42:12 Matt Riedemann nova/stein: assignee Matt Riedemann (mriedem) Balazs Gibizer (balazs-gibizer)
2019-11-25 10:15:16 OpenStack Infra nova/stein: assignee Balazs Gibizer (balazs-gibizer) Elod Illes (elod-illes)
2019-11-25 15:06:45 Matt Riedemann nova/stein: assignee Elod Illes (elod-illes) Balazs Gibizer (balazs-gibizer)
2019-11-25 17:32:37 OpenStack Infra nova/stein: status In Progress Fix Committed