diff options
Diffstat (limited to 'src/health-watch.lua')
-rw-r--r-- | src/health-watch.lua | 107 |
1 files changed, 0 insertions, 107 deletions
diff --git a/src/health-watch.lua b/src/health-watch.lua deleted file mode 100644 index 2c2c32a..0000000 --- a/src/health-watch.lua +++ /dev/null @@ -1,107 +0,0 @@ --- --- rhctl --- --- Copyright (C) 2009-2015 Christian Pointner <equinox@helsinki.at> --- --- This file is part of rhctl. --- --- rhctl 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 3 of the License, or --- any later version. --- --- rhctl 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 rhctl. If not, see <http://www.gnu.org/licenses/>. --- - -package.path = package.path .. ';/usr/share/rhctl/?.lua' - -socket = require("socket") -utils = require("utils") - -old_state = {} -current_state = {} - -function state_changed() - for k,v in pairs(old_state) do - if v ~= current_state[k] then - return true - end - end - for k,v in pairs(current_state) do - if old_state[k] == nil then - return true - end - end - return false -end - -function process_cmd(message) - local exps = { hs = "^Health: (%a+)$", mc = "^Master: (%a+)$", sc = "^Standby: (%a+)$", hbm = "^Hearbeat Master: (%a+, %a+)$", hbs = "^Hearbeat Standby: (%a+, %a+)$" } - for key, exp in pairs(exps) do - local state = string.match(message, exp) - if(state) then - if(key == 'hs') then - current_state = {} - end - current_state[key] = state - end - end - - if(current_state['hbs'] ~= nil) then - if(state_changed()) then - body = "RHCTL Health Output:\n\n" - body = body .. "Health: " .. current_state['hs'] .. "\n" - body = body .. "Master: " .. current_state['mc'] .. "\n" - body = body .. "Standby: " .. current_state['sc'] .. "\n" - body = body .. "Master Hearbeat: " .. current_state['hbm'] .. "\n" - body = body .. "Standby Hearbeat: " .. current_state['hbs'] .. "\n" - utils.send_mail("logs@helsinki.at", "[RHCTL] health: " .. current_state['hs'], body) - old_state = current_state - end - end - - return 0 -end - -function main_loop(opt) - log.printf(log.NOTICE, "main_loop started") - local sig = signal.init() - local cmdfd = cmd.init() - - cmd.send_string("listen health"); - cmd.send_string("health"); - - local return_value = 0 - while return_value == 0 do - local readable, _, err = socket.select({ sig , cmdfd }, nil) - if(err) then - log.printf(log.ERROR, "select returned with error: %s", err) - return_value = -1 - else - for _, input in ipairs(readable) do - if(input == sig) then - return_value = signal.handle() - if(return_value == 1) then break end - else - if(input == cmdfd) then - return_value = cmd.recv_data(process_cmd) - if(return_value ~= 0) then break end - else - log.printf(log.ERROR, "select returned invalid handle??") - return_value = -1 - break; - end - end - end - end - end - - signal.stop() - return return_value -end |