Monitor with IMF but with LevelTwo monitor frequency

If the custom agent monitor does the basic as well as detail monitoring, then the basic monitoring code must be conditional. This avoids scheduling of basic monitoring if only detail monitoring is required to be scheduled. VCSAG_GET_MONITOR_LEVEL api can be used to check if basic, detail or both monitoring is required to be scheduled.

Using api VCSAG_GET_MONITOR_LEVEL monitor entry point can decides whether to perform basic and detail monitoring based on the values of MonitorFreq and LevelTwoMonitorFreq attributes respectively.

#!/bin/sh
# CustomAgent Monitor script
. $VCS_HOME/bin/ag_i18n_inc.sh
RESNAME=$1
VCSAG_SET_ENVS $RESNAME

STATE=${VCS_RES_ONLINE};

# Fetch the value of basic (Level-1) and detail (Level-2) monitoring.
# VCSAG_GET_MONITOR_LEVEL will store these values in 
# VCSAG_MONITOR_LEVEL_ONE and CSAG_MONITOR_LEVEL_TWO environment.
VCSAG_GET_MONITOR_LEVEL();

# Check if basic monitoring (Level-1) need to be performed.
if [ ${VCSAG_MONITOR_LEVEL_ONE} -ne 0 ]; then

	# Logic for custom agent basic monitoring.
	# Based on logic set STATE to OFFLINE or ONLINE

	# If resource is found as OFFLINE
	STATE = ${VCS_RES_OFFLINE};

	# If resource is found as ONLINE
	STATE = ${VCS_RES_ONLINE};
fi

# if basic monitoring of the resource state that resource is ONLINE,
# check if detail monitoring (Level-2) need to be performed.
if [ ${STATE} -eq ${VCS_RES_ONLINE} ]; then 

	if [ ${VCSAG_MONITOR_LEVEL_TWO} -ne 0 ]; then
		# Logic for custom agent detail monitoring.
		# Based on logic return OFFLINE or ONLINE

		# If resource is found as OFFLINE
		STATE = ${VCS_RES_OFFLINE};

		# If resource is found as ONLINE
		STATE = ${VCS_RES_ONLINE};
	fi
fi

exit $(STATE);