Skip to content

Commit cb3048b

Browse files
committed
add case for virtnetworkd not block host shutdown
xxxx-304214:virtnetworkd should not block host OS shutdown when a virtual network is active Signed-off-by: nanli <[email protected]>
1 parent bf32062 commit cb3048b

File tree

2 files changed

+93
-0
lines changed

2 files changed

+93
-0
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
- virtual_network.network.block_test:
2+
type = virtnetworkd_unblock_systemd_inibit
3+
start_vm = 'no'
4+
take_regular_screendumps = no
5+
cmd = "systemd-inhibit"
6+
check_pattern = "virtnetworkd"
7+
func_supported_since_libvirt_ver = (10, 10, 0)
8+
variants service:
9+
- virtnetworkd_unblock_systemd_inibit:
10+
variants preset_net:
11+
- default_net:
12+
net_name = "default"
13+
- define_net:
14+
net_name = "network_conn"
15+
forward = "'forward': {'mode': 'route'}"
16+
ipv4_attrs = {'netmask': '255.255.255.0', 'address': '192.168.144.1', 'dhcp_ranges': {'attrs': {'end': '192.168.144.254', 'start': '192.168.144.2'}}}
17+
network_attrs = {'name': '${net_name}', ${forward}, 'ips': [${ipv4_attrs}]}
18+
variants network_states:
19+
- active_net:
20+
- inactive_net:
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2+
#
3+
# Copyright Redhat
4+
#
5+
# SPDX-License-Identifier: GPL-2.0
6+
7+
# Author: Nannan Li<[email protected]>
8+
#
9+
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
10+
import re
11+
12+
from avocado.utils import process
13+
14+
from virttest import libvirt_version
15+
from virttest import virsh
16+
from virttest.libvirt_xml.network_xml import NetworkXML
17+
from virttest.utils_libvirt import libvirt_network
18+
19+
20+
def run(test, params, env):
21+
"""
22+
Test virtnetworkd should not block host OS shutdown.
23+
"""
24+
def setup_test():
25+
"""
26+
Prepare network and it's status.
27+
"""
28+
test.log.info("TEST_SETUP: Prepare network and it's status.")
29+
if preset_net == "define_net":
30+
libvirt_network.create_or_del_network(network_attrs)
31+
test.log.debug(f'{virsh.net_dumpxml(net_name).stdout_text}')
32+
33+
if network_states == "inactive_net":
34+
virsh.net_destroy(net_name, debug=True)
35+
36+
def run_test():
37+
"""
38+
Check systemd-inhibit for virtnetworkd not existing in the list.
39+
"""
40+
test.log.info("TEST_STEP1:Check systemd-inhibit")
41+
result = process.run(cmd, shell=True).stdout_text.strip()
42+
if re.findall(check_pattern, result):
43+
test.fail("Expected no '%s'", check_pattern)
44+
test.log.debug("Check systemd-inhibit PASS")
45+
46+
def teardown_test():
47+
"""
48+
Recover network.
49+
"""
50+
test.log.info("TEST_TEARDOWN: Recover network.")
51+
if preset_net == "default_net":
52+
bk_net.sync()
53+
libvirt_network.ensure_default_network()
54+
else:
55+
libvirt_network.create_or_del_network(network_attrs, is_del=True)
56+
57+
libvirt_version.is_libvirt_feature_supported(params)
58+
net_name = params.get("net_name")
59+
preset_net = params.get("preset_net")
60+
if preset_net == "default_net":
61+
default_net = NetworkXML.new_from_net_dumpxml(net_name)
62+
bk_net = default_net.copy()
63+
cmd = params.get("cmd")
64+
network_states = params.get("network_states")
65+
network_attrs = eval(params.get('network_attrs', '{}'))
66+
check_pattern = params.get("check_pattern")
67+
68+
try:
69+
setup_test()
70+
run_test()
71+
72+
finally:
73+
teardown_test()

0 commit comments

Comments
 (0)