Bug 1250744 - pcs does not allow specifying {instance,meta}_attributes and cluster_property_set containing rules
pcs does not allow specifying {instance,meta}_attributes and cluster_property...
Status: NEW
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: pcs (Show other bugs)
Unspecified Unspecified
medium Severity unspecified
: rc
: ---
Assigned To: Tomas Jelinek
: FutureFeature
: 1354600 (view as bug list)
Depends On:
  Show dependency treegraph
Reported: 2015-08-05 17:21 EDT by Jan Pokorný
Modified: 2018-06-27 10:56 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
Last Closed:
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Jan Pokorný 2015-08-05 17:21:23 EDT
How can one express an analogy to this[1] if at all possible:

> <rsc_defaults>
>    <meta_attributes id="core-hours" score="2">
>       <rule id="core-hour-rule" score="0">
>         <date_expression id="nine-to-five-Mon-to-Fri" operation="date_spec">
>           <date_spec id="nine-to-five-Mon-to-Fri-spec" hours="9-16" weekdays="1-5"/>
>         </date_expression>
>       </rule>
>       <nvpair id="core-stickiness" name="resource-stickiness" value="INFINITY"/>
>    </meta_attributes>
>    <meta_attributes id="after-hours" score="1" >
>       <nvpair id="after-stickiness" name="resource-stickiness" value="0"/>
>    </meta_attributes>
> </rsc_defaults


This is also a minor blocker for "clufter ccs2pcs" command as it utilizes
such expressions to, e.g., mimic failover domains in a generic way.

[1] http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html-single/Pacemaker_Explained/index.html#idm254564960928
Comment 1 Jan Pokorný 2015-08-07 12:29:30 EDT
As Tomáš noted, this applies also to cluster_property_set.
Comment 3 Tomas Jelinek 2016-07-12 03:06:53 EDT
from duplicate bz1354600

Ken Gaillot 2016-07-11 12:33:37 EDT

Pacemaker allows resource parameters to be controlled by rules (for example, one set of parameters may be used on one node, and a different set on another node). However, pcs supports rules only for location constraints.

In the 7.4 timeframe, Pacemaker is expected to add support for versioned resource parameters, where different parameters can be used depending on the installed version of the resource agent. This will be expressed as a rule with a special '#ra-version' node attribute. So, rule-based resource parameters might become more useful and common after that.

At a minimum, pcs should support *displaying* rule-based resource parameters. Currently, if such are configured, pcs simply runs all the parameter sets together, so it looks like options are set multiple times with multiple values. For example, "pcs resource show" might display:

 Resource: test (class=ocf provider=pacemaker type=Dummy)
  Attributes: fake=foo op_sleep=3 fake=boo op_sleep=2 fake=woo op_sleep=1

where there are multiple instance_attributes sections setting fake and op_sleep based on rules. I believe "pcs constraint show" already handles rules well, so that could be used as a model.

Support for creating rules would of course be useful, too.

Upstream documentation is at http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html-single/Pacemaker_Explained/index.html#_using_rules_to_control_resource_options
Comment 4 Tomas Jelinek 2016-07-12 03:07:08 EDT
*** Bug 1354600 has been marked as a duplicate of this bug. ***
Comment 5 Tomas Jelinek 2016-10-04 04:53:13 EDT
Note an exception for stonith resources:

cut from http://clusterlabs.org/doc/en-US/Pacemaker/1.1-pcs/html-single/Pacemaker_Explained/index.html#_special_treatment_of_stonith_resources

Currently there is a limitation that fencing resources may only have one set of meta-attributes and one set of instance attributes. This can be revisited if it becomes a significant limitation for people.
Comment 6 Tomas Jelinek 2017-05-19 04:53:23 EDT
When setting instance or meta attributes by pcs, it is not possible to create two nvpairs with the same name in one nvset. However there are no constraints on pacemaker side which would enforce this. So it is possible that one nvset contains two nvpairs with the same name and these situations need to be handled in pcs properly.

Note You need to log in before you can comment on or make changes to this bug.