Bug 1359057
Summary: | [cli] pcs should provide enhanced, stackable, integrity-protecting "pcs cluster cib/cib-push" alternative | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Jan Pokorný [poki] <jpokorny> |
Component: | pcs | Assignee: | Tomas Jelinek <tojeline> |
Status: | CLOSED WONTFIX | QA Contact: | cluster-qe <cluster-qe> |
Severity: | unspecified | Docs Contact: | |
Priority: | medium | ||
Version: | 7.2 | CC: | cfeist, cluster-maint, cluster-qe, idevat, omular, tojeline |
Target Milestone: | rc | Keywords: | FutureFeature |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | If docs needed, set a value | |
Doc Text: | Story Points: | --- | |
Clone Of: | 1328066 | Environment: | |
Last Closed: | 2020-12-15 07:43:12 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: | 1328066 | ||
Bug Blocks: | 1328078 |
Description
Jan Pokorný [poki]
2016-07-22 08:18:57 UTC
Even better, it would be just "pcs pipe", but I would want too much, perhaps. re [comment 0], 2. PUSH mode: - actually it shoud behave as with "pcs cluster cib-push --config --wait" (where I've just added --wait assumption) Rationale is that you are likely going to pipe the modifications like this in the script where you definitely expect that one block of commands is definitely finished before you move on further. And it's worthwhile also in interactive use, anyway (--wait really should generally have been a default behavior since day 1). See also [bug 1420298 comment 3]. In the light of the pcs getting smarter/more sophisticated wrt. pushing updates to cluster per [bug 1404233], that is, sending just the difference against (still user managed! but see [bug 1441673]) baseline, the suggested idea should be updated to reflect that. Borrowing a use case example from [comment 1]: > pcs cluster cib-pipe \ > | pcs -f- resource create dummy Dummy \ > | pcs -f- ... \ > | pcs cluster cib-pipe the syntax would not need to change, but the behavior would change slightly wrt. treating the XMLs being piped: - a dedicated XML processing instruction (PI) at the very head would encode the temporary "original" file (first process in the pipeline would hold a lock on that for good measure), e.g. <?pcs-original file="/tmp/pcs-1001/s23Fsga.tmp"?> - such an annotation would be injected by the initial "pull" process and preserved by all the other ones - last process (~ cib-pipe) would then check if the PI is present and if positive, would adapt the push process akin to "pcs cluster cib-push NEW diff-against=OLD" BTW. accidental gentle reminder how unwieldy the original fetch-change-push syntax for pcs commands is: http://oss.clusterlabs.org/pipermail/users/2017-June/005879.html Based on [bug 1479009 comment 0], it might be preferable to have checksumming (accompanied with throughout-the-chain accumulated prior commands) a part of the "pipe protocol" coherently tighting the chain of pcs commands up so as to attest intergrity of the end-to-end processing and hence allowing to treat that group of commands as atomic block for the purpose of journaling. Note that using this one-way logically interconnected composites as a means to stack several operations prior to firing them at once has also the advantage of amortizing some actions that suffice to be performed just once -- like sanity checking the target cluster stack is compatible with what pcs can indeed control (cf. See Also). See bottom part [bug 1488044 comment 17] for why maintaining integrity in the pull-push round-trip ("checksumming" per [comment 6]) may be of importance -- here to prevent keen double-checking (e.g. of crm_feature_set within the target cluster) where it can be safely skipped. 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. |