You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ro...@apache.org on 2021/09/22 09:17:39 UTC

[cloudstack] branch 4.15 updated: move out broken tests (#5495)

This is an automated email from the ASF dual-hosted git repository.

rohit pushed a commit to branch 4.15
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.15 by this push:
     new 3208929  move out broken tests (#5495)
3208929 is described below

commit 3208929a97019be30102e9578e0b6d90bbc2b942
Author: dahn <da...@shapeblue.com>
AuthorDate: Wed Sep 22 11:17:18 2021 +0200

    move out broken tests (#5495)
    
    Co-authored-by: Daan Hoogland <da...@onecht.net>
---
 test/integration/smoke/misc/__init__.py            |  16 --
 test/integration/smoke/misc/test_deploy_vm.py      | 257 ---------------------
 .../smoke/misc/test_escalations_templates.py       | 211 -----------------
 test/integration/smoke/misc/test_vm_ha.py          | 201 ----------------
 test/integration/smoke/misc/test_vm_sync.py        | 151 ------------
 5 files changed, 836 deletions(-)

diff --git a/test/integration/smoke/misc/__init__.py b/test/integration/smoke/misc/__init__.py
deleted file mode 100644
index 13a8339..0000000
--- a/test/integration/smoke/misc/__init__.py
+++ /dev/null
@@ -1,16 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
diff --git a/test/integration/smoke/misc/test_deploy_vm.py b/test/integration/smoke/misc/test_deploy_vm.py
deleted file mode 100644
index 071d15d..0000000
--- a/test/integration/smoke/misc/test_deploy_vm.py
+++ /dev/null
@@ -1,257 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-#Test from the Marvin - Testing in Python wiki
-
-#All tests inherit from cloudstackTestCase
-from marvin.cloudstackTestCase import cloudstackTestCase
-
-#Import Integration Libraries
-
-from marvin.codes import FAILED
-#base - contains all resources as entities and defines create, delete, list operations on them
-from marvin.lib.base import Account, VirtualMachine, ServiceOffering, SimulatorMock
-
-#utils - utility classes for common cleanup, external library wrappers etc
-from marvin.lib.utils import cleanup_resources
-
-#common - commonly used methods for all tests are listed here
-from marvin.lib.common import get_zone, get_domain, get_template
-
-from nose.plugins.attrib import attr
-
-class TestDeployVMVolumeCreationFailure(cloudstackTestCase):
-    """Test VM deploy into user account with volume creation failure
-    """
-
-    def setUp(self):
-        self.testdata =  self.testClient.getParsedTestDataConfig()
-        self.apiclient = self.testClient.getApiClient()
-
-        # Get Zone, Domain and Default Built-in template
-        self.domain = get_domain(self.apiclient)
-        self.zone = get_zone(self.apiclient, self.testClient.getZoneForTests())
-        self.testdata["mode"] = self.zone.networktype
-        self.template = get_template(self.apiclient, self.zone.id, self.testdata["ostype"])
-
-        #create a user account
-        self.account = Account.create(
-            self.apiclient,
-            self.testdata["account"],
-            domainid=self.domain.id
-        )
-        #create a service offering
-        self.service_offering = ServiceOffering.create(
-            self.apiclient,
-            self.testdata["service_offerings"]["small"]
-        )
-        #create first VM
-        self.virtual_machine = VirtualMachine.create(
-            self.apiclient,
-            self.testdata["virtual_machine"],
-            accountid=self.account.name,
-            zoneid=self.zone.id,
-            domainid=self.account.domainid,
-            serviceofferingid=self.service_offering.id,
-            templateid=self.template.id)
-        #mock to simulate volume creation failure
-        self.mock_volume_failure = SimulatorMock.create(
-            apiclient=self.apiclient,
-            command="CopyCommand",
-            count=6)
-        #build cleanup list
-        self.cleanup = [
-            self.service_offering,
-            self.account,
-            self.mock_volume_failure
-        ]
-
-
-    @attr(tags = ['advanced'], required_hardware="simulator only")
-    def test_deploy_vm_volume_creation_failure(self):
-        """Test Deploy Virtual Machine - volume creation failure and retry
-
-        # Validate the following:
-        # 1. 1st VM creation failed
-        # 2. Check there were 4 failed volume creation retries (mock count = (6-4) = 2)
-        # 3. 2nd VM creation succeeded
-        # 4. Check there were 2 failed volume creation retries (mock count = (2-2) = 0)
-        # 5. ListVM returns accurate information
-        """
-        self.virtual_machine = None
-        with self.assertRaises(Exception):
-            self.virtual_machine = VirtualMachine.create(
-                self.apiclient,
-                self.testdata["virtual_machine2"],
-                accountid=self.account.name,
-                zoneid=self.zone.id,
-                domainid=self.account.domainid,
-                serviceofferingid=self.service_offering.id,
-                templateid=self.template.id)
-
-        self.mock_volume_failure = self.mock_volume_failure.query(self.apiclient)
-        self.assertEqual(
-            self.mock_volume_failure.count,
-            2,
-            msg="Volume failure mock not executed")
-
-        self.virtual_machine = VirtualMachine.create(
-            self.apiclient,
-            self.testdata["virtual_machine3"],
-            accountid=self.account.name,
-            zoneid=self.zone.id,
-            domainid=self.account.domainid,
-            serviceofferingid=self.service_offering.id,
-            templateid=self.template.id)
-        list_vms = VirtualMachine.list(self.apiclient, id=self.virtual_machine.id)
-        self.assertTrue(isinstance(list_vms, list) and len(list_vms) > 0, msg="List VM response empty")
-        vm = list_vms[0]
-        self.assertEqual(
-            vm.id,
-            self.virtual_machine.id,
-            "VM ids do not match")
-        self.assertEqual(
-            vm.name,
-            self.virtual_machine.name,
-            "VM names do not match")
-        self.assertEqual(
-            vm.state,
-            "Running",
-            msg="VM is not in Running state")
-
-        self.mock_volume_failure = self.mock_volume_failure.query(self.apiclient)
-        self.assertEqual(
-            self.mock_volume_failure.count,
-            0,
-            msg="Volume failure mock not executed")
-
-    def tearDown(self):
-        try:
-            cleanup_resources(self.apiclient, self.cleanup)
-        except Exception as e:
-            raise Exception("Warning: Exception during cleanup : %s" % e)
-
-
-class TestDeployVMStartFailure(cloudstackTestCase):
-    """Test VM deploy into user account with start operation failure
-    """
-
-    def setUp(self):
-        self.testdata = self.testClient.getParsedTestDataConfig()
-        self.apiclient = self.testClient.getApiClient()
-
-        # Get Zone, Domain and Default Built-in template
-        self.domain = get_domain(self.apiclient)
-        self.zone = get_zone(self.apiclient, self.testClient.getZoneForTests())
-        self.testdata["mode"] = self.zone.networktype
-        self.template = get_template(self.apiclient, self.zone.id, self.testdata["ostype"])
-
-        #create a user account
-        self.account = Account.create(
-            self.apiclient,
-            self.testdata["account"],
-            domainid=self.domain.id
-        )
-        #create a service offering
-        self.service_offering = ServiceOffering.create(
-            self.apiclient,
-            self.testdata["service_offerings"]["small"]
-        )
-        #create first VM
-        self.virtual_machine = VirtualMachine.create(
-            self.apiclient,
-            self.testdata["virtual_machine"],
-            accountid=self.account.name,
-            zoneid=self.zone.id,
-            domainid=self.account.domainid,
-            serviceofferingid=self.service_offering.id,
-            templateid=self.template.id)
-        #mock to simulate vm start failure
-        self.mock_start_failure = SimulatorMock.create(
-            apiclient=self.apiclient,
-            command="StartCommand",
-            count=6)
-        #build cleanup list
-        self.cleanup = [
-            self.service_offering,
-            self.account,
-            self.mock_start_failure
-        ]
-
-    @attr(tags = ['advanced'], required_hardware="simulator only")
-    def test_deploy_vm_start_failure(self):
-        """Test Deploy Virtual Machine - start operation failure and retry
-
-        # Validate the following:
-        # 1. 1st VM creation failed
-        # 2. Check there were 4 failed start operation retries (mock count = (6-4) = 2)
-        # 3. 2nd VM creation succeeded
-        # 4. Check there were 2 failed start operation retries (mock count = (2-2) = 0)
-        # 5. ListVM returns accurate information
-        """
-        self.virtual_machine = None
-        with self.assertRaises(Exception):
-            self.virtual_machine = VirtualMachine.create(
-                self.apiclient,
-                self.testdata["virtual_machine2"],
-                accountid=self.account.name,
-                zoneid=self.zone.id,
-                domainid=self.account.domainid,
-                serviceofferingid=self.service_offering.id,
-                templateid=self.template.id)
-
-        self.mock_start_failure = self.mock_start_failure.query(self.apiclient)
-        self.assertEqual(
-            self.mock_start_failure.count,
-            2,
-            msg="Start failure mock not executed")
-
-        self.virtual_machine = VirtualMachine.create(
-            self.apiclient,
-            self.testdata["virtual_machine3"],
-            accountid=self.account.name,
-            zoneid=self.zone.id,
-            domainid=self.account.domainid,
-            serviceofferingid=self.service_offering.id,
-            templateid=self.template.id)
-        list_vms = VirtualMachine.list(self.apiclient, id=self.virtual_machine.id)
-        self.assertTrue(isinstance(list_vms, list) and len(list_vms) > 0, msg="List VM response empty")
-        vm = list_vms[0]
-        self.assertEqual(
-            vm.id,
-            self.virtual_machine.id,
-            "VM ids do not match")
-        self.assertEqual(
-            vm.name,
-            self.virtual_machine.name,
-            "VM names do not match")
-        self.assertEqual(
-            vm.state,
-            "Running",
-            msg="VM is not in Running state")
-
-        self.mock_start_failure = self.mock_start_failure.query(self.apiclient)
-        self.assertEqual(
-            self.mock_start_failure.count,
-            0,
-            msg="Start failure mock not executed")
-
-    def tearDown(self):
-        try:
-            cleanup_resources(self.apiclient, self.cleanup)
-        except Exception as e:
-            raise Exception("Warning: Exception during cleanup : %s" % e)
diff --git a/test/integration/smoke/misc/test_escalations_templates.py b/test/integration/smoke/misc/test_escalations_templates.py
deleted file mode 100644
index 40a983b..0000000
--- a/test/integration/smoke/misc/test_escalations_templates.py
+++ /dev/null
@@ -1,211 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-#Test from the Marvin - Testing in Python wiki
-
-#All tests inherit from cloudstackTestCase
-from marvin.cloudstackTestCase import cloudstackTestCase
-
-#Import Integration Libraries
-
-#base - contains all resources as entities and defines create, delete, list operations on them
-from marvin.lib.base import (
-                             Account,
-                             VirtualMachine,
-                             Volume,
-                             ServiceOffering,
-                             Configurations,
-                             DiskOffering,
-                             Template)
-
-#utils - utility classes for common cleanup, external library wrappers etc
-from marvin.lib.utils import cleanup_resources, validateList
-
-#common - commonly used methods for all tests are listed here
-from marvin.lib.common import get_zone, get_domain, get_template
-from marvin.codes import PASS
-
-from nose.plugins.attrib import attr
-import time
-
-
-class TestTemplates(cloudstackTestCase):
-
-    @classmethod
-    def setUpClass(cls):
-        try:
-            cls._cleanup = []
-            cls.testClient = super(TestTemplates, cls).getClsTestClient()
-            cls.api_client = cls.testClient.getApiClient()
-            cls.services = cls.testClient.getParsedTestDataConfig()
-            # Get Domain, Zone, Template
-            cls.domain = get_domain(cls.api_client)
-            cls.zone = get_zone(
-                cls.api_client,
-                cls.testClient.getZoneForTests())
-            cls.template = get_template(
-                cls.api_client,
-                cls.zone.id,
-                cls.services["ostype"]
-            )
-            cls.services["template"]["ostypeid"] = cls.template.ostypeid
-            cls.services["template"]["isextractable"] = 'True'
-            if cls.zone.localstorageenabled:
-                cls.storagetype = 'local'
-                cls.services["service_offerings"][
-                    "tiny"]["storagetype"] = 'local'
-                cls.services["disk_offering"]["storagetype"] = 'local'
-            else:
-                cls.storagetype = 'shared'
-                cls.services["service_offerings"][
-                    "tiny"]["storagetype"] = 'shared'
-                cls.services["disk_offering"]["storagetype"] = 'shared'
-
-            cls.services['mode'] = cls.zone.networktype
-            cls.services["virtual_machine"][
-                "hypervisor"] = cls.testClient.getHypervisorInfo()
-            cls.services["virtual_machine"]["zoneid"] = cls.zone.id
-            cls.services["virtual_machine"]["template"] = cls.template.id
-            cls.services["custom_volume"]["zoneid"] = cls.zone.id
-            # Creating Disk offering, Service Offering and Account
-            cls.disk_offering = DiskOffering.create(
-                cls.api_client,
-                cls.services["disk_offering"]
-            )
-            cls.service_offering = ServiceOffering.create(
-                cls.api_client,
-                cls.services["service_offerings"]["tiny"]
-            )
-            cls.account = Account.create(
-                cls.api_client,
-                cls.services["account"],
-                domainid=cls.domain.id
-            )
-            # Getting authentication for user in newly created Account
-            cls.user = cls.account.user[0]
-            cls.userapiclient = cls.testClient.getUserApiClient(cls.user.username, cls.domain.name)
-            cls._cleanup.append(cls.disk_offering)
-            cls._cleanup.append(cls.service_offering)
-            cls._cleanup.append(cls.account)
-        except Exception as e:
-            cls.tearDownClass()
-            raise Exception("Warning: Exception in setup : %s" % e)
-        return
-
-    @classmethod
-    def tearDownClass(cls):
-        try:
-            cleanup_resources(cls.api_client, cls._cleanup)
-        except Exception as e:
-            raise Exception("Warning: Exception during cleanup : %s" % e)
-
-    def setUp(self):
-        self.apiClient = self.testClient.getApiClient()
-        self.cleanup = []
-        return
-
-    def tearDown(self):
-        #Clean up, terminate the created volumes
-        cleanup_resources(self.apiClient, self.cleanup)
-        return
-
-    @attr(tags=["advanced", "advancedsg", "sg"], required_hardware='true')
-    def test01_template_download_URL_expire(self):
-        """
-        @Desc:Template files are deleted from secondary storage after download URL expires
-        Step1:Deploy vm with default cent os template
-        Step2:Stop the vm
-        Step3:Create template from the vm's root volume
-        Step4:Extract Template and wait for the download url to expire
-        Step5:Deploy another vm with the template created at Step3
-        Step6:Verify that vm deployment succeeds
-        """
-        params = ['extract.url.expiration.interval', 'extract.url.cleanup.interval']
-        wait_time = 0
-        for param in params:
-            config = Configurations.list(
-                self.apiClient,
-                name=param,
-                )
-            self.assertEqual(validateList(config)[0], PASS, "Config list returned invalid response")
-            wait_time = wait_time+int(config[0].value)
-        self.debug("Total wait time for url expiry: %s" % wait_time)
-        # Creating Virtual Machine
-        self.virtual_machine = VirtualMachine.create(
-            self.userapiclient,
-            self.services["virtual_machine"],
-            accountid=self.account.name,
-            domainid=self.account.domainid,
-            serviceofferingid=self.service_offering.id,
-            )
-        self.assertIsNotNone(self.virtual_machine, "Virtual Machine creation failed")
-        self.cleanup.append(self.virtual_machine)
-        #Stop virtual machine
-        self.virtual_machine.stop(self.userapiclient)
-        list_volume = Volume.list(
-            self.userapiclient,
-            virtualmachineid=self.virtual_machine.id,
-            type='ROOT',
-            listall=True
-        )
-        self.assertEqual(validateList(list_volume)[0],
-                         PASS,
-                         "list volumes with type ROOT returned invalid list"
-        )
-        self.volume = list_volume[0]
-        self.create_template = Template.create(
-            self.userapiclient,
-            self.services["template"],
-            volumeid=self.volume.id,
-            account=self.account.name,
-            domainid=self.account.domainid
-        )
-        self.assertIsNotNone(self.create_template, "Failed to create template from root volume")
-        self.cleanup.append(self.create_template)
-        """
-        Extract template
-        """
-        try:
-            Template.extract(
-                self.userapiclient,
-                self.create_template.id,
-                'HTTP_DOWNLOAD',
-                self.zone.id
-            )
-        except Exception as e:
-            self.fail("Extract template failed with error %s" % e)
-        self.debug("Waiting for %s seconds for url to expire" % repr(wait_time+20))
-        time.sleep(wait_time+20)
-        self.debug("Waited for %s seconds for url to expire" % repr(wait_time+20))
-        """
-        Deploy vm with the template created from the volume. After url expiration interval only
-        url should be deleted not the template. To validate this deploy vm with the template
-        """
-        try:
-            self.vm = VirtualMachine.create(
-                self.userapiclient,
-                self.services["virtual_machine"],
-                accountid=self.account.name,
-                domainid=self.account.domainid,
-                serviceofferingid=self.service_offering.id,
-                templateid=self.create_template.id
-            )
-            self.cleanup.append(self.vm)
-        except Exception as e:
-            self.fail("Template is automatically deleted after URL expired.\
-                      So vm deployment failed with error: %s" % e)
-        return
diff --git a/test/integration/smoke/misc/test_vm_ha.py b/test/integration/smoke/misc/test_vm_ha.py
deleted file mode 100644
index 601354e..0000000
--- a/test/integration/smoke/misc/test_vm_ha.py
+++ /dev/null
@@ -1,201 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-#Test from the Marvin - Testing in Python wiki
-
-import time
-
-#All tests inherit from cloudstackTestCase
-from marvin.cloudstackTestCase import cloudstackTestCase
-
-#Import Integration Libraries
-
-#base - contains all resources as entities and defines create, delete, list operations on them
-from marvin.lib.base import Account, VirtualMachine, Cluster, Host, ServiceOffering, Configurations, SimulatorMock
-
-#utils - utility classes for common cleanup, external library wrappers etc
-from marvin.lib.utils import cleanup_resources, validateList
-
-#common - commonly used methods for all tests are listed here
-from marvin.lib.common import get_zone, get_domain, get_template
-from marvin.codes import PASS
-
-from nose.plugins.attrib import attr
-
-class TestDeployVMHA(cloudstackTestCase):
-    """Test VM HA
-    """
-
-    def setUp(self):
-        self.testdata = self.testClient.getParsedTestDataConfig()
-        self.apiclient = self.testClient.getApiClient()
-
-        # Get Zone, Domain and Default Built-in template
-        self.domain = get_domain(self.apiclient)
-        self.zone = get_zone(self.apiclient, self.testClient.getZoneForTests())
-
-        self.testdata["mode"] = self.zone.networktype
-        self.template = get_template(self.apiclient, self.zone.id, self.testdata["ostype"])
-
-        self.hosts = []
-        suitablecluster = None
-        clusters = Cluster.list(self.apiclient)
-        self.assertTrue(isinstance(clusters, list) and len(clusters) > 0, msg = "No clusters found")
-        for cluster in clusters:
-            self.hosts = Host.list(self.apiclient, clusterid=cluster.id, type='Routing')
-            if isinstance(self.hosts, list) and len(self.hosts) >= 2:
-                suitablecluster = cluster
-                break
-        self.assertEqual(validateList(self.hosts)[0], PASS, "hosts list validation failed")
-        if len(self.hosts) < 2:
-            self.skipTest("Atleast 2 hosts required in cluster for VM HA test")
-        #update host tags
-        for host in self.hosts:
-            Host.update(self.apiclient, id=host.id, hosttags=self.testdata["service_offerings"]["hasmall"]["hosttags"])
-
-        #create a user account
-        self.account = Account.create(
-            self.apiclient,
-            self.testdata["account"],
-            domainid=self.domain.id
-        )
-        #create a service offering
-        self.service_offering = ServiceOffering.create(
-            self.apiclient,
-            self.testdata["service_offerings"]["hasmall"]
-        )
-        #deploy ha vm
-        self.virtual_machine = VirtualMachine.create(
-            self.apiclient,
-            self.testdata["virtual_machine"],
-            accountid=self.account.name,
-            zoneid=self.zone.id,
-            domainid=self.account.domainid,
-            serviceofferingid=self.service_offering.id,
-            templateid=self.template.id
-        )
-        list_vms = VirtualMachine.list(self.apiclient, id=self.virtual_machine.id)
-        self.debug(
-            "Verify listVirtualMachines response for virtual machine: %s"\
-            % self.virtual_machine.id
-        )
-        self.assertTrue(isinstance(list_vms, list) and len(list_vms) == 1, msg = "List VM response was empty")
-        self.virtual_machine = list_vms[0]
-
-        self.mock_checkhealth = SimulatorMock.create(
-            apiclient=self.apiclient,
-            command="CheckHealthCommand",
-            zoneid=suitablecluster.zoneid,
-            podid=suitablecluster.podid,
-            clusterid=suitablecluster.id,
-            hostid=self.virtual_machine.hostid,
-            value="result:fail")
-        self.mock_ping = SimulatorMock.create(
-            apiclient=self.apiclient,
-            command="PingCommand",
-            zoneid=suitablecluster.zoneid,
-            podid=suitablecluster.podid,
-            clusterid=suitablecluster.id,
-            hostid=self.virtual_machine.hostid,
-            value="result:fail")
-        self.mock_checkvirtualmachine = SimulatorMock.create(
-            apiclient=self.apiclient,
-            command="CheckVirtualMachineCommand",
-            zoneid=suitablecluster.zoneid,
-            podid=suitablecluster.podid,
-            clusterid=suitablecluster.id,
-            hostid=self.virtual_machine.hostid,
-            value="result:fail")
-        self.mock_pingtest = SimulatorMock.create(
-            apiclient=self.apiclient,
-            command="PingTestCommand",
-            zoneid=suitablecluster.zoneid,
-            podid=suitablecluster.podid,
-            value="result:fail")
-        self.mock_checkonhost_list = []
-        for host in self.hosts:
-            if host.id != self.virtual_machine.hostid:
-                self.mock_checkonhost_list.append(SimulatorMock.create(
-                    apiclient=self.apiclient,
-                    command="CheckOnHostCommand",
-                    zoneid=suitablecluster.zoneid,
-                    podid=suitablecluster.podid,
-                    clusterid=suitablecluster.id,
-                    hostid=host.id,
-                    value="result:fail"))
-        #build cleanup list
-        self.cleanup = [
-            self.service_offering,
-            self.account,
-            self.mock_checkhealth,
-            self.mock_ping,
-            self.mock_checkvirtualmachine,
-            self.mock_pingtest
-        ]
-        self.cleanup = self.cleanup + self.mock_checkonhost_list
-
-    @attr(tags = ['advanced'], required_hardware="simulator only")
-    def test_vm_ha(self):
-        """Test VM HA
-
-        # Validate the following:
-        # VM started on other host in cluster
-        """
-
-        #wait for VM to HA
-        ping_timeout = Configurations.list(self.apiclient, name="ping.timeout")
-        ping_interval = Configurations.list(self.apiclient, name="ping.interval")
-        total_duration = int(float(ping_timeout[0].value) * float(ping_interval[0].value))
-        time.sleep(total_duration)
-
-        duration = 0
-        vm = None
-        while duration < total_duration:
-            list_vms = VirtualMachine.list(self.apiclient, id=self.virtual_machine.id)
-            self.assertTrue(isinstance(list_vms, list) and len(list_vms) == 1, msg = "List VM response was empty")
-            vm = list_vms[0]
-            if vm.hostid != self.virtual_machine.hostid and vm.state == "Running":
-                break
-            else:
-                time.sleep(10)
-                duration = duration + 10
-
-        self.assertEqual(
-            vm.id,
-            self.virtual_machine.id,
-            "VM ids do not match")
-        self.assertEqual(
-            vm.name,
-            self.virtual_machine.name,
-            "VM names do not match")
-        self.assertEqual(
-            vm.state,
-            "Running",
-            msg="VM is not in Running state")
-        self.assertNotEqual(
-            vm.hostid,
-            self.virtual_machine.hostid,
-            msg="VM is not started on another host as part of HA")
-
-    def tearDown(self):
-        try:
-            for host in self.hosts:
-                Host.update(self.apiclient, id=host.id, hosttags="")
-
-            cleanup_resources(self.apiclient, self.cleanup)
-        except Exception as e:
-            raise Exception("Warning: Exception during cleanup : %s" % e)
diff --git a/test/integration/smoke/misc/test_vm_sync.py b/test/integration/smoke/misc/test_vm_sync.py
deleted file mode 100644
index 6f2f4e9..0000000
--- a/test/integration/smoke/misc/test_vm_sync.py
+++ /dev/null
@@ -1,151 +0,0 @@
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements.  See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership.  The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License.  You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied.  See the License for the
-# specific language governing permissions and limitations
-# under the License.
-
-#Test from the Marvin - Testing in Python wiki
-
-import time
-
-#All tests inherit from cloudstackTestCase
-from marvin.cloudstackTestCase import cloudstackTestCase
-
-#Import Integration Libraries
-
-#base - contains all resources as entities and defines create, delete, list operations on them
-from marvin.lib.base import Account, VirtualMachine, Cluster, Host, ServiceOffering, Configurations, SimulatorMock
-
-#utils - utility classes for common cleanup, external library wrappers etc
-from marvin.lib.utils import cleanup_resources
-
-#common - commonly used methods for all tests are listed here
-from marvin.lib.common import get_zone, get_domain, get_template
-
-from nose.plugins.attrib import attr
-
-class TestDeployVMSync(cloudstackTestCase):
-    """Test VM Sync
-    """
-
-    def setUp(self):
-        self.testdata = self.testClient.getParsedTestDataConfig()
-        self.apiclient = self.testClient.getApiClient()
-
-        # Get Zone, Domain and Default Built-in template
-        self.domain = get_domain(self.apiclient)
-        self.zone = get_zone(self.apiclient, self.testClient.getZoneForTests())
-
-        self.testdata["mode"] = self.zone.networktype
-        self.template = get_template(self.apiclient, self.zone.id, self.testdata["ostype"])
-
-        hosts = Host.list(self.apiclient, type='Routing')
-        self.assertTrue(isinstance(hosts, list) and len(hosts) > 0, msg = "No hosts found")
-        self.host = hosts[0]
-        #update host tags
-        Host.update(self.apiclient, id=self.host.id, hosttags=self.testdata["service_offerings"]["taggedsmall"]["hosttags"])
-
-        #create a user account
-        self.account = Account.create(
-            self.apiclient,
-            self.testdata["account"],
-            domainid=self.domain.id
-        )
-        #create a service offering
-        self.service_offering = ServiceOffering.create(
-            self.apiclient,
-            self.testdata["service_offerings"]["taggedsmall"]
-        )
-        #deploy vms
-        self.vm1 = VirtualMachine.create(
-            self.apiclient,
-            self.testdata["small"],
-            accountid=self.account.name,
-            zoneid=self.zone.id,
-            domainid=self.account.domainid,
-            serviceofferingid=self.service_offering.id,
-            templateid=self.template.id
-        )
-        self.vm2 = VirtualMachine.create(
-            self.apiclient,
-            self.testdata["small"],
-            accountid=self.account.name,
-            zoneid=self.zone.id,
-            domainid=self.account.domainid,
-            serviceofferingid=self.service_offering.id,
-            templateid=self.template.id
-        )
-        self.vm3 = VirtualMachine.create(
-            self.apiclient,
-            self.testdata["small"],
-            accountid=self.account.name,
-            zoneid=self.zone.id,
-            domainid=self.account.domainid,
-            serviceofferingid=self.service_offering.id,
-            templateid=self.template.id
-        )
-        list_vms = VirtualMachine.list(self.apiclient, ids=[self.vm1.id, self.vm2.id, self.vm3.id], listAll=True)
-        self.assertTrue(isinstance(list_vms, list) and len(list_vms) == 3, msg = "List VM response is empty")
-        clusters = Cluster.list(self.apiclient, id=self.host.clusterid)
-        self.assertTrue(isinstance(clusters, list) and len(clusters) > 0, msg = "Cluster not found")
-
-        json_response = '{"com.cloud.agent.api.PingRoutingWithNwGroupsCommand":{"newGroupStates":{},"newStates":{},"_hostVmStateReport":{"%s":{"state":"PowerOn","host":"%s"},"%s":{"state":"PowerOff","host":"%s"}},"_gatewayAccessible":true,"_vnetAccessible":true,"hostType":"Routing","hostId":0,"contextMap":{},"wait":0}}'
-        json_response = json_response%(self.vm1.instancename, self.host.name, self.vm2.instancename, self.host.name)
-
-        #create a mock to simulate vm1 as power-on, vm2 as power-off and vm3 as missing
-        self.mock_ping = SimulatorMock.create(
-            apiclient=self.apiclient,
-            command="PingRoutingWithNwGroupsCommand",
-            zoneid=self.zone.id,
-            podid=clusters[0].podid,
-            clusterid=clusters[0].id,
-            hostid=self.host.id,
-            value='',
-            jsonresponse=json_response,
-            method='POST')
-
-        #build cleanup list
-        self.cleanup = [
-            self.service_offering,
-            self.account,
-            self.mock_ping
-        ]
-
-    @attr(tags = ['advanced'], required_hardware="simulator only")
-    def test_vm_sync(self):
-        """Test VM Sync
-
-        # Validate the following:
-        # vm1 should be running, vm2 should be stopped as power report says PowerOff, vm3 should be stopped as missing from power report
-        """
-
-        #wait for vmsync to happen
-        ping_interval = Configurations.list(self.apiclient, name="ping.interval")
-        total_duration = int(float(ping_interval[0].value) * 3.2)
-        time.sleep(total_duration)
-
-        list_vms = VirtualMachine.list(self.apiclient, ids=[self.vm1.id, self.vm2.id, self.vm3.id], listAll=True)
-        self.assertTrue(isinstance(list_vms, list) and len(list_vms) == 3, msg = "List VM response is empty")
-        for vm in list_vms:        
-            if vm.id == self.vm1.id:
-                self.assertTrue(vm.state == "Running", msg = "VM {0} is expected to be in running state".format(vm.name))
-            elif vm.id == self.vm2.id or vm.id == self.vm3.id:
-                self.assertTrue(vm.state == "Stopped", msg = "VM {0} is expected to be in stopped state".format(vm.name))
-
-    def tearDown(self):
-        try:
-            Host.update(self.apiclient, id=self.host.id, hosttags="")
-            cleanup_resources(self.apiclient, self.cleanup)
-        except Exception as e:
-            self.debug("Warning! Exception in tearDown: %s" % e)