summaryrefslogtreecommitdiffstats
path: root/vstf/vstf/agent/env/driver_plugins/origin_driver.py
blob: 850d78517e8b19fda2ac84e8346df88e156360ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
"""
Created on 2015-10-12

@author: y00228926
"""
from vstf.agent.env.driver_plugins import model
from vstf.common.utils import check_and_rmmod, check_call


class OriginDriverPlugin(model.DriverPlugin):
    """
    implement for operating linux origin driver modules.
    """

    def __init__(self):
        """
        list all origin drivers in self.origin_drivers
        """
        self.origin_drivers = ['ixgbe', 'bnx2x', 'i40e', 'be2net', 'vhost_net']

    def clean(self):
        """clean drivers list in self.origin_drivers.
        
        """
        for mod in self.origin_drivers:
            check_and_rmmod(mod)

        check_and_rmmod('tun')
        return True

    def load(self, drivers):
        """insmod drivers
        
        :param list    drivers:list of drivers link ['ixgbe','vhost_net']
        """
        # load implicit 'tun' module dependency for vhost_net
        if 'vhost_net' in drivers:
            check_call("modprobe tun", shell=True)

        for drv in drivers:
            check_call("modprobe %s" % drv, shell=True)

        return True

    def get_supported_drivers(self):
        return self.origin_drivers