1#!/bin/sh
2#
3# Copyright (C) 2013-2014 Lawrence Livermore National Security, LLC.
4# Copyright (c) 2020 by Delphix. All rights reserved.
5#
6
7#
8# Log the zevent via syslog.
9#
10
11[ -f "${ZED_ZEDLET_DIR}/zed.rc" ] && . "${ZED_ZEDLET_DIR}/zed.rc"
12. "${ZED_ZEDLET_DIR}/zed-functions.sh"
13
14zed_exit_if_ignoring_this_event
15
16# build a string of name=value pairs for this event
17msg="eid=${ZEVENT_EID} class=${ZEVENT_SUBCLASS}"
18
19if [ "${ZED_SYSLOG_DISPLAY_GUIDS}" = "1" ]; then
20    [ -n "${ZEVENT_POOL_GUID}" ] && msg="${msg} pool_guid=${ZEVENT_POOL_GUID}"
21    [ -n "${ZEVENT_VDEV_GUID}" ] && msg="${msg} vdev_guid=${ZEVENT_VDEV_GUID}"
22else
23    [ -n "${ZEVENT_POOL}" ] && msg="${msg} pool='${ZEVENT_POOL}'"
24    [ -n "${ZEVENT_VDEV_PATH}" ] && msg="${msg} vdev=$(basename "${ZEVENT_VDEV_PATH}")"
25fi
26
27# log pool state if state is anything other than 'ACTIVE'
28[ -n "${ZEVENT_POOL_STATE_STR}" ] && [ "$ZEVENT_POOL_STATE" -ne 0 ] && \
29    msg="${msg} pool_state=${ZEVENT_POOL_STATE_STR}"
30
31# Log the following payload nvpairs if they are present
32[ -n "${ZEVENT_VDEV_STATE_STR}" ]  && msg="${msg} vdev_state=${ZEVENT_VDEV_STATE_STR}"
33[ -n "${ZEVENT_CKSUM_ALGORITHM}" ] && msg="${msg} algorithm=${ZEVENT_CKSUM_ALGORITHM}"
34[ -n "${ZEVENT_ZIO_SIZE}" ]        && msg="${msg} size=${ZEVENT_ZIO_SIZE}"
35[ -n "${ZEVENT_ZIO_OFFSET}" ]      && msg="${msg} offset=${ZEVENT_ZIO_OFFSET}"
36[ -n "${ZEVENT_ZIO_PRIORITY}" ]    && msg="${msg} priority=${ZEVENT_ZIO_PRIORITY}"
37[ -n "${ZEVENT_ZIO_ERR}" ]         && msg="${msg} err=${ZEVENT_ZIO_ERR}"
38[ -n "${ZEVENT_ZIO_FLAGS}" ]       && msg="${msg} flags=$(printf '0x%x' "${ZEVENT_ZIO_FLAGS}")"
39
40# log delays that are >= 10 milisec
41[ -n "${ZEVENT_ZIO_DELAY}" ] && [ "$ZEVENT_ZIO_DELAY" -gt 10000000 ] && \
42    msg="${msg} delay=$((ZEVENT_ZIO_DELAY / 1000000))ms"
43
44# list the bookmark data together
45# shellcheck disable=SC2153
46[ -n "${ZEVENT_ZIO_OBJSET}" ] && \
47    msg="${msg} bookmark=${ZEVENT_ZIO_OBJSET}:${ZEVENT_ZIO_OBJECT}:${ZEVENT_ZIO_LEVEL}:${ZEVENT_ZIO_BLKID}"
48
49zed_log_msg "${msg}"
50
51exit 0
52