summaryrefslogtreecommitdiffstats
path: root/vstf/vstf/agent/env/plugins/libvirt_plugin.py
diff options
context:
space:
mode:
authorYiting.Li <liyiting@huawei.com>2015-12-22 17:11:12 -0800
committerYiting.Li <liyiting@huawei.com>2015-12-22 17:11:12 -0800
commit8f1101df131a4d3e03b377738507d88b745831c0 (patch)
tree73f140474fcec2a77c85a453f6946957ca0742d1 /vstf/vstf/agent/env/plugins/libvirt_plugin.py
parent1a24ebbda3f95600c0e7d5ed8661317a8ff7e265 (diff)
Upload the contribution of vstf as bottleneck network framework.
End to End Performance test JIRA:BOTTLENECK-29 Change-Id: Ib2c553c8b60d6cda9e7a7b52b737c9139f706ebd Signed-off-by: Yiting.Li <liyiting@huawei.com>
Diffstat (limited to 'vstf/vstf/agent/env/plugins/libvirt_plugin.py')
-rwxr-xr-xvstf/vstf/agent/env/plugins/libvirt_plugin.py66
1 files changed, 66 insertions, 0 deletions
diff --git a/vstf/vstf/agent/env/plugins/libvirt_plugin.py b/vstf/vstf/agent/env/plugins/libvirt_plugin.py
new file mode 100755
index 00000000..e7fefb6f
--- /dev/null
+++ b/vstf/vstf/agent/env/plugins/libvirt_plugin.py
@@ -0,0 +1,66 @@
+"""
+Created on 2015-7-8
+
+@author: y00228926
+"""
+import logging
+
+from vstf.common.utils import ping, my_sleep
+from vstf.agent.env.plugins.model import EnvBuilderPlugin
+from vstf.agent.env.basic.source_manager import SourceCodeManager
+from vstf.agent.env.basic.vm_manager import VMControlOperation
+from vstf.agent.env.vswitch_plugins.manager import VswitchPluginManager
+from vstf.agent.env.driver_plugins.manager import DriverPluginManager
+
+LOG = logging.getLogger(__name__)
+
+
+class Plugin(EnvBuilderPlugin):
+ def __init__(self):
+ super(Plugin, self).__init__()
+ self.vm_mgr = VMControlOperation()
+ self.vs_mgr = VswitchPluginManager()
+ self.dr_mgr = DriverPluginManager()
+
+ def clean(self):
+ self.vm_mgr.clean_all_vms()
+ self.vs_mgr.clean()
+ self.dr_mgr.clean()
+
+ def load_drivers(self):
+ drivers = self.host_cfg['drivers']
+ self.dr_mgr.load(drivers)
+
+ def create_brs(self):
+ for br_cfg in self.host_cfg['bridges']:
+ plugin = self.vs_mgr.get_vs_plugin(br_cfg['type'])
+ plugin.create_br(br_cfg)
+
+ def config_br_ports(self):
+ for vm_cfg in self.host_cfg['vms']:
+ for tap_cfg in vm_cfg['taps']:
+ plugin = self.vs_mgr.get_vs_plugin(tap_cfg['br_type'])
+ plugin.set_tap_vid(tap_cfg)
+ for br_cfg in self.host_cfg['bridges']:
+ plugin = self.vs_mgr.get_vs_plugin(br_cfg['type'])
+ plugin.set_fastlink(br_cfg)
+
+ def create_vms(self):
+ for vm_cfg in self.host_cfg['vms']:
+ self.vm_mgr.create_vm(vm_cfg)
+
+ def wait_vms(self):
+ for vm_cfg in self.host_cfg['vms']:
+ self.vm_mgr.wait_vm(vm_cfg['vm_name'])
+ self.vm_mgr.init_config_vm(vm_cfg['vm_name'])
+
+ def check_vm_connectivity(self):
+ for vm_cfg in self.host_cfg['vms']:
+ vm_ip = vm_cfg['init_config']['ctrl_ip_setting'].split('/')[0]
+ for _ in range(3):
+ ret = ping(vm_ip)
+ if ret:
+ break
+ my_sleep(3)
+ else:
+ raise Exception("ping ip:%s failed." % vm_ip)