def test_get_networks(self):
     config = TopologyReader(self.config_path)
     try:
         networks = config.get_networks()
         self.assertEqual(len(networks), len(config.networks))
         for net in config.get_networks():
             self.assertIsInstance(net, Network)
     except ConfigParser.Error as error:
         self.assertFalse(False, error.message)
     except Exception as error:
         self.assertFalse(False, error.message)
    def test_create_networks_from_config(self):
        manager = None
        config = None
        sw_name = self.rpname
        try:
            config = TopologyReader(self.config_path)
            manager = Manager.Creator(manager_address=config.manager_address,
                                      manager_user=config.manager_user,
                                      manager_password=config.manager_password)

            shared_switch = Switch(self.rpname)
            networks = config.get_networks()

            #destroy isolated networks
            if shared_switch:
                shared_switch.destroy(manager, config.host_name)

            for net in networks:
                if net.isolated:
                    Switch(self.rpname + '_' + net.name).destroy(manager, config.host_name)

            shared_switch.create(manager, config.host_name)

            for net in networks:
                if net.isolated:
                    sw_name = self.rpname + '_' + net.name
                    Switch(sw_name).create(manager, config.host_name).add_network(net, manager, config.host_name)
                else:
                    shared_switch.add_network(net, manager, config.host_name)

        except Manager.CreatorException as error:
            self.assertTrue(False, error.message)
        except Exception as error:
            self.assertTrue(False, error.message)
    def test_create_vms_from_config(self):
        manager = None
        config = None
        sw_name = 'test_switch'

        try:
            config = TopologyReader(self.config_path)
            manager = Manager.Creator(manager_address=config.manager_address,
                                      manager_user=config.manager_user,
                                      manager_password=config.manager_password)

            for net in config.get_networks():
                try:
                    if net.isolated:
                        Switch(net.name).create(manager, config.host_name).add_network(net, manager, config.host_name)
                    else:
                        Switch(sw_name).create(manager, config.host_name).add_network(net, manager, config.host_name)
                except Manager.ExistenceException:
                    pass
            try:
                ResourcePool(name=self.rpname).create(manager=manager)
            except Manager.ExistenceException:
                pass

            vms = config.get_virtual_machines()

            for vm in vms:
                try:
                    vm.create(manager=manager, resource_pool_name=self.rpname, host_name=config.host_name)
                except Manager.ExistenceException:
                    pass
                try:
                    vm.add_serial_port(manager=manager, host_address=config.host_address,
                                       host_user=config.host_user, host_password=config.host_password)
                except Manager.ExistenceException:
                    pass
        except Manager.CreatorException as error:
            self.assertTrue(False, error.message)
        except Exception as error:
            self.assertTrue(False, error.message)
        finally:
            ResourcePool(self.rpname).destroy(manager, with_vms=True)