Skip to content
Snippets Groups Projects
Commit dd577a93 authored by Per Cederqvist's avatar Per Cederqvist
Browse files

Added -n option, to specify the host name used for lookup in cfg file.

parent d8f91b9e
No related branches found
No related tags found
No related merge requests found
...@@ -20,30 +20,30 @@ def ok(hostname, msg): ...@@ -20,30 +20,30 @@ def ok(hostname, msg):
print "OK - %s: %s" % (hostname, msg) print "OK - %s: %s" % (hostname, msg)
sys.exit(0) sys.exit(0)
def check_no_server(hostname, port, cfg): def check_no_server(hostaddr, port, cfg, hostname):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.settimeout(7) s.settimeout(7)
try: try:
s.connect((hostname, port)) s.connect((hostaddr, port))
except socket.gaierror, err: except socket.gaierror, err:
warning(hostname, err[1]) warning(hostaddr, err[1])
except socket.timeout: except socket.timeout:
if cfg.require(hostname): if cfg.require(hostname):
critical(hostname, "timeout connecting to server") critical(hostaddr, "timeout connecting to server")
else: else:
ok(hostname, "timeout connecting to server") ok(hostaddr, "timeout connecting to server")
except socket.error, e: except socket.error, e:
if e[0] == errno.ECONNREFUSED: if e[0] == errno.ECONNREFUSED:
if cfg.require(hostname): if cfg.require(hostname):
critical(hostname, e[1]) critical(hostaddr, e[1])
else: else:
ok(hostname, e[1]) ok(hostaddr, e[1])
unknown(hostname, e[1]) unknown(hostaddr, e[1])
if cfg.allowed(hostname): if cfg.allowed(hostname):
ok(hostname, "connection succeeded") ok(hostaddr, "connection succeeded")
else: else:
critical(hostname, "connection succeeded") critical(hostaddr, "connection succeeded")
class CfgFile(object): class CfgFile(object):
def __init__(self, fn=None): def __init__(self, fn=None):
...@@ -69,33 +69,40 @@ def usage(): ...@@ -69,33 +69,40 @@ def usage():
def main(): def main():
import getopt import getopt
host = None hostaddr = None
port = None port = None
cfg = None cfg = None
hostname = None
opts, args = getopt.getopt(sys.argv[1:], "H:p:c:", opts, args = getopt.getopt(sys.argv[1:], "H:p:c:n:",
["host=", "port=", "cfg="]) ["host=", "port=", "cfg=",
"name="])
for opt, val in opts: for opt, val in opts:
if opt in ("-H", "--host"): if opt in ("-H", "--host"):
host = val hostaddr = val
elif opt in ("-p", "--port"): elif opt in ("-p", "--port"):
port = int(val) port = int(val)
elif opt in ("-c", "--cfg"): elif opt in ("-c", "--cfg"):
cfg = val cfg = val
elif opt in ("-n", "--name"):
hostname = val
if host is None and port is None and len(args) == 2: if hostaddr is None and port is None and len(args) == 2:
host = args[0] hostaddr = args[0]
port = int(args[1]) port = int(args[1])
if host is None or port is None: if hostaddr is None or port is None:
usage() usage()
if cfg is not None: if cfg is not None:
cfg_data = CfgFile(cfg) cfg_data = CfgFile(cfg)
else: else:
cfg_data = CfgFile() cfg_data = CfgFile()
if hostname is None:
hostname = hostaddr
check_no_server(host, port, cfg_data) check_no_server(hostaddr, port, cfg_data, hostname)
if __name__ == '__main__': if __name__ == '__main__':
main() main()
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment