#!/usr/bin/python

import sys
from spacewalk.server import rhnSQL
from spacewalk.common.rhnConfig import initCFG
from check_suma_common import *

#############################################################################

if __name__ == '__main__':
    systemid = get_system_ID_by_name(check_one_arg(sys.argv))
    sql = rhnSQL.prepare("""SELECT EVENT_ID,
                            TO_CHAR(CREATED, 'YYYY-MM-DD HH24:MI:SS') CREATED,
                            TO_CHAR(PICKED_UP, 'YYYY-MM-DD HH24:MI:SS') PICKED_UP,
                            TO_CHAR(COMPLETED, 'YYYY-MM-DD HH24:MI:SS') COMPLETED,
                            SUMMARY,
                            HISTORY_TYPE,
                            HISTORY_TYPE_NAME,
                            HISTORY_STATUS
                            FROM (SELECT SH.id EVENT_ID,
                            SH.summary SUMMARY,
                            TO_TIMESTAMP(NULL, NULL) AS created,
                            TO_TIMESTAMP(NULL, NULL) AS picked_up,
                            SH.created as completed,
                            NULL AS history_status,
                            NULL AS history_type,
                            NULL AS history_type_name
                            FROM rhnServerHistory SH
                            WHERE SH.server_id = :sid
                            UNION
                            SELECT SA.action_id EVENT_ID,
                            AType.name || ' scheduled by ' || COALESCE(U.login, '(none)') AS SUMMARY,
                            SA.created,
                            SA.pickup_time AS picked_up,
                            SA.completion_time AS completed,
                            AStat.name AS history_status,
                            AType.label AS history_type,
                            AType.name AS history_type_name
                            FROM rhnActionType AType,
                            rhnActionStatus AStat,
                            rhnAction A
                            LEFT JOIN web_contact U
                            ON U.id = A.scheduler,
                            rhnServerAction SA
                            WHERE SA.server_id = :sid
                            AND SA.action_id = A.id
                            AND ATYPE.id = A.action_type
                            AND AStat.id = SA.status
                            AND AStat.id IN (1, 2, 3)) X
                            ORDER BY COMPLETED DESC, PICKED_UP DESC, CREATED DESC, EVENT_ID DESC""")
    sql.execute(sid = systemid)
    event = sql.fetchone_dict()
    if event:
        if event['history_status'] == "Completed" or event['history_status'] == None:
            status = 0
        else:
            if event['history_status'] == "Failed":
                status = 2
            else:
                status = 1
        resultExit(status, "%s: %s" % (event['history_status'], event['summary']))
    else:
        resultExit(0, "OK: No events yet")
