On Feb 28, 2008, at 5:58 PM, Serge Dubrouski wrote:

On Thu, Feb 28, 2008 at 9:53 AM, Dejan Muhamedagic <[EMAIL PROTECTED] > wrote:
Hi,


On Thu, Feb 28, 2008 at 03:47:04PM +0100, Dominik Klein wrote:
thanky you for the script and for pointing to the right direction.
May I change the format of the output? (Yes, I also saw the thing with
wrong headings)

Here's a newer version. It can now read resource-stickiness and
resource_stickiness (notice the - and _). Both is possible, but up to now,
only one was looked for.
Also fixed a problem with the headings being mixed up.

I was wondering if you could do it the other way around, i.e. one
gives failover requirements such as after third failure move to
the other node and the script calculates the various stickiness
values. How about that?

And I was wondering why it can't be done on CRM level? It would be
great to be able to define a max number of allowed failures

That's how it will work "soon".
We thought the use of scores was a good idea at the time (especially since we couldn't time out failures back then) but I think it's pretty clear to everyone that this is not the case.

and let
CRM to calculate all necessary scores.


Thanks,

Dejan



I know this thing produces a lot of logs, but at least it does display the
scores, hu? :)

#!/bin/bash

# Feb 2008, Dominik Klein
# Display scores of Linux-HA resources

# Known issues:
# * cannot get resource[_failure]_stickiness values for master/ slave and
clone resources
# if those values are configured as meta attributes of the master/slave
or clone resource
#   instead of as meta attributes of the encapsulated primitive

if [ `crmadmin -D | cut -d' ' -f4` != `uname -n|tr "[:upper:]" "[:lower:]"`
]
 then echo "Warning: Script running not on DC. Might be slow(!)"
fi

# Heading
printf "%-16s%-16s%-16s%-16s%-16s%-16s\n" "Resource" "Score" "Node"
"Stickiness" "Failcount" "Failure-Stickiness"

2>&1 ptest -LVVVVVVV|grep -E "assign_node|rsc_location"|grep -w -E "\
[-]{0,1}[0-9]*$"|while read line
do
       node=`echo $line|cut -d ' ' -f 8|cut -d ':' -f 1`
       res=`echo $line|cut -d ' ' -f 6|tr -d ","`
       score=`echo $line|cut -d ' ' -f 9|sed 's/1000000/INFINITY/g'`

       # get meta attribute resource_stickiness
if crm_resource -g resource_stickiness -r $res --meta &>/ dev/null
       then
stickiness=`crm_resource -g resource_stickiness -r $res
--meta 2>/dev/null`
else if crm_resource -g resource-stickiness -r $res --meta
&>/dev/null
               then
stickiness=`crm_resource -g resource- stickiness -r
$res --meta 2>/dev/null`
# if that doesnt exist, get syntax like <primitive
resource-stickiness="100"
                       else if ! stickiness=`crm_resource -x -r $res
2>/dev/null | grep -E "<master|<primitive|<clone" | grep -o
"resource[_-]stickiness=\"[0-9]*\"" | cut -d '"' -f 2 | grep -v "^ $"`
                               then
                                       # if no resource-specific
stickiness is confiugured, grep the default value
                                       stickiness=`cibadmin -Q -o
crm_config 2>/dev/null|grep "default[_-]resource[_-]stickiness"| grep -o -E
'value ?= ?"[^ ]*"'|cut -d '"' -f 2|grep -v "^$"`
                               fi
                       fi
               fi

       # get meta attribute resource_failure_stickiness
       if crm_resource -g resource_failure_stickiness -r $res --meta
&>/dev/null
       then
               failurestickiness=`crm_resource -g
resource_failure_stickiness -r $res --meta 2>/dev/null`
else if crm_resource -g resource-failure-stickiness -r $res
--meta &>/dev/null
               then
                       failurestickiness=`crm_resource -g
resource-failure-stickiness -r $res --meta 2>/dev/null`
                       else
# if that doesnt exist, get the default
value
                               failurestickiness=`cibadmin -Q -o
crm_config 2>/dev/null|grep "resource[_-]failure[_-]stickiness"| grep -o -E
'value ?= ?"[^ ]*"'|cut -d '"' -f 2|grep -v "^$"`
                       fi
               fi

failcount=`crm_failcount -G -r $res -U $node 2>/dev/null| grep -o -E
'value ?= ?[0-9]*'|cut -d '=' -f 2|grep -v "^$"`

       printf "%-16s%-16s%-16s%-16s%-16s%-16s\n" $res $score $node
$stickiness $failcount $failurestickiness
done|sort -k 1
_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems
_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems




--
Serge Dubrouski.
_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

_______________________________________________
Linux-HA mailing list
[email protected]
http://lists.linux-ha.org/mailman/listinfo/linux-ha
See also: http://linux-ha.org/ReportingProblems

Reply via email to