summaryrefslogtreecommitdiffstats
path: root/vswitches
diff options
context:
space:
mode:
authorMartin Klozik <martinx.klozik@intel.com>2017-03-27 10:42:34 +0000
committerGerrit Code Review <gerrit@opnfv.org>2017-03-27 10:42:34 +0000
commitb757c8ba94b9d8664808a39d7517a11651cc0188 (patch)
tree8278a4a0aadfcd908d13dfbd36abaa8ace630a84 /vswitches
parent725033715118bc318fdd6aa3745c2c07ca714086 (diff)
parent00ae14186c5292c04766321d02fc7f82668ee066 (diff)
Merge "vpp: Reporting update related to VPP"
Diffstat (limited to 'vswitches')
-rw-r--r--vswitches/ovs.py8
-rw-r--r--vswitches/vpp_dpdk_vhost.py21
-rw-r--r--vswitches/vswitch.py8
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