MAIN 함수에서 Validate는 먼저 CONFDIR 변수를 빈 문자열로 설정하고 UPDATE_PROPERTY 및 CONFDIR_FOUND를 0으로 설정합니다.
CONFDIR="" UPDATE_PROPERTY=0 CONFDIR_FOUND=0 |
이어서 Validate는 parse_args()를 호출하여 RGM이 전달한 인자를 구문 분석합니다.
parse_args “$@” |
그런 다음 Validate는 등록 정보 업데이트의 결과로 Validate가 호출되는지와 Confdir 확장 등록 정보가 명령줄에 있었는지를 검사합니다. Validate는 Confdir 등록 정보에 값이 있는지 확인한 다음, 값이 없을 경우 오류 메시지와 함께 실패 상태로 종료합니다.
if ( (( $UPDATE_PROPERTY == 1 )) && (( CONFDIR_FOUND == 0 )) ); then config_info=`scha_resource_get -O Extension -R $RESOURCE_NAME \ -G $RESOURCEGROUP_NAME Confdir` CONFDIR=`echo $config_info | awk '{print $2}'` fi # Verify that the Confdir property has a value. If not there is a failure # and exit with status 1 if [[ -z $CONFDIR ]]; then logger -p ${SYSLOG_FACILITY}.err \ "${ARGV0} Validate method for resource "$RESOURCE_NAME " failed" exit 1 fi |
특히 앞의 코드는 Validate가 업데이트 결과로 호출되는지($UPDATE_PROPERTY == 1)와 명령줄에서 등록 정보가 발견되지 않았는지(CONFDIR_FOUND == 0) 확인하여 이에 해당하는 경우 scha_resource_get()을 사용하여 Confdir의 기존 값을 검색합니다. Confdir이 명령줄에서 발견된 경우(CONFDIR_FOUND == 1) scha_resource_get()이 아니라 parse_args() 함수에서 CONFDIR 값을 얻습니다.
그런 다음 Validate 메소드는 CONFDIR 값을 사용하여 디렉터리에 액세스할 수 있는지 확인합니다. 디렉터리에 액세스할 수 없는 경우 Validate는 오류 메시지를 기록하고 오류 상태로 종료합니다.
# Check if $CONFDIR is accessible. if [ ! -d $CONFDIR ]; then logger -p ${SYSLOG_FACILITY}.err \ -t [$SYSLOG_TAG] \ "${ARGV0} Directory $CONFDIR missing or not mounted" exit 1 fi |
Confdir 등록 정보의 업데이트를 검증하기 전에 Validate는 named.conf 파일이 존재하는지 확인하는 최종 검사를 수행하여 이 파일이 존재하지 않을 경우 오류 메시지를 기록하고 오류 상태로 종료합니다.
# Check that the named.conf file is present in the Confdir directory if [ ! -s $CONFDIR/named.conf ]; then logger -p ${SYSLOG_FACILITY}.err \ -t [$SYSLOG_TAG] \ "${ARGV0} File $CONFDIR/named.conf is missing or empty" exit 1 fi |
최종 검사에 통과한 경우 Validate는 성공을 나타내는 메시지를 기록하고 성공 상태로 종료합니다.
# Log a message indicating that the Validate method was successful. logger -p ${SYSLOG_FACILITY}.err \ -t [$SYSLOG_TAG] \ "${ARGV0} Validate method for resource "$RESOURCE_NAME \ " completed successfully" exit 0 |