From 2fbf10c6dbc78ebf63a86885ea2999a4acb2af41 Mon Sep 17 00:00:00 2001 From: Julia Graham Date: Fri, 22 Nov 2024 18:18:58 -0500 Subject: [PATCH 1/2] experimenting with dhcpcd --- virttest/utils_net.py | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/virttest/utils_net.py b/virttest/utils_net.py index 91715e1c88..732eea8ee6 100644 --- a/virttest/utils_net.py +++ b/virttest/utils_net.py @@ -4595,7 +4595,19 @@ def create_ovs_bridge(ovs_bridge_name, session=None, ignore_status=False): if session: runner = session.cmd iface_name = get_net_if(runner=runner, state="UP")[0] - if not utils_package.package_install(["tmux", "dhcp-client"], session): + + + dhcp_client = "dhcp-client" + dhcp_cmd = "dhclient" + dhcp_release_cmd = "-r" + res = utils_misc.cmd_status_output("which dhclient", shell=True, ignore_status=False, session=session)[0] + if res == 1: + dhcp_client = "dhcpcd" + dhcp_cmd = "dhcpcd" + dhcp_release_cmd = "-k" + + + if not utils_package.package_install(["tmux", dhcp_client], session): raise exceptions.TestError("Failed to install the required packages.") res = utils_misc.cmd_status_output( @@ -4608,8 +4620,8 @@ def create_ovs_bridge(ovs_bridge_name, session=None, ignore_status=False): "is installed." ) cmd = ( - "ovs-vsctl add-br {0};ovs-vsctl add-port {0} {1};dhclient -r;" - "sleep 5 ;dhclient {0}".format(ovs_bridge_name, iface_name) + "ovs-vsctl add-br {0};ovs-vsctl add-port {0} {1};{2} {3};" + "sleep 5 ;{2} {0}".format(ovs_bridge_name, iface_name, dhcp_cmd, dhcp_release_cmd) ) tmux_cmd = 'tmux -c "{}"'.format(cmd) return utils_misc.cmd_status_output( From 39300a49e913bd3a87b5f882fed884e83edd0959 Mon Sep 17 00:00:00 2001 From: Julia Graham Date: Mon, 25 Nov 2024 16:13:43 -0500 Subject: [PATCH 2/2] added -c=never for get_net_if (necessary for rhel10) --- virttest/utils_net.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/virttest/utils_net.py b/virttest/utils_net.py index 732eea8ee6..00875293e7 100644 --- a/virttest/utils_net.py +++ b/virttest/utils_net.py @@ -1426,15 +1426,16 @@ def local_runner_status(cmd, timeout=None, shell=False): return process.run(cmd, verbose=False, timeout=timeout, shell=shell).exit_status -def get_net_if(runner=local_runner, state=".*", qdisc=".*", optional=".*"): +def get_net_if(runner=local_runner, state=".*", qdisc=".*", optional=".*", ip_options=""): """ :param runner: command runner. :param state: interface state get from ip link :param qdisc: interface qdisc get from ip link :param optional: optional match for interface find + :param ip_options: optional params for ip link :return: List of network interfaces. """ - cmd = "ip link" + cmd = f"ip {ip_options} link" # As the runner converts stdout to unicode on Python2, # it has to be converted to string for struct.pack(). result = str(runner(cmd)) @@ -4594,7 +4595,7 @@ def create_ovs_bridge(ovs_bridge_name, session=None, ignore_status=False): runner = local_runner if session: runner = session.cmd - iface_name = get_net_if(runner=runner, state="UP")[0] + iface_name = get_net_if(runner=runner, state="UP", ip_options="-c=never")[0] dhcp_client = "dhcp-client" @@ -4647,7 +4648,7 @@ def delete_ovs_bridge(ovs_bridge_name, session=None, ignore_status=False): runner = local_runner if session: runner = session.cmd - iface_name = get_net_if(runner=runner, state="UP")[0] + iface_name = get_net_if(runner=runner, state="UP", ip_options="-c=never")[0] if not utils_package.package_install(["tmux", "dhcp-client"], session): raise exceptions.TestError("Failed to install the required packages.")