Example #1
0
def getStatus(session_id, host_id):
    """Returns a dictionary describing the status of the host"""
    
    # Get some basic info
    hostname = getHostName(session_id, host_id)
    hoststatus = getHostStatus(hostname)
    
    # Get the host's CFengine status
    status = getCfengineHostStatus(session_id, hoststatus.host._properties)
    
    # Get state information
    status["reachable"] = hoststatus.reachable
    status["operating_rev"] = hoststatus.operatingRevision
    status["operating_rev_status"] = hoststatus.operatingRevisionStatus
    status["operating_rev_text"] = hoststatus.operatingRevisionText
    status["operating_rev_hint"] = hoststatus.operatingRevisionHint
    status["active_rev"] = hoststatus.activeRevision
    status["generated_rev"] = hoststatus.generatedRevision
    status["current_load"] = hoststatus.currentLoad
    status["uptime"] = hoststatus.uptime
    status["infoUpdatedAt"] = time.strftime("%d/%m/%Y %H:%M:%S", \
                    time.localtime(hoststatus.infoUpdatedAt))
    status["lastCheckedAt"] = time.strftime("%d/%m/%Y %H:%M:%S", \
                    time.localtime(hoststatus.lastCheckedAt))
    
    return status
Example #2
0
def getHostStatusSummary(session_id, host_name):
    """Returns an overall status for the host"""

    status = {}
    try:
        hoststatus = getHostStatus(host_name)
    except:
        status = {"status":STATUS_UNKNOWN,"status_text":"UNKNOWN", \
                "status_hint":"No status information available"}
        return status

    status["infoUpdatedAt"] = time.strftime("%d/%m/%Y %H:%M:%S", \
                    time.localtime(hoststatus.infoUpdatedAt))
    status["lastCheckedAt"] = time.strftime("%d/%m/%Y %H:%M:%S", \
                    time.localtime(hoststatus.lastCheckedAt))
    status["status"] = STATUS_OK
    status["status_text"] = "UP"
    status["status_hint"] = "Last checked at %s" % status["lastCheckedAt"]

    if not hoststatus.reachable:
        status["status"] = STATUS_CRITICAL
        status["status_text"] = "Down"
        status["status_hint"] = "Not seen since %s" % status["infoUpdatedAt"]
        return status

    if hoststatus.operatingRevisionStatus != STATUS_OK:
        status["status"] = hoststatus.operatingRevisionStatus
        status["status_text"] = hoststatus.operatingRevisionText
        status["statux_hint"] = hoststatus.operatingRevisionHint
        return status
    
    cstatus = getCfengineHostStatus(session_id, hoststatus.host._properties)
    if cstatus["ssh_key_status"] != STATUS_OK:
        status["status"] = cstatus["ssh_key_status"]
        status["status_text"] = "SSH Key Error"
        status["status_hint"] = cstatus["ssh_key_text"]
        return status
    if cstatus["cfengine_key_status"] != STATUS_OK:
        status["status"] = cstatus["cfengine_key_status"]
        status["status_text"] = "CFengine Key Error"
        status["status_hint"] = cstatus["cfengine_key_text"]
        return status
    
    return status