def ping_site(site): """ Utility function which, when passed a site object, sends an HTTP GET request and logs the response """ try: # first off make a request response = fetch(url=site.url, allow_truncated=True) # log everything to the debug log logging.debug("Made request for %s and got %s" % (site.url, response.status_code)) # record the event ping = Ping( site = site, code = response.status_code, ) # then do special things based on the request response if response.status_code == '404': logging.error("Page not found at %s" % site.url) ping.up = False elif response.status_code == '500': logging.error("Error on %s" % site.url) ping.up = False # save the event ping.put() except DownloadError, e: # we also want to watch out for if the site doesn't # respond at all ping = Ping( site = site, code = 408, # 408 is request timeout up = False, ) ping.put() logging.error("Error accessing %s: %s" % (site.url, e))
def save_ping(): ping = Ping() ping.page = page.key ping.resp_time = resp_time ping.resp_code = result.status_code ping.put() # Update Last Ping data page.last_ping = datetime.now() page.put()