From ced5b3dd13f84b23371fde76e309e6af4a56f048 Mon Sep 17 00:00:00 2001 From: Frode Nordahl Date: Thu, 17 Sep 2020 14:31:57 +0200 Subject: [PATCH] Retry scp/ssh operations in `add_interface_to_netplan` helper Fixes #420 --- zaza/openstack/utilities/openstack.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/zaza/openstack/utilities/openstack.py b/zaza/openstack/utilities/openstack.py index 0c31c05..1e8f625 100644 --- a/zaza/openstack/utilities/openstack.py +++ b/zaza/openstack/utilities/openstack.py @@ -690,14 +690,20 @@ def add_interface_to_netplan(server_name, mac_address): "{}\nserver_name: {}".format(body_value, unit_name, interface, mac_address, server_name)) - with tempfile.NamedTemporaryFile(mode="w") as netplan_file: - netplan_file.write(body_value) - netplan_file.flush() - model.scp_to_unit(unit_name, netplan_file.name, - '/home/ubuntu/60-dataport.yaml', user="ubuntu") - run_cmd_mv = "sudo mv /home/ubuntu/60-dataport.yaml /etc/netplan/" - model.run_on_unit(unit_name, run_cmd_mv) - model.run_on_unit(unit_name, "sudo netplan apply") + for attempt in tenacity.Retrying( + stop=tenacity.stop_after_attempt(3), + wait=tenacity.wait_exponential( + multiplier=1, min=2, max=10)): + with attempt: + with tempfile.NamedTemporaryFile(mode="w") as netplan_file: + netplan_file.write(body_value) + netplan_file.flush() + model.scp_to_unit( + unit_name, netplan_file.name, + '/home/ubuntu/60-dataport.yaml', user="ubuntu") + run_cmd_mv = "sudo mv /home/ubuntu/60-dataport.yaml /etc/netplan/" + model.run_on_unit(unit_name, run_cmd_mv) + model.run_on_unit(unit_name, "sudo netplan apply") def configure_gateway_ext_port(novaclient, neutronclient, net_id=None,