From: Yiqiao Pu<[email protected]>
Make kvm_vm create vm following the parameters, not the env,
otherwise the cases runs in a queue will create vm always
follow the first case's nic configuration.
Signed-off-by: Yiqiao Pu<[email protected]>
---
client/tests/virt/virttest/kvm_vm.py | 26 +++++++++++++++++++++++---
1 file changed, 23 insertions(+), 3 deletions(-)
diff --git a/client/tests/virt/virttest/kvm_vm.py
b/client/tests/virt/virttest/kvm_vm.py
index 98dad8e..18f107c 100644
--- a/client/tests/virt/virttest/kvm_vm.py
+++ b/client/tests/virt/virttest/kvm_vm.py
@@ -904,6 +904,11 @@ class VM(virt_vm.BaseVM):
# Clone this VM using the new params
vm = self.clone(name, params, root_dir, copy_state=True)
+ # Update the virtnet with params
+ params_virtnet = utils_misc.VirtNet(params, name,
self.instance)
+ if vm.virtnet != params_virtnet:
+ vm.virtnet = params_virtnet
+
qemu_binary = utils_misc.get_path(os.path.join(root_dir,
params.get("vm_type")),
params.get("qemu_binary", "qemu"))
@@ -1435,6 +1440,10 @@ class VM(virt_vm.BaseVM):
name = self.name
params = self.params
root_dir = self.root_dir
+ # Update the virtnet with params
+ params_virtnet = utils_misc.VirtNet(params, name,
self.instance)
+ if self.virtnet != params_virtnet:
+ self.virtnet = params_virtnet
# Verify the md5sum of the ISO images
for cdrom in params.objects("cdroms"):
@@ -2619,11 +2628,22 @@ class VM(virt_vm.BaseVM):
"""
if (self.__make_qemu_command() !=
self.__make_qemu_command(name, params, basedir)):
- logging.debug("VM params in env don't match requested,
restarting.")
- return True
+ restart = True
+ else:
+ for i, nic in enumerate(params.objects('nics')):
+ if (self.virtnet[i]['netdst'] !=
+ params.object_params('nic').get('netdst')):
+ restart = True
+ else:
+ restart = False
+
+ if restart:
+ logging.debug("VM params in env don't match requested, "
+ "restarting.")
else:
logging.debug("VM params in env do match requested,
continuing.")
- return False
+
+ return restart
def pause(self):
"""