# Raid1 # by dejan@suse.de on # Fri Aug 24 17:01:40 CEST 2012 CONFIG Agent Raid1 AgentRoot /usr/lib/ocf/resource.d/heartbeat InstallPackage mdadm HangTimeout 20 VARIABLE OCFT_rundir="`get_rundir`" OCFT_disk0=$OCFT_rundir/resource-agents/ocft-Raid1-disk0 OCFT_disk1=$OCFT_rundir/resource-agents/ocft-Raid1-disk1 OCFT_disk2=$OCFT_rundir/resource-agents/ocft-Raid1-disk2 OCFT_disk3=$OCFT_rundir/resource-agents/ocft-Raid1-disk3 OCFT_raidconf=$OCFT_rundir/resource-agents/ocft-mdadm.conf OCFT_raiddev=/dev/md8 OCFT_raiddev2=/dev/md9 OCFT_loop0="`loopbackeddev make $OCFT_disk0 16M`" OCFT_loop1="`loopbackeddev make $OCFT_disk1 16M`" OCFT_loop2="`loopbackeddev make $OCFT_disk2 16M`" OCFT_loop3="`loopbackeddev make $OCFT_disk3 16M`" SETUP-AGENT mdadm --create $OCFT_raiddev -l 0 --raid-devices=2 $OCFT_loop0 $OCFT_loop1 mdadm --create $OCFT_raiddev2 -l 0 --raid-devices=2 $OCFT_loop2 $OCFT_loop3 echo DEVICE $OCFT_loop0 $OCFT_loop1 > $OCFT_raidconf echo DEVICE $OCFT_loop2 $OCFT_loop3 >> $OCFT_raidconf echo ARRAY $OCFT_raiddev devices=$OCFT_loop0,$OCFT_loop1 >> $OCFT_raidconf echo ARRAY $OCFT_raiddev2 devices=$OCFT_loop2,$OCFT_loop3 >> $OCFT_raidconf CLEANUP-AGENT mdadm --zero-superblock $OCFT_loop0 mdadm --zero-superblock $OCFT_loop1 mdadm --zero-superblock $OCFT_loop2 mdadm --zero-superblock $OCFT_loop3 mdadm --remove $OCFT_raiddev 2>/dev/null mdadm --remove $OCFT_raiddev2 2>/dev/null loopbackeddev unmake $OCFT_disk0 loopbackeddev unmake $OCFT_disk1 loopbackeddev unmake $OCFT_disk2 loopbackeddev unmake $OCFT_disk3 rm -f $OCFT_raidconf CASE-BLOCK required_args Env OCF_RESKEY_raidconf=$OCFT_raidconf Env OCF_RESKEY_raiddev=$OCFT_raiddev CASE-BLOCK default_status AgentRun stop CASE-BLOCK prepare Include required_args Include default_status CASE-BLOCK prepare_auto Include required_args Env OCF_RESKEY_raiddev="auto" Include default_status CASE-BLOCK prepare_multiple Include required_args Env OCF_RESKEY_raiddev="$OCFT_raiddev $OCFT_raiddev2" Include default_status CASE "check base env" Include prepare AgentRun start OCF_SUCCESS CASE "check base env: invalid 'OCF_RESKEY_raiddev'" Include prepare Env OCF_RESKEY_raiddev=/dev/no_such_device AgentRun start OCF_ERR_GENERIC CASE "check base env: unset 'OCF_RESKEY_raiddev'" Include prepare Unenv OCF_RESKEY_raiddev 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 "normal start (auto)" Include prepare_auto AgentRun start OCF_SUCCESS AgentRun monitor OCF_SUCCESS CASE "normal stop (auto)" Include prepare_auto AgentRun start AgentRun stop OCF_SUCCESS AgentRun monitor OCF_NOT_RUNNING CASE "normal start (multiple)" Include prepare AgentRun start OCF_SUCCESS AgentRun monitor OCF_SUCCESS CASE "normal stop (multiple)" Include prepare Env OCF_RESKEY_raiddev="$OCFT_raiddev $OCFT_raiddev2" AgentRun start AgentRun stop OCF_SUCCESS AgentRun monitor OCF_NOT_RUNNING CASE "unimplemented command" Include prepare AgentRun no_cmd OCF_ERR_UNIMPLEMENTED