Mon, May 25, 2015 at 04:32:55PM CEST, olichtne(a)redhat.com wrote:
From: Ondrej Lichtner <olichtne(a)redhat.com>
This commit changes the 'hello' Slave RPC method. Until now the method
only returned the string 'hello', but from now it also returns
information about the slave such as:
* nm_running
* kernel_release
* redhat_release
This could be extended with more relevant information in the future.
Signed-off-by: Ondrej Lichtner <olichtne(a)redhat.com>
---
lnst/Controller/Machine.py | 5 ++++-
lnst/Slave/NetTestSlave.py | 12 +++++++++++-
2 files changed, 15 insertions(+), 2 deletions(-)
diff --git a/lnst/Controller/Machine.py b/lnst/Controller/Machine.py
index c4f5aa6..dd4c5f9 100644
--- a/lnst/Controller/Machine.py
+++ b/lnst/Controller/Machine.py
@@ -51,6 +51,7 @@ class Machine(object):
def __init__(self, m_id, hostname=None, libvirt_domain=None, rpcport=None):
self._id = m_id
self._hostname = hostname
+ self._slave_desc = None
self._connection = None
self._configured = False
self._system_config = {}
@@ -179,12 +180,14 @@ class Machine(object):
connection = socket.create_connection((hostname, port))
self._msg_dispatcher.add_slave(self, connection)
- hello = self._rpc_call("hello", recipe_name)
+ hello, slave_desc = self._rpc_call("hello", recipe_name)
if hello != "hello":
msg = "Unable to establish RPC connection " \
"to machine %s, handshake failed!" % hostname
raise MachineError(msg)
+ self._slave_desc = slave_desc
+
for iface in self._interfaces:
iface.initialize()
diff --git a/lnst/Slave/NetTestSlave.py b/lnst/Slave/NetTestSlave.py
index 04e6dec..d186757 100644
--- a/lnst/Slave/NetTestSlave.py
+++ b/lnst/Slave/NetTestSlave.py
@@ -83,6 +83,7 @@ class SlaveMethods:
self._log_ctl.set_recipe(recipe_path, expand=date)
sleep(1)
+ slave_desc = {}
if check_process_running("NetworkManager"):
logging.warning("=============================================")
logging.warning("NetworkManager is running on a slave machine!")
@@ -91,7 +92,16 @@ class SlaveMethods:
else:
logging.warning("Usage of NM is disabled!")
logging.warning("=============================================")
- return "hello"
+ slave_desc["nm_running"] = True
+ else:
+ slave_desc["nm_running"] = False
+
+ k_release, _ = exec_cmd("uname -r", False, False, False)
+ r_release, _ = exec_cmd("cat /etc/redhat-release", False, False, False)
For Fedora we have /etc/fedora-release file. We should support that as
well. What happens if this file does not exist?
+ slave_desc["kernel_release"] = k_release
+ slave_desc["redhat_release"] = r_release
+
+ return ("hello", slave_desc)
def bye(self):
self.restore_system_config()
--
2.1.0
_______________________________________________
LNST-developers mailing list
LNST-developers(a)lists.fedorahosted.org
https://lists.fedorahosted.org/mailman/listinfo/lnst-developers