Bug 1250744

Summary: [RFE] pcs does not allow specifying {instance,meta}_attributes and cluster_property_set containing rules
Product: Red Hat Enterprise Linux 8 Reporter: Jan Pokorný [poki] <jpokorny>
Component: pcsAssignee: Tomas Jelinek <tojeline>
Status: CLOSED WONTFIX QA Contact: cluster-qe <cluster-qe>
Severity: unspecified Docs Contact:
Priority: high    
Version: 8.0CC: cfeist, cluster-maint, idevat, kgaillot, omular, tojeline
Target Milestone: rcKeywords: FutureFeature, Reopened, Triaged
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2021-12-03 07:27:10 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 1862966, 2019471    
Bug Blocks:    

Description Jan Pokorný [poki] 2015-08-05 21:21:23 UTC
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ý [poki] 2015-08-07 16:29:30 UTC
As Tomáš noted, this applies also to cluster_property_set.

Comment 3 Tomas Jelinek 2016-07-12 07:06:53 UTC
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 07:07:08 UTC
*** Bug 1354600 has been marked as a duplicate of this bug. ***

Comment 5 Tomas Jelinek 2016-10-04 08:53:13 UTC
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 08:53:23 UTC
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.

Comment 8 Tomas Jelinek 2019-06-28 07:54:27 UTC
The feature has been asked about upstream: https://github.com/ClusterLabs/pcs/issues/207

Comment 15 RHEL Program Management 2020-11-01 03:02:44 UTC
After evaluating this issue, there are no plans to address it further or fix it in an upcoming release.  Therefore, it is being closed.  If plans change such that this issue will be fixed in an upcoming release, then the bug can be reopened.

Comment 20 RHEL Program Management 2021-12-03 07:27:10 UTC
After evaluating this issue, there are no plans to address it further or fix it in an upcoming release.  Therefore, it is being closed.  If plans change such that this issue will be fixed in an upcoming release, then the bug can be reopened.