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):
         """
-- 
1.7.11.4

_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel

Reply via email to