From 42d9a8d2e8736c5a8e94eaf7074755a1add3922b Mon Sep 17 00:00:00 2001 From: Rikimaru Honjo Date: Wed, 15 Jan 2020 10:48:14 +0000 Subject: [PATCH] Allow to evacuate without specifying a target host When the evacuate is run without specifying a target host, horizon sets an empty string for target host. But the evacuate api doesn't allow an empty string. As a result, nova returns "HTTP 400 Bad request". So this patch sets None as the target host when it isn't specified. Change-Id: Ia865a6c02e206fa49efc3095e8d3488f5638d0e3 Closes-Bug: 1793694 (cherry picked from commit f9e0f8a976b82088ef095a69cd1fa892cddde3ba) --- .../dashboards/admin/hypervisors/compute/forms.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/openstack_dashboard/dashboards/admin/hypervisors/compute/forms.py b/openstack_dashboard/dashboards/admin/hypervisors/compute/forms.py index 2e9a6434bf..8082e82689 100644 --- a/openstack_dashboard/dashboards/admin/hypervisors/compute/forms.py +++ b/openstack_dashboard/dashboards/admin/hypervisors/compute/forms.py @@ -57,6 +57,11 @@ class EvacuateHostForm(forms.SelfHandlingForm): current_host = data['current_host'] target_host = data['target_host'] on_shared_storage = data['on_shared_storage'] + # The target_host value will be an empty string when the target + # host wasn't specified. But the evacuate api doesn't allow + # an empty string. So set None as the target_host value. + if not target_host: + target_host = None api.nova.evacuate_host(request, current_host, target_host, on_shared_storage)