diff options
Diffstat (limited to 'vswitches')
-rw-r--r-- | vswitches/ovs.py | 8 | ||||
-rw-r--r-- | vswitches/vpp_dpdk_vhost.py | 21 | ||||
-rw-r--r-- | vswitches/vswitch.py | 8 |
3 files changed, 36 insertions, 1 deletions
diff --git a/vswitches/ovs.py b/vswitches/ovs.py index b6d64fb7..12620e22 100644 --- a/vswitches/ovs.py +++ b/vswitches/ovs.py @@ -95,6 +95,14 @@ class IVSwitchOvs(IVSwitch, tasks.Process): """ pass + # Method could be a function + # pylint: disable=no-self-use + def get_version(self): + """See IVswitch for general description + """ + # OVS version can be read offline + return [] + def stop(self): """See IVswitch for general description """ diff --git a/vswitches/vpp_dpdk_vhost.py b/vswitches/vpp_dpdk_vhost.py index d0d9e2ac..68375538 100644 --- a/vswitches/vpp_dpdk_vhost.py +++ b/vswitches/vpp_dpdk_vhost.py @@ -25,6 +25,7 @@ from src.dpdk import dpdk from conf import settings as S from vswitches.vswitch import IVSwitch from tools import tasks +from tools.version import Version # pylint: disable=too-many-public-methods class VppDpdkVhost(IVSwitch, tasks.Process): @@ -110,7 +111,6 @@ class VppDpdkVhost(IVSwitch, tasks.Process): self._logger.debug("VPP CLI args: %s", cli_args) return cli_args - def start(self): """Activates DPDK kernel modules and starts VPP @@ -156,6 +156,25 @@ class VppDpdkVhost(IVSwitch, tasks.Process): # has not been terminated yet tasks.Process.kill(self, signal, sleep) + def get_version(self): + """See IVswitch for general description + """ + versions = [] + output = self.run_vppctl(['show', 'version', 'verbose']) + if output[1]: + self._logger.warning("VPP version can not be read!") + return versions + + match = re.search(r'Version:\s*(.+)', output[0]) + if match: + versions.append(Version(S.getValue('VSWITCH'), match.group(1))) + + match = re.search(r'DPDK Version:\s*DPDK (.+)', output[0]) + if match: + versions.append(Version('dpdk', match.group(1))) + + return versions + def add_switch(self, switch_name, dummy_params=None): """See IVswitch for general description """ diff --git a/vswitches/vswitch.py b/vswitches/vswitch.py index 893bd1ff..dd69e6d9 100644 --- a/vswitches/vswitch.py +++ b/vswitches/vswitch.py @@ -20,6 +20,14 @@ class IVSwitch(object): Other methods are called only between start() and stop() """ + def get_version(self): + """Return version of vSwitch and DPDK (if used by vSwitch) + This method should be implemented in case, that version + of vswitch or DPDK can be read only during vSwitch runtime. + Otherwise it can be implemented inside tools/systeminfo.py. + """ + raise NotImplementedError() + def start(self): """Start the vSwitch |