def test_pickleing(self): """ Test pickling for example save vm env. """ m = factory(AA, system_version=0, qemu_version=0)() mm = factory(BB, qemu_version=3)() f = open("/tmp/pick", "w+") cPickle.dump(m, f, cPickle.HIGHEST_PROTOCOL) cPickle.dump(mm, f, cPickle.HIGHEST_PROTOCOL) f.close() # Delete classes for ensure that pickel works correctly. name = m.__class__.__name__ del m del globals()[name] name = mm.__class__.__name__ del mm del globals()[name] f = open("/tmp/pick", "r+") c = cPickle.load(f) cc = cPickle.load(f) f.close()
def test_complicated_multiple_create_params(self): self.god.stub_function(VM, "func3") self.god.stub_function(VM1, "func3") VM1.func3.expect_call() mm = factory(AA, qemu_version=0, system_version=2, q_version=0)() # check class name. self.assertEqual(str(mm), "managed_AA_Sys1_Q_VM_System1") mm.func3() # call VM1.func1(m) -> VM.func1 self.god.check_playback()
def test_complicated_versioning(self): self.god.stub_function(VM, "func3") self.god.stub_function(VM1, "func3") VM1.func3.expect_call() mm = factory(AA)() # check class name. self.assertEqual(str(mm), "managed_AA_Sys1_Q1_VM1_System1") mm.func3() # call VM1.func1(m) -> VM.func1 self.god.check_playback()
def test_sharing_data_in_same_version(self): mm = factory(BB)() bb = factory(BB)() cc = factory(BB, qemu_version=0)() # Get corespond class in versionable class man[bb.__class__, VM].test_class_vm1 = 1 man[bb.__class__, BB].test_class_bb = 2 man[cc.__class__, BB].test_class_bb = 3 # check class name. self.assertEqual(bb.__class__.test_class_vm1, mm.__class__.test_class_vm1) self.assertEqual(bb.__class__.test_class_bb, mm.__class__.test_class_bb) # In class hierarchy is class which don't have to be versioned # because that first value should be equal and second one shouldn't. self.assertEqual(bb.__class__.test_class_vm1, cc.__class__.test_class_vm1) self.assertNotEqual(bb.__class__.test_class_bb, cc.__class__.test_class_bb)
def test_simple_create_by_params_v1(self): self.god.stub_function(VM, "func3") self.god.stub_function(VM1, "func3") VM1.func3.expect_call() mm = factory(BB, qemu_version=2)() # check class name. self.assertEqual(str(mm), "managed_BB_VM1") mm.func3() # call VM1.func1(m) -> VM.func1 self.assertEqual(mm.VM1_cls, "VM1") self.god.check_playback()
def __init__(self, pf_pci, vf_no=4): self.pf_pci = pf_pci self.vf_no = vf_no self.pf_pci_path = utils_misc.get_pci_path(self.pf_pci) utils_sriov.set_vf(self.pf_pci_path, 0) self.pf_iface = utils_sriov.get_pf_info_by_pci( self.pf_pci).get('iface') if not self.pf_iface: raise exceptions.TestCancel("NO available pf found.") self.br_name = self.pf_iface + '_br' self.ovs = factory(openvswitch.OpenVSwitchSystem)()
def test_simple_versioning(self): self.god.stub_function(VM, "func1") self.god.stub_function(VM1, "func2") VM1.func2.expect_call() VM.func1.expect_call() mm = factory(BB)() # check class name. self.assertEqual(str(mm), "managed_BB_VM1") mm.func2() # call BB.func2(m) -> VM1.func2 mm.func1() # call VM1.func1(m) -> VM.func1 self.god.check_playback()
def test_simple_create_by_params_v0(self): def wrap(mm): mm.VM1_cls self.god.stub_function(VM, "func3") self.god.stub_function(VM1, "func3") VM.func3.expect_call() mm = factory(BB, qemu_version=0)() # check class name. self.assertEqual(str(mm), "managed_BB_VM") mm.func3() # call VM1.func1(m) -> VM.func1 self.assertRaises(AttributeError, wrap, mm) self.god.check_playback()
def setup(self, test, params, env): self.br0_name = "br0-%s" % (utils_misc.generate_random_string(3)) while self.br0_name in utils_net.get_net_if(): self.br0_name = "br0-%s" % (utils_misc.generate_random_string(3)) self.br0_ip = params.get("bridge_ip", "192.168.250.1") self.ovs = None error.context("Try to log into guest.") self.vms = [env.get_vm(vm) for vm in params.get("vms").split()] for vm in self.vms: vm.verify_alive() error.context("Start OpenVSwitch.") self.ovs = versionable_class.factory(openvswitch.OpenVSwitchSystem)() self.ovs.init_system() self.ovs.check() error.context("Add new bridge %s." % (self.br0_name)) self.ovs.add_br(self.br0_name) utils_net.set_net_if_ip(self.br0_name, self.br0_ip) utils_net.bring_up_ifname(self.br0_name) self.dns_pidf = (utils_net.check_add_dnsmasq_to_br(self.br0_name, test.tmpdir)) error.context("Add new ports from vms %s to bridge %s." % (self.vms, self.br0_name)) for vm in self.vms: utils_net.change_iface_bridge(vm.virtnet[1], self.br0_name, self.ovs) logging.debug(self.ovs.status()) self.host = ovs_utils.Machine(src=test.srcdir) self.mvms = [ovs_utils.Machine(vm) for vm in self.vms] self.machines = [self.host] + self.mvms #ForAllP(self.mvms).cmd("dhclinet") time.sleep(5) utils_misc.ForAllP(self.machines).fill_addrs()
def setup(self, test, params, env): self.br0_name = "br0-%s" % (utils_misc.generate_random_string(3)) while self.br0_name in utils_net.get_net_if(): self.br0_name = "br0-%s" % (utils_misc.generate_random_string(3)) self.br0_ip = params.get("bridge_ip", "192.168.250.1") self.ovs = None error.context("Try to log into guest.") self.vms = [env.get_vm(vm) for vm in params.get("vms").split()] for vm in self.vms: vm.verify_alive() error.context("Start OpenVSwitch.") self.ovs = versionable_class.factory(openvswitch.OpenVSwitchSystem)() self.ovs.init_system() self.ovs.check() error.context("Add new bridge %s." % (self.br0_name)) self.ovs.add_br(self.br0_name) utils_net.set_net_if_ip(self.br0_name, self.br0_ip) utils_net.bring_up_ifname(self.br0_name) self.dns_pidf = (utils_net.check_add_dnsmasq_to_br(self.br0_name, test.tmpdir)) error.context("Add new ports from vms %s to bridge %s." % (self.vms, self.br0_name)) for vm in self.vms: utils_net.change_iface_bridge(vm.virtnet[1], self.br0_name, self.ovs) logging.debug(self.ovs.status()) self.host = ovs_utils.Machine(src=test.srcdir) self.mvms = [ovs_utils.Machine(vm) for vm in self.vms] self.machines = [self.host] + self.mvms # ForAllP(self.mvms).cmd("dhclinet") time.sleep(5) utils_misc.ForAllP(self.machines).fill_addrs()
def run(test, params, env): """ Run basic test of OpenVSwitch driver. """ _e = None ovs = None try: try: error.context("Remove all bridge from OpenVSwitch.") ovs = versionable_class.factory(openvswitch.OpenVSwitchSystem)(test.tmpdir) ovs.init_system() ovs.check() for br in ovs.list_br(): ovs.del_br(br) ovs.clean() for _ in range(int(params.get("mod_loaditer", 100))): utils.run("modprobe openvswitch") utils.run("rmmod openvswitch") except Exception: _e = sys.exc_info() raise finally: try: if ovs: if ovs.cleanup: ovs.clean() except Exception: e = sys.exc_info() if _e is None: raise else: logging.error("Cleaning function raised exception too: \n" + "".join(traceback.format_exception(e[0], e[1], e[2]))) raise _e[0], _e[1], _e[2]
def run_load_module(test, params, env): """ Run basic test of OpenVSwitch driver. """ _e = None ovs = None try: try: error.context("Remove all bridge from OpenVSwitch.") ovs = versionable_class.factory(openvswitch.OpenVSwitchSystem)( test.tmpdir) ovs.init_system() ovs.check() for br in ovs.list_br(): ovs.del_br(br) ovs.clean() for _ in range(int(params.get("mod_loaditer", 100))): utils.run("modprobe openvswitch") utils.run("rmmod openvswitch") except Exception: _e = sys.exc_info() raise finally: try: if ovs: if ovs.cleanup: ovs.clean() except Exception: e = sys.exc_info() if _e is None: raise else: logging.error( "Cleaning function raised exception too: \n" + "".join(traceback.format_exception(e[0], e[1], e[2]))) raise _e[0], _e[1], _e[2]