diff --git a/tools/ocft/Filesystem b/tools/ocft/Filesystem index 0b4d7813f..f84bae57a 100644 --- a/tools/ocft/Filesystem +++ b/tools/ocft/Filesystem @@ -1,113 +1,112 @@ # Filesystem # by dejan@suse.de on # Tue Feb 15 18:50:04 CET 2011 # -# NB: Replace /var/run below with /run if your system mounts /run -# as tmpfs! - CONFIG Agent Filesystem AgentRoot /usr/lib/ocf/resource.d/heartbeat HangTimeout 20 VARIABLE - OCFT_fs=/var/run/resource-agents/ocft-Filesystem-fs - OCFT_loop=/dev/loop7 - OCFT_dir=/var/run/resource-agents/ocft-Filesystem-mnt + OCFT_vardir="`mount | grep '/run ' | awk '{print $3}'`" + OCFT_fs="$OCFT_vardir/resource-agents/ocft-Filesystem-fs" + OCFT_dir="$OCFT_vardir/resource-agents/ocft-Filesystem-mnt" + OCFT_loop_f="$OCFT_vardir/resource-agents/ocft-loopdev" + OCFT_loop="`cat $OCFT_loop_f 2>/dev/null`" SETUP-AGENT - losetup $OCFT_loop 2>/dev/null && exit 1 + losetup -f > $OCFT_loop_f rmdir $OCFT_dir 2>/dev/null || true mkdir $OCFT_dir dd if=/dev/zero of=$OCFT_fs bs=1 count=0 seek=16M 2>/dev/null mke2fs -j -Fq -m 0 $OCFT_fs - losetup $OCFT_loop $OCFT_fs + losetup `cat $OCFT_loop_f` $OCFT_fs CLEANUP-AGENT rmdir $OCFT_dir - rm $OCFT_fs + rm $OCFT_fs $OCFT_loop_f losetup -d $OCFT_loop CASE-BLOCK required_args Env OCF_RESKEY_device=$OCFT_loop Env OCF_RESKEY_fstype=ext3 Env OCF_RESKEY_directory=$OCFT_dir CASE-BLOCK default_status AgentRun stop CASE-BLOCK prepare Include required_args Include default_status CASE "check base env" Include prepare AgentRun start OCF_SUCCESS CASE "check base env: invalid 'OCF_RESKEY_device'" Include prepare Env OCF_RESKEY_device=/dev/no_such_device AgentRun start OCF_ERR_INSTALLED CASE "check base env: unset 'OCF_RESKEY_device'" Include prepare Unenv OCF_RESKEY_device AgentRun start OCF_ERR_CONFIGURED CASE "normal start" Include prepare AgentRun start OCF_SUCCESS CASE "normal stop" Include prepare AgentRun start AgentRun stop OCF_SUCCESS CASE "double start" Include prepare AgentRun start AgentRun start OCF_SUCCESS CASE "double stop" Include prepare AgentRun stop OCF_SUCCESS CASE "monitor when running" Include prepare AgentRun start AgentRun monitor OCF_SUCCESS CASE "monitor when not running" Include prepare AgentRun monitor OCF_NOT_RUNNING CASE "monitor depth 10 when running" Include prepare AgentRun start Env OCF_CHECK_LEVEL=10 AgentRun monitor OCF_SUCCESS CASE "monitor depth 20 with running" Include prepare AgentRun start Env OCF_CHECK_LEVEL=20 AgentRun monitor OCF_SUCCESS CASE "start insert failure (remove device)" Include prepare Bash losetup -d $OCFT_loop BashAtExit losetup $OCFT_loop $OCFT_fs AgentRun start OCF_ERR_GENERIC CASE "monitor depth 20 insert failure (r/o fs)" Include prepare AgentRun start Bash mount -o remount,ro $OCFT_dir BashAtExit mount -o remount,rw $OCFT_dir Env OCF_CHECK_LEVEL=20 AgentRun monitor OCF_ERR_GENERIC CASE "unimplemented command" Include prepare AgentRun no_cmd OCF_ERR_UNIMPLEMENTED diff --git a/tools/ocft/LVM b/tools/ocft/LVM index 4bd2b221b..6e75ed5fa 100644 --- a/tools/ocft/LVM +++ b/tools/ocft/LVM @@ -1,86 +1,89 @@ # LVM # by dejan@suse.de on # Wed Feb 16 13:15:01 CET 2011 CONFIG Agent LVM AgentRoot /usr/lib/ocf/resource.d/heartbeat HangTimeout 20 VARIABLE - OCFT_pv=/var/run/resource-agents/ocft-LVM-pv + OCFT_vardir="`mount | grep '/run ' | awk '{print $3}'`" + OCFT_pv=$OCFT_vardir/resource-agents/ocft-LVM-pv OCFT_vg=ocft-vg OCFT_lv=ocft-lv - OCFT_loop=/dev/loop7 + OCFT_loop_f="$OCFT_vardir/resource-agents/ocft-loopdev" + OCFT_loop="`cat $OCFT_loop_f 2>/dev/null`" SETUP-AGENT - losetup $OCFT_loop 2>/dev/null && exit 1 + losetup -f > $OCFT_loop_f + OCFT_loop=`cat $OCFT_loop_f` dd if=/dev/zero of=$OCFT_pv bs=1 count=0 seek=16M 2>/dev/null losetup $OCFT_loop $OCFT_pv pvcreate $OCFT_loop vgcreate -s 4K $OCFT_vg $OCFT_loop lvcreate -n $OCFT_lv -L 600K $OCFT_vg CLEANUP-AGENT vgchange -an $OCFT_vg lvremove -f /dev/$OCFT_vg/$OCFT_lv vgremove -f $OCFT_vg pvremove $OCFT_loop losetup -d $OCFT_loop - rm $OCFT_pv + rm $OCFT_pv $OCFT_loop_f CASE-BLOCK required_args Env OCF_RESKEY_volgrpname=$OCFT_vg CASE-BLOCK default_status AgentRun stop CASE-BLOCK prepare Include required_args Include default_status CASE "check base env" Include prepare AgentRun start OCF_SUCCESS CASE "check base env: invalid 'OCF_RESKEY_volgrpname'" Include prepare Env OCF_RESKEY_volgrpname=/dev/no_such_device AgentRun start OCF_ERR_GENERIC CASE "check base env: unset 'OCF_RESKEY_volgrpname'" Include prepare Unenv OCF_RESKEY_volgrpname AgentRun start OCF_ERR_CONFIGURED CASE "normal start" Include prepare AgentRun start OCF_SUCCESS CASE "normal stop" Include prepare AgentRun start AgentRun stop OCF_SUCCESS CASE "double start" Include prepare AgentRun start AgentRun start OCF_SUCCESS CASE "double stop" Include prepare AgentRun stop OCF_SUCCESS CASE "monitor when running" Include prepare AgentRun start AgentRun monitor OCF_SUCCESS CASE "monitor when not running" Include prepare AgentRun monitor OCF_NOT_RUNNING CASE "unimplemented command" Include prepare AgentRun no_cmd OCF_ERR_UNIMPLEMENTED