From fd99a7ca0f56223d878142a58525d9ed64c84ed1 Mon Sep 17 00:00:00 2001 From: ericxiett Date: Fri, 11 Sep 2020 02:03:47 +0000 Subject: [PATCH] Fix error that cannot overwrite policy rule for 'forced_host' When configure 'os_compute_api:servers:create:forced_host' to 'rule:admin_or_owner', but still doesn't allow. In nova/api/openstack/compute/servers.py#L669, the target is set to '{}' that is not equal None, so then it will not be set in nova/policy.py#L205. This patch configures the target param. Change-Id: I7a563386bd2f5d1930b5eb2cfc00425a19747e24 Closes-Bug: #1894975 --- nova/api/openstack/compute/servers.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/nova/api/openstack/compute/servers.py b/nova/api/openstack/compute/servers.py index cfb2a79a6991..96b11fdadcb5 100644 --- a/nova/api/openstack/compute/servers.py +++ b/nova/api/openstack/compute/servers.py @@ -666,7 +666,8 @@ class ServersController(wsgi.Controller): except exception.InvalidInput as err: raise exc.HTTPBadRequest(explanation=six.text_type(err)) if host or node: - context.can(server_policies.SERVERS % 'create:forced_host', {}) + context.can(server_policies.SERVERS % 'create:forced_host', + target=target) if api_version_request.is_supported(req, min_version='2.74'): self._process_hosts_for_create(context, target, server_dict,