When major versions differ, Controller execution is ended with an error.
If only minor versions differ, warning message is logged and test is
executed.
Signed-off-by: Jiri Prochazka <jprochaz(a)redhat.com>
---
lnst/Controller/Machine.py | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/lnst/Controller/Machine.py b/lnst/Controller/Machine.py
index 14a8061..5340804 100644
--- a/lnst/Controller/Machine.py
+++ b/lnst/Controller/Machine.py
@@ -21,7 +21,7 @@ from xmlrpclib import Binary
from lnst.Common.Config import lnst_config
from lnst.Common.NetUtils import normalize_hwaddr
from lnst.Common.Utils import wait_for, create_tar_archive
-from lnst.Common.Utils import check_process_running
+from lnst.Common.Utils import check_process_running, LNST_VERSION
from lnst.Common.NetTestCommand import DEFAULT_TIMEOUT
# conditional support for libvirt
@@ -193,6 +193,22 @@ class Machine(object):
"to machine %s, handshake failed!" % hostname
raise MachineError(msg)
+ # Check if slave_desc["lnst_version"] exists
+ if "lnst_version" not in slave_desc:
+ msg = "Machine %s (%s) uses version older than 8.0"\
+ % (m_id, hostname)
+ logging.error(msg)
+ raise MachineError(msg)
+ # Major version comparement
+ elif int(slave_desc["lnst_version"]) != int(LNST_VERSION):
+ msg = "Major version differs on machine %s (%s)" % (m_id,
hostname)
+ logging.error(msg)
+ raise MachineError(msg)
+ # Minor version comparement
+ elif slave_desc["lnst_version"] != LNST_VERSION:
+ logging.warning("Minor version differs on machine %s (%s)"
+ % (m_id, hostname))
+
self._slave_desc = slave_desc
for iface in self._interfaces:
--
2.4.3