[Pacemaker] [Spam] Re: Apparent error passing stonith resource parameters (external/libvirt)

Nathan Bird nathan at acceleration.net
Tue Aug 28 14:28:59 EDT 2012

On 08/27/2012 05:46 AM, Dejan Muhamedagic wrote:
> Hi,
> On Fri, Aug 24, 2012 at 11:25:19AM -0400, Nathan Bird wrote:
>> On 08/24/2012 10:47 AM, Nathan Bird wrote:
>>> I'm trying to setup an external/libvirt stonith fencing
>>> thingiemadoodle but ran into an error
>>> My pacemaker configuration is (read back out it looks the same):
>>> primitive p-fence-om0101 stonith:external/libvirt \
>>>   params hostlist="proxy1 mysql1" \
>>> hypervisor_uri="qemu+ssh://root@om01/system?keyfile=/root/.ssh/om01" \
>>>   op monitor interval="60"
>>> #there's also a location rule that is working fine
>>> If i just try to connect with libvirt that uri is correct. When
>>> the stonith script runs though it is getting an incomplete value
>>> "qemu+ssh://root@om01/system?keyfile" observed via log messages.
> lrmd passes the correct value, so it must happen later.
> fence_legacy looks like a prime suspect:
>          ($name,$val)=split /\s*=\s*/, $opt;

Yeah, that seems like a likely candidate; when I hit the error I said to 
myself "I bet someone is parsing using a regexp." :-)

>> I worked around this by copying the resource file into a new one
>> named after the hypervisor I'm trying to talk to and embedding the
>> correct uri in the file.
> So, did the new script work?

Yeah, worked just fine. I simply have a declaration at the top of the 
script hypervisor_uri="..." and the rest of the script then has the 
correct one. Updated the primitive declaration to be stonith:external/om1.

>> Additionally I did a bit more bash quoting in the file, e.g.:
>> -    out=$($VIRSH -c $hypervisor_uri start $domain_id 2>&1)
>> +    out=$($VIRSH -c "$hypervisor_uri" start $domain_id 2>&1)
> Quotes won't hurt, but won't help either. At any rate, we should
> add the quotes for more exotic URIs.

Yeah, you're probably right that this url would pass through without the 
quotes. My experience with shell scripting has given me the superstition 
that an unquoted variable is just a bug waiting to happen.


More information about the Pacemaker mailing list