Solaris OS용 Sun Cluster 데이터 서비스 개발 안내서

Confdir 검증

MAIN 함수에서 Validate는 먼저 CONFDIR 변수를 빈 문자열로 설정하고 UPDATE_PROPERTY CONFDIR_FOUND0으로 설정합니다.

CONFDIR=""
UPDATE_PROPERTY=0
CONFDIR_FOUND=0

이어서 Validateparse_args()를 호출하여 RGM에서 전달한 인자를 구문 분석합니다.

parse_args “$@”

그런 다음 Validate는 등록 정보 업데이트의 결과로 Validate가 호출되는지와 Confdir 확장 등록 정보가 명령줄에 있었는지를 검사합니다. ValidateConfdir 등록 정보에 값이 있는지 확인한 다음, 값이 없을 경우 오류 메시지와 함께 실패 상태로 종료합니다.

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 등록 정보의 업데이트를 검증하기 전에 Validatenamed.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