Hi all,
I am trying to write my own resource agent service,
I have corosync + pacemaker + lcmc

When I load the service it shows that it's running, Then after a few seconds
it stops,
I checked with a default resource agent (Dummy, sshd etc) and they work.

I'm running centos6.6 and these are the packages version:
corosync-1.4.7-1.el6.x86_64
corosynclib-1.4.7-1.el6.x86_64
pacemaker-1.1.12-4.el6.x86_64
pacemaker-cli-1.1.12-4.el6.x86_64
pacemaker-cluster-libs-1.1.12-4.el6.x86_64
pacemaker-libs-1.1.12-4.el6.x86_64

When I look in ps I can see it actually starts the server but then it fall
again,

This is my resource agent:


#!/bin/bash

#######################################################################
# Initialization:
: ${OCF_FUNCTIONS=${OCF_ROOT}/resource.d/heartbeat/.ocf-shellfuncs}
. ${OCF_FUNCTIONS}
: ${__OCF_ACTION=$1}

#######################################################################

meta_data() {
        cat <<END
<?xml version="1.0"?>
<!DOCTYPE resource-agent SYSTEM &quot;ra-api-1.dtd&quot;>
<resource-agent name="Sqream" version="1.0">
<version>1.0</version>

<longdesc lang="en">
sqream
</longdesc>
<shortdesc lang="en">sqream</shortdesc>
<parameters>

<parameter name="pidfile" unique="0">
<longdesc lang="en">PID file</longdesc>
<shortdesc lang="en">PID file</shortdesc>
<content type="string" default="$HA_VARRUN/sqream-${OCF_RESOURCE_INSTANCE}"
/>
</parameter>
</parameters>

<actions>
<action name="start"        timeout="20" />
<action name="stop"         timeout="20" />
<action name="monitor"      timeout="20" interval="10" depth="0"/>
<action name="meta-data"    timeout="5" />
</actions>
</resource-agent>
END
}

#######################################################################

trap sigterm_handler TERM
sigterm_handler() {
        echo sigterm_handler >> /tmp/sqream_cluster.log
        ocf_log info "They use TERM to bring us down. No such luck."
        return
}

sqream_usage() {
        cat <<END
usage: $0
{start|stop|monitor|migrate_to|migrate_from|validate-all|meta-data}

END
}

sqream_start() {
    sqream_monitor
    sleep 4
    /etc/init.d/sqream start
    if [ $? =  $OCF_SUCCESS ]; then
        return $OCF_SUCCESS
    fi
}

sqream_stop() {
    sqream_monitor
    sleep 2
    /etc/init.d/sqream stop
    return $OCF_SUCCESS
}

sqream_monitor() {

        if pgrep &quot;sqreamd&quot; > /dev/null
        then
            return 0
        else
            return 7
        fi
        return $OCF_NOT_RUNNING
}

sqream_validate() {
    date >> /tmp/sqream_cluster.log
    echo Validating >> /tmp/sqream_cluster.log
    # Is the state directory writable? 
    state_dir=`dirname "$OCF_RESKEY_state"`
    touch "$state_dir/$$"
    if [ $? != 0 ]; then
        return $OCF_ERR_ARGS
    fi
    rm "$state_dir/$$"

    return $OCF_SUCCESS
}

: ${OCF_RESKEY_fake=sqream}
: ${OCF_RESKEY_op_sleep=0}
: ${OCF_RESKEY_CRM_meta_interval=0}
: ${OCF_RESKEY_CRM_meta_globally_unique:="true"}

if [ "x$OCF_RESKEY_state" = "x" ]; then
    if [ ${OCF_RESKEY_CRM_meta_globally_unique} = "false" ]; then
        state="${HA_VARRUN}/Sqream-${OCF_RESOURCE_INSTANCE}.state"
        
        # Strip off the trailing clone marker
        OCF_RESKEY_state=`echo $state | sed s/:[0-9][0-9]*\.state/.state/`
    else 
        OCF_RESKEY_state="${HA_VARRUN}/Sqream-${OCF_RESOURCE_INSTANCE}.state"
    fi
fi

case $__OCF_ACTION in
meta-data)      meta_data
                exit $OCF_SUCCESS
                ;;
start)          sqream_start;;
stop)           sqream_stop;;
monitor)        sqream_monitor;;
migrate_to)     ocf_log info "Migrating ${OCF_RESOURCE_INSTANCE} to
${OCF_RESKEY_CRM_meta_migrate_target}."
                sqream_stop
                ;;
migrate_from)   ocf_log info "Migrating ${OCF_RESOURCE_INSTANCE} to
${OCF_RESKEY_CRM_meta_migrate_source}."
                sqream_start
                ;;
reload)         ocf_log err "Reloading..."
                sqream_start
                ;;
validate-all)   sqream_validate;;
usage|help)     sqream_usage
                exit $OCF_SUCCESS
                ;;
*)              sqream_usage
                exit $OCF_ERR_UNIMPLEMENTED
                ;;
esac
rc=$?
#ocf_log debug "${OCF_RESOURCE_INSTANCE} $__OCF_ACTION : $rc"
exit $rc




I would love some help,
Thanks a lot
Eden.



--
View this message in context: 
http://linux-ha.996297.n3.nabble.com/Creating-A-resource-agent-tp16196.html
Sent from the Linux-HA mailing list archive at Nabble.com.
_______________________________________________
Linux-HA mailing list is closing down.
Please subscribe to us...@clusterlabs.org instead.
http://clusterlabs.org/mailman/listinfo/users
_______________________________________________
Linux-HA@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha

Reply via email to