ClusterLabs/pcs

pcs stonith describe broken?

Closed this issue · 3 comments

Unable to get fence metadata with pcs stonith describe command

[root@localhost ~]# pcs stonith describe fence_watchdog
Warning: Agent 'pacemaker-fenced' is not installed or does not provide valid metadata: Element content failed to validate content, line 30
Warning: Agent 'pacemaker-fenced' is not installed or does not provide valid metadata: Element content failed to validate content, line 30
fence_watchdog - Dummy watchdog fence agent

fence_watchdog just provides meta-data - actual fencing is done by the pacemaker internal watchdog agent.

Stonith options:
  nodename: Ignored
  plug: Ignored

Default operations:
  monitor:
    interval=60s

Looks like '' cannot be escaped? maybe it's pacemaker's native language translations cause this?

[root@localhost ~]# /usr/libexec/pacemaker/pacemaker-fenced metadata
<?xml version="1.0"?>
<resource-agent name="pacemaker-fenced" version="2.1.5-1.el9">
  <version>1.1</version>
  <longdesc lang="en">Instance attributes available for all &quot;stonith&quot;-class resources and used by Pacemaker&apos;s fence daemon, formerly known as stonithd</longdesc>
  <shortdesc lang="en">Instance attributes available for all &quot;stonith&quot;-class resources</shortdesc>
  <parameters>
    <parameter name="pcmk_host_argument">
      <longdesc lang="en">some devices do not support the standard &apos;port&apos; parameter or may provide additional ones. Use this to specify an alternate, device-specific, parameter that should indicate the machine to be fenced. A value of none can be used to tell the cluster not to supply any additional parameters.</longdesc>
      <shortdesc lang="en">Advanced use only: An alternate parameter to supply instead of &apos;port&apos;</shortdesc>
      <content type="string" default="port"/>
    </parameter>
    <parameter name="pcmk_host_map">
      <longdesc lang="en">Eg. node1:1;node2:2,3 would tell the cluster to use port 1 for node1 and ports 2 and 3 for node2</longdesc>
      <shortdesc lang="en">A mapping of host names to ports numbers for devices that do not support host names.</shortdesc>
      <content type="string" default=""/>
    </parameter>
    <parameter name="pcmk_host_list">
      <longdesc lang="en">A list of machines controlled by this device (Optional unless pcmk_host_list=static-list)</longdesc>
      <shortdesc lang="en">Eg. node1,node2,node3</shortdesc>
      <content type="string" default=""/>
    </parameter>
    <parameter name="pcmk_host_check">
      <longdesc lang="en">Allowed values: dynamic-list (query the device via the &apos;list&apos; command), static-list (check the pcmk_host_list attribute), status (query the device via the &apos;status&apos; command), none (assume every device can fence every machine)</longdesc>
      <shortdesc lang="en">How to determine which machines are controlled by the device.</shortdesc>
      <content type="string" default="dynamic-list"/>
    </parameter>
    <parameter name="pcmk_delay_max">
      <longdesc lang="en">Enable a delay of no more than the time specified before executing fencing actions. Pacemaker derives the overall delay by taking the value of pcmk_delay_base and adding a random delay value such that the sum is kept below this maximum.</longdesc>
      <shortdesc lang="en">Enable a base delay for fencing actions and specify base delay value.</shortdesc>
      <content type="time" default="0s"/>
    </parameter>
    <parameter name="pcmk_delay_base">
      <longdesc lang="en">This enables a static delay for fencing actions, which can help avoid &quot;death matches&quot; where two nodes try to fence each other at the same time. If pcmk_delay_max  is also used, a random delay will be added such that the total delay is kept below that value.This can be set to a single time value to apply to any node targeted by this device (useful if a separate device is configured for each target), or to a node map (for example, &quot;node1:1s;node2:5&quot;) to set a different value per target.</longdesc>
      <shortdesc lang="en">Enable a base delay for fencing actions and specify base delay value.</shortdesc>
      <content type="string" default="0s"/>
    </parameter>
    <parameter name="pcmk_action_limit">
      <longdesc lang="en">Cluster property concurrent-fencing=true needs to be configured first.Then use this to specify the maximum number of actions can be performed in parallel on this device. -1 is unlimited.</longdesc>
      <shortdesc lang="en">The maximum number of actions can be performed in parallel on this device</shortdesc>
      <content type="integer" default="1"/>
    </parameter>
    <parameter name="pcmk_reboot_action">
      <longdesc lang="en">Some devices do not support the standard commands or may provide additional ones.\nUse this to specify an alternate, device-specific, command that implements the &apos;reboot&apos; action.</longdesc>
      <shortdesc lang="en">Advanced use only: An alternate command to run instead of &apos;reboot&apos;</shortdesc>
      <content type="string" default="reboot"/>
    </parameter>
    <parameter name="pcmk_reboot_timeout">
      <longdesc lang="en">Some devices need much more/less time to complete than normal.Use this to specify an alternate, device-specific, timeout for &apos;reboot&apos; actions.</longdesc>
      <shortdesc lang="en">Advanced use only: Specify an alternate timeout to use for reboot actions instead of stonith-timeout</shortdesc>
      <content type="time" default="60s"/>
    </parameter>
    <parameter name="pcmk_reboot_retries">
      <longdesc lang="en">Some devices do not support multiple connections. Operations may &apos;fail&apos; if the device is busy with another task so Pacemaker will automatically retry the operation,      if there is time remaining. Use this option to alter the number of times Pacemaker retries &apos;reboot&apos; actions before giving up.</longdesc>
      <shortdesc lang="en">Advanced use only: The maximum number of times to retry the &apos;reboot&apos; command within the timeout period</shortdesc>
      <content type="integer" default="2"/>
    </parameter>
    <parameter name="pcmk_off_action">
      <longdesc lang="en">Some devices do not support the standard commands or may provide additional ones.Use this to specify an alternate, device-specific, command that implements the &apos;off&apos; action.</longdesc>
      <shortdesc lang="en">Advanced use only: An alternate command to run instead of &apos;off&apos;</shortdesc>
      <content type="string" default="off"/>
    </parameter>
    <parameter name="pcmk_off_timeout">
      <longdesc lang="en">Some devices need much more/less time to complete than normal.Use this to specify an alternate, device-specific, timeout for &apos;off&apos; actions.</longdesc>
      <shortdesc lang="en">Advanced use only: Specify an alternate timeout to use for off actions instead of stonith-timeout</shortdesc>
      <content type="time" default="60s"/>
    </parameter>
    <parameter name="pcmk_off_retries">
      <longdesc lang="en">Some devices do not support multiple connections. Operations may &apos;fail&apos; if the device is busy with another task so Pacemaker will automatically retry the operation,      if there is time remaining. Use this option to alter the number of times Pacemaker retries &apos;off&apos; actions before giving up.</longdesc>
      <shortdesc lang="en">Advanced use only: The maximum number of times to retry the &apos;off&apos; command within the timeout period</shortdesc>
      <content type="integer" default="2"/>
    </parameter>
    <parameter name="pcmk_on_action">
      <longdesc lang="en">Some devices do not support the standard commands or may provide additional ones.Use this to specify an alternate, device-specific, command that implements the &apos;on&apos; action.</longdesc>
      <shortdesc lang="en">Advanced use only: An alternate command to run instead of &apos;on&apos;</shortdesc>
      <content type="string" default="on"/>
    </parameter>
    <parameter name="pcmk_on_timeout">
      <longdesc lang="en">Some devices need much more/less time to complete than normal.Use this to specify an alternate, device-specific, timeout for &apos;on&apos; actions.</longdesc>
      <shortdesc lang="en">Advanced use only: Specify an alternate timeout to use for on actions instead of stonith-timeout</shortdesc>
      <content type="time" default="60s"/>
    </parameter>
    <parameter name="pcmk_on_retries">
      <longdesc lang="en">Some devices do not support multiple connections. Operations may &apos;fail&apos; if the device is busy with another task so Pacemaker will automatically retry the operation,      if there is time remaining. Use this option to alter the number of times Pacemaker retries &apos;on&apos; actions before giving up.</longdesc>
      <shortdesc lang="en">Advanced use only: The maximum number of times to retry the &apos;on&apos; command within the timeout period</shortdesc>
      <content type="integer" default="2"/>
    </parameter>
    <parameter name="pcmk_list_action">
      <longdesc lang="en">Some devices do not support the standard commands or may provide additional ones.Use this to specify an alternate, device-specific, command that implements the &apos;list&apos; action.</longdesc>
      <shortdesc lang="en">Advanced use only: An alternate command to run instead of &apos;list&apos;</shortdesc>
      <content type="string" default="list"/>
    </parameter>
    <parameter name="pcmk_list_timeout">
      <longdesc lang="en">Some devices need much more/less time to complete than normal.Use this to specify an alternate, device-specific, timeout for &apos;list&apos; actions.</longdesc>
      <shortdesc lang="en">Advanced use only: Specify an alternate timeout to use for list actions instead of stonith-timeout</shortdesc>
      <content type="time" default="60s"/>
    </parameter>
    <parameter name="pcmk_list_retries">
      <longdesc lang="en">Some devices do not support multiple connections. Operations may &apos;fail&apos; if the device is busy with another task so Pacemaker will automatically retry the operation,      if there is time remaining. Use this option to alter the number of times Pacemaker retries &apos;list&apos; actions before giving up.</longdesc>
      <shortdesc lang="en">Advanced use only: The maximum number of times to retry the &apos;list&apos; command within the timeout period</shortdesc>
      <content type="integer" default="2"/>
    </parameter>
    <parameter name="pcmk_monitor_action">
      <longdesc lang="en">Some devices do not support the standard commands or may provide additional ones.Use this to specify an alternate, device-specific, command that implements the &apos;monitor&apos; action.</longdesc>
      <shortdesc lang="en">Advanced use only: An alternate command to run instead of &apos;monitor&apos;</shortdesc>
      <content type="string" default="monitor"/>
    </parameter>
    <parameter name="pcmk_monitor_timeout">
      <longdesc lang="en">Some devices need much more/less time to complete than normal.\nUse this to specify an alternate, device-specific, timeout for &apos;monitor&apos; actions.</longdesc>
      <shortdesc lang="en">Advanced use only: Specify an alternate timeout to use for monitor actions instead of stonith-timeout</shortdesc>
      <content type="time" default="60s"/>
    </parameter>
    <parameter name="pcmk_monitor_retries">
      <longdesc lang="en">Some devices do not support multiple connections. Operations may &apos;fail&apos; if the device is busy with another task so Pacemaker will automatically retry the operation,      if there is time remaining. Use this option to alter the number of times Pacemaker retries &apos;monitor&apos; actions before giving up.</longdesc>
      <shortdesc lang="en">Advanced use only: The maximum number of times to retry the &apos;monitor&apos; command within the timeout period</shortdesc>
      <content type="integer" default="2"/>
    </parameter>
    <parameter name="pcmk_status_action">
      <longdesc lang="en">Some devices do not support the standard commands or may provide additional ones.Use this to specify an alternate, device-specific, command that implements the &apos;status&apos; action.</longdesc>
      <shortdesc lang="en">Advanced use only: An alternate command to run instead of &apos;status&apos;</shortdesc>
      <content type="string" default="status"/>
    </parameter>
    <parameter name="pcmk_status_timeout">
      <longdesc lang="en">Some devices need much more/less time to complete than normal.Use this to specify an alternate, device-specific, timeout for &apos;status&apos; actions.</longdesc>
      <shortdesc lang="en">Advanced use only: Specify an alternate timeout to use for status actions instead of stonith-timeout</shortdesc>
      <content type="time" default="60s"/>
    </parameter>
    <parameter name="pcmk_status_retries">
      <longdesc lang="en">Some devices do not support multiple connections. Operations may &apos;fail&apos; if the device is busy with another task so Pacemaker will automatically retry the operation,      if there is time remaining. Use this option to alter the number of times Pacemaker retries &apos;status&apos; actions before giving up.</longdesc>
      <shortdesc lang="en">Advanced use only: The maximum number of times to retry the &apos;status&apos; command within the timeout period</shortdesc>
      <content type="integer" default="2"/>
    </parameter>
  </parameters>
</resource-agent>

OS : CentOS Stream 9
pcs-0.11.3-4.el9.x86_64
pacemaker-2.1.5-1.el9.x86_64
corosync-3.1.5-4.el9.x86_64

I believe this issue has been already fixed in fee8976. Can you update to the latest pcs and try again? Thanks.

I believe this issue has been already fixed in fee8976. Can you update to the latest pcs and try again? Thanks.

Thanks for the reply, I will try it tomorrow

It worked fine after I update pcs with fee8976 , I think this can close now.