Hide Forgot
Description of problem: When configuring a multi-port fence device, the primitive requires that a 'port' be defined. Given that the config defines fencing for multiple nodes, the 'port' argument should not be needed. Version-Release number of selected component (if applicable): pacemaker-1.1.5-5.el6.x86_64 How reproducible: 100% Steps to Reproduce: 1. Try to add a multi-port fence device to a cluster. (See "Additional info"). 2. 3. Actual results: Fails. Expected results: Succeeds. Additional info: I was using an APC switched PDU and trying to define a 2-node cluster using the following command: ==== crm(status)configure# primitive apc-fencing stonith:fence_apc \ > params \ > priority=1 \ > pcmk_host_map="an-node01.alteeve.com:1,an-node02.alteeve.com:2" \ > pcmk_host_list="an-node01.alteeve.com an-node02.alteeve.com" \ > pcmk_host_check="static-list" \ > ipaddr="192.168.1.6" \ > action="reboot" \ > login="apc" \ > passwd="secret" ERROR: apc-fencing: required parameter port not defined WARNING: apc-fencing: action start not advertised in meta-data, it may not be supported by the RA WARNING: apc-fencing: action stop not advertised in meta-data, it may not be supported by the RA ==== To get the primitive to work, I had to add 'port=TBA'. ==== crm(status)configure# primitive apc-fencing stonith:fence_apc \ > params \ > priority=1 \ > pcmk_host_map="an-node01.alteeve.com:1,an-node02.alteeve.com:2" \ > pcmk_host_list="an-node01.alteeve.com an-node02.alteeve.com" \ > pcmk_host_check="static-list" \ > ipaddr="192.168.1.6" \ > action="reboot" \ > login="apc" \ > passwd="secret" \ > port=TBA WARNING: apc-fencing: action start not advertised in meta-data, it may not be supported by the RA WARNING: apc-fencing: action stop not advertised in meta-data, it may not be supported by the RA ====
The string 'dynamic' should be used in place of TBA until the shell can be fixed
A related patch has been committed upstream: https://github.com/beekhof/pacemaker/commit/6381a99
Note the addition of required="0" for the port parameter # fencing/stonith_admin -M -a fence_xvm <resource-agent name="fence_xvm" shortdesc="Fence agent for virtual machines"> <longdesc>fence_xvm is an I/O Fencing agent which can be used withvirtual machines.</longdesc> <parameters> <parameter name="debug"> <getopt mixed="-d"/> <content type="boolean"/> <shortdesc lang="en">Specify (stdin) or increment (command line) debug level</shortdesc> </parameter> <parameter name="ip_family"> <getopt mixed="-i"/> <content type="string" default="auto"/> <shortdesc lang="en">IP Family ([auto], ipv4, ipv6)</shortdesc> </parameter> <parameter name="multicast_address"> <getopt mixed="-a"/> <content type="string"/> <shortdesc lang="en">Multicast address (default=225.0.0.12 / ff05::3:1)</shortdesc> </parameter> <parameter name="ipport"> <getopt mixed="-p"/> <content type="string" default="1229"/> <shortdesc lang="en">Multicast or VMChannel IP port (default=1229)</shortdesc> </parameter> <parameter name="retrans"> <getopt mixed="-r"/> <content type="string" default="20"/> <shortdesc lang="en">Multicast retransmit time (in 1/10sec; default=20)</shortdesc> </parameter> <parameter name="auth"> <getopt mixed="-C"/> <content type="string" default="sha256"/> <shortdesc lang="en">Authentication (none, sha1, [sha256], sha512)</shortdesc> </parameter> <parameter name="hash"> <getopt mixed="-c"/> <content type="string" default="sha256"/> <shortdesc lang="en">Packet hash strength (none, sha1, [sha256], sha512)</shortdesc> </parameter> <parameter name="key_file"> <getopt mixed="-k"/> <content type="string" default="/etc/cluster/fence_xvm.key"/> <shortdesc lang="en">Shared key file (default=/etc/cluster/fence_xvm.key)</shortdesc> </parameter> <parameter name="port" required="0"> <getopt mixed="-H"/> <content type="string"/> <shortdesc lang="en">Virtual Machine (domain name) to fence</shortdesc> </parameter> <parameter name="use_uuid"> <getopt mixed="-u"/> <content type="string" default="0"/> <shortdesc lang="en">Treat [domain] as UUID instead of domain name. This is provided for compatibility with older fence_xvmd installations.</shortdesc> </parameter> <parameter name="action"> <getopt mixed="-o"/> <content type="string" default="reboot"/> <shortdesc lang="en">Fencing action (null, off, on, [reboot], status, list, monitor, metadata)</shortdesc> </parameter> <parameter name="timeout"> <getopt mixed="-t"/> <content type="string" default="30"/> <shortdesc lang="en">Fencing timeout (in seconds; default=30)</shortdesc> </parameter> <parameter name="domain"> <!-- DEPRECATED; FOR COMPATIBILITY ONLY --> <content type="string"/> <shortdesc lang="en">Virtual Machine (domain name) to fence (deprecated; use port)</shortdesc> </parameter> </parameters> <actions> <action name="null"/> <action name="on"/> <action name="off"/> <action name="reboot"/> <action name="metadata"/> <action name="status"/> <action name="monitor"/> <action name="list"/> <action name="stop" timeout="20s"/> <action name="start" timeout="20s"/> </actions> </resource-agent>
Technical note added. If any revisions are required, please edit the "Technical Notes" field accordingly. All revisions will be proofread by the Engineering Content Services team. New Contents: Cause: Overzealous validation by the cluster shell. Consequence: The shell complained when updating configurations that included fencing devices which automatically determined the correct port for a given host. Fix: Massage the retrieved fencing agent metadata to not advertise 'port' as a required configuration option
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHBA-2012-0846.html