summaryrefslogtreecommitdiffstats
path: root/plugins/livestatus.py
diff options
context:
space:
mode:
authorSahina Bose <sabose@redhat.com>2014-03-14 12:49:59 +0530
committerBala.FA <barumuga@redhat.com>2014-04-29 10:21:36 +0530
commitad004f45088ee81723b2a2420b3bce01f0bd845b (patch)
tree126104f6a84140b5f459b44d641e94ae4376d3d9 /plugins/livestatus.py
parent998e1f9ef43f8fd6e2a7a3722bfd4f3f734c450d (diff)
plugins: Plugin to check the cluster utilization
This plugin sums up the volume utilization outputs in a cluster Added a utils livestatus for common code related to mk_livestatus Added constants for livestatussocket path Change-Id: Id665ad3aaa1140e54c831d721ee874421ae84fa3 Signed-off-by: Sahina Bose <sabose@redhat.com> Reviewed-on: https://cuckoo.blr.redhat.com:8443/10 Reviewed-by: Bala FA <barumuga@redhat.com>
Diffstat (limited to 'plugins/livestatus.py')
-rw-r--r--plugins/livestatus.py48
1 files changed, 48 insertions, 0 deletions
diff --git a/plugins/livestatus.py b/plugins/livestatus.py
new file mode 100644
index 0000000..ce546ce
--- /dev/null
+++ b/plugins/livestatus.py
@@ -0,0 +1,48 @@
+#!/usr/bin/python
+#
+# livestatus.py
+# Utils to query livestatus
+#
+# Copyright (C) 2014 Red Hat Inc
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+#
+
+import socket
+from plugins import constants
+
+_socketPath = constants.LIVESTATUS_SOCKETPATH
+
+
+def readLiveStatus(cmd):
+ # Change the default separators to
+ # Linefeed for row, | for columns,
+ # comma for lists such as contacts, semicolon for lists such as hosts
+ cmd += "\nSeparators: 10 124 44 59"
+ s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
+ s.connect(_socketPath)
+
+ # Write command to socket
+ s.send(cmd)
+
+ # Close socket
+ s.shutdown(socket.SHUT_WR)
+
+ # Read the answer
+ answer = s.recv(1000)
+ # Parse the answer into a table
+ table = [line.split('|') for line in answer.split('\n')[:-1]]
+
+ return table