def get_event()

in automated-actions/AWS_EBS_VOLUME_LOST/stepbystep/alexa_skill.py [0:0]


def get_event():
    attributes = {"state":globals()['STATE']}

    payload = getLatestPhdEvent()
    print(payload)
    
    ## Get Time ##
    x = payload['PhdEventTime']
    timeiso = getDateTimeFromISO8601String(x)
    
    ## Convert to AU/Melbourne ##
    y = dateutil.parser.parse(x)
    meltimeiso = y + datetime.timedelta(hours=int(os.environ['timezonedelta']))
    eventtimestr = json.dumps(meltimeiso, default = date_handler)
   
    eventtime = datetime.datetime.strptime(eventtimestr.replace("\"", ""), "%Y-%m-%d  %H:%M:%S")
    systemname =  payload['ResourceStack']['StackName']
    eventid =  payload['PhdEventId']
    recoverytime = payload['RestoredResources']['RestoredVolumes'][0]['CreateTime']
    recoverystatus = payload['NOTIFMESSAGE']['Message']
    
    # Compose Event time
    eventdate = str(eventtime.year) + "-" + str(eventtime.month) + "-" + str(eventtime.day)
    eventtimestr = str(eventtime.hour) + ":" + str(eventtime.minute)
    dtime = datetime.datetime.strptime(eventtimestr, "%H:%M")
    eventtime = dtime.strftime("%I:%M %p")
    
    # Find Recovery Time
    reventlist = payload['ResourceStack']['StackEvents']
    for revent in reventlist:
        if revent['ResourceType'] == "AWS::CloudFormation::Stack":
            if revent['ResourceStatus'] == "UPDATE_COMPLETE":
                rendtime = revent['Timestamp']
    
    endtime = getDateTimeFromISO8601String(rendtime)
    diff = endtime - timeiso
    diffseconds = diff.total_seconds()
    diffhours = diffseconds // 3600
    diffminutes = (diffseconds % 3600) // 60
    diffseconds = diffseconds % 60
    recoveryhours =  str(math.ceil(diffhours))
    recoveryminutes =  str(math.ceil(diffminutes))
    recoveryseconds =  str(math.ceil(diffseconds))

    LATEST_EVENT = ( "On "+ eventdate + " at " + eventtime + "! System " + systemname + " was down! " + "System is now recovered ! " + " Total Recovery time is " + recoveryhours + " hours " + recoveryminutes + " minutes and " + recoveryseconds + " seconds " +  "! Please check kibana for recovery details!")
    return response(attributes, response_plain_text(LATEST_EVENT, True))