File: //lib/python2.7/site-packages/lap/http.py
import base64
import urllib2
import socket
def __run__(params):
try:
br = urllib2.Request(params.get("url"))
if params.get("host_header"):
br.add_header("Host", str(params.get("host_header")).strip())
if params.get("basicauth_user"):
br.add_header("Authorization", "Basic %s" % base64.encodestring("%s:%s" %\
(params.get("basicauth_user", ""), params.get("basicauth_passwd", ""))).strip())
tokens = params.get("token", "").strip()
timeout = params.get("timeout", 5)
socket.setdefaulttimeout(timeout)
reverse_match = params.get("reverse_token", False)
result = urllib2.urlopen(br).read().strip()
if tokens:
status = 0
for token in tokens.split("|"):
if token in result:
status = 1
if reverse_match:
if status: raise NameError("token %s is present, found %s" % (tokens, result))
else:
if not status: raise NameError("token %s is missing, found %s" % (tokens, result))
except socket.timeout:
return [2, "CRITICAL: Socket timeout"]
except socket.gaierror:
return [2, "CRITICAL: Unable to resolve domain"]
except urllib2.HTTPError, e:
return [2,"CRITICAL: HTTPError - %s" % e]
except Exception, e:
return [2,"CRITICAL: %s" % repr(e)]
else:
return [0, "OK"]