Bug 1367536 - Rebase clufter component [RHEL 6.9]
Summary: Rebase clufter component [RHEL 6.9]
Alias: None
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: clufter
Version: 6.5
Hardware: All
OS: Linux
Target Milestone: rc
: ---
Assignee: Jan Pokorný [poki]
QA Contact: cluster-qe@redhat.com
Steven J. Levine
Depends On: 1328078 1343661 1387561
Blocks: 1381569
TreeView+ depends on / blocked
Reported: 2016-08-16 17:07 UTC by Jan Pokorný [poki]
Modified: 2017-03-21 11:07 UTC (History)
17 users (show)

Fixed In Version: clufter-0.59.8-1.el6
Doc Type: Release Note
Doc Text:
_clufter_ rebased to version 0.59.8 The _clufter_ packages have been upgraded to upstream version 0.59.8, which provides a number of bug fixes, new features, and user experience enhancements over the previous version. Among the notable updates are the following: * When converting either CMAN or Pacemaker stack specific configuration into the respective sequence of `pcs` commands with the `*2pcscmd` families of commands, the `clufter` tool no longer suggests "pcs cluster cib file --config", which does not currently work for subsequent local-modification `pcs` commands. Instead it suggests "pcs cluster cib file". (RHBZ#1328078) * The `clufter` tool outputs now may vary significantly depending on the specified distribution target since the tool now aligns the output with what the respective environment, such as the `pcs` version, can support. Because of this, your distribution or setup may not be supported, and you should not expect that one sequence of `pcs` commands that the `clufter` tool produces is portable to a completely different environment. * The `clufter` tool now supports several new features of the `pcs` tool, including alert handlers configuration. Additionally, the `clufter` tool supports older features recently added to the `pcs` tool, including resource sets for colocation and order constraints. * When converting either CMAN + RGManager stack specific configuration into the respective Pacemaker configuration (or sequence of `pcs` commands reflecting the same) with the `ccs2pcs*` families of commands, the `clufter` tool no longer refuses to convert entirely valid lvm resource agent configuration, which could happen before.
Clone Of: 1343661
: 1526494 (view as bug list)
Last Closed: 2017-03-21 11:07:21 UTC
Target Upstream Version:

Attachments (Terms of Use)

System ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2017:0716 normal SHIPPED_LIVE clufter bug fix update 2017-03-21 12:41:28 UTC

Description Jan Pokorný [poki] 2016-08-16 17:07:36 UTC
+++ This bug was initially created as a clone of Bug #1343661 +++

+++ This bug was initially created as a clone of Bug #1269964 +++

Upstream development of clufter has progressed (since 6.8 package
till 6.9 package + something more likely to come) so this asks for
a rebase.

More specifically, clufter received plentiful bug fixes and enhancements
compared to previous RHEL minor release (6.8/clufter-0.56.2),
notably commits in 0.56.3:

filters/coro2pcscmd[cluster,corosync]: make pcs --wait check silent
filters/configuration[cib2pcscmd]: avoid "pcs cluster cib <file> --config"

both of which are relevant to [bug 1328078].

... plus ...

    - bug fixes:
      . with *2pcscmd* commands, clufter would previously emit doubled
        "pcs" at the beginning for the command defining simple order
      . with *2pcscmd* commands, clufter would previously omit and/or
        logic operators between each pair of atomic expressions
        forming a rule for location constraint
      . with  *2pcscmd* commands, clufter would previously disregard
        master/slave roles correctly encoded with a capitalized first
        letter in CIB for colocation and location constraints
    - feature extensions:
      . with *2pcscmd* commands, clufter now supports resource sets
        for colocation and order constraints
      . with *2pcscmd* commands, clufter now supports ticket contraints
        (incl. resource sets)

    - bug fixes:
      . the upstream-suggested (meta) specfile and its form of advising
        how to run Python intepreter (added with previous release)
        turned to cause issues if setuptools are not recent enough,
        so double-check that no extra double-quoting is injected
        in any case
      . some internal-only negligence was fixed to match the design
        intentions (may affect too relaxed 3rd party plugins)
    - feature extensions:
      . pcs2pcscmd* commands are now aware of quorum device configured
        in corosync.conf and are able to emit respective configuration
        commands using pcs tool

    - bug fixes:
      . previously, pcs2pcscmd* commands would attempt to have quorum
        device configured using "pcs quorum add" whereas the correct syntax
        is "pcs quorum device add"
      . with {cib,pcs}2pcscmd* commands, clufter no longer chokes on
        validation failures (unless --nocheck provided) due to source CIB
        file using newer "validate-with" validation version specification
        than supported so far, such as with pacemaker-2.5 introducing the
        alert handlers stanza in CIB, because the support has been extended
        up that very version (only affects deployments that do not borrow
        the schemas from the installed pacemaker on-the-fly during a build
        stage, which is not the case when building RPMs using the upstream
    - feature extensions:
      . {cib,pcs}2pcscmd* commands are now aware of configured alert
        handlers in CIB and able to emit respective configuration
        commands using pcs tool
    - functional changes:
      . due to too many moving targets (corosync, pacemaker, pcs) with
        features being gradually added, clufter as of this release
        relies on the specified distribution target (which basically boils
        down to snapshot of the supported features, as opposed to passing
        zillion extra parameters expressing the same) stronger than ever;
        this has several implications: do not expect that one sequence
        of pcs commands at the clufter's output is portable to completely
        different environment, and your distribution/setup may not be
        supported (I try to cover Fedora, RHEL+derivates, Debian and Ubuntu
        directly) in which case facts.py (where everything is tracked)
        needs to be patched

    - bug fixes:
      . internal: facts.infer_dist('*') results would previously diverge
        from results for a specific query
      . X.04 Ubuntu's versioning fanciness is now ditched in favor of
        canonical (sic) X.4 versioning; this was not a buggy behavior
        per se, but internally, 04 used to be parsed as octal literal
        which would go bananas with expressions like '08';
        to maintain compatibility, respective string-held X.04 aliases
        were introduced, though
    - feature extensions:
      . there is now --list-dists option to clufter that is intended
        mainly to suggest as to which --dist option values (note this
        has an increased importance, at least as of the previous
        release) are supporte
    - internal enhancements:
        decisions about the parameters to feed XSLT processing proper

    - feature extensions:
      . *2pcscmd commands now first emit a comment block containing key
        pieces of information about the run, such as a current date,
        library version, the overall command that was executed, and
        importantly (more and more), the target system specification
        (this utilizes a new, dedicated cmd-annotate filter)
    - internal enhancements:
      . so far, all formats used to represent concrete information
        representable in various pertaining forms;  generator type
        of filters (such as mentioned cmd-annotate) imposed the
        existence of a special "empty" format (analogous to "void"
        in C) for generators to map from into something useful,
        so this release introduces "Nothing" format and makes sure
        it's generally usable throughout the internals just as well

    - feature extensions:
      . *2pcscmd commands will now colorize the output (very plain support,
        more to be expected) if either a terminal is used as a sink (and
        colors not explicitly forbidden) or if this is enforced; so far
        only shell comments and some parts of pcs syntax are supported,
        but even in this form, it should help users to wrap their heads
        (eyes) around what can be considered quite a complex output
        from the first sight

    - feature extensions:
      . when *2pcscmd commands colorize the output, upcoming booth-related
        pcs commands are considered as well
    - bug fixes:
      . {ccs,pcs}2pcscmd* would previously exceed a recursion limit due
        to not catching the bottom of the recursion properly
      . with *2pcscmd* commands, --dump=cmd-annotate switch would
        previously cause troubles as newly introduced Nothing format
        lacked "hash" property (which is used to construct reasonably
        unique file name to store the intermediate result at individual
        phases of the filter-piping process)

    - feature extensions:
      . when *2pcscmd or cmd-wrap commands colorize the output, "meta"
        words for the shell are distinguished as well (related to the
        first bug that this very handling also helped in nailing down)
    - bug fixes:
      . {ccs,pcs}2pcscmd* commands would previously emit an incorrectly
        quoted command (in the self-check the following sequence of
        commands is indeed being run on the to-be-clustered machine)
        unless -g or --noguidance option was used;
        in turn the respective internals received a considerable
        overhaul to be able to cope with nested commands
        (command/process substitution) better;
        for users of previous releases, the remedy is to use this -g switch
        or to pass --noop=cmd-wrap to suppress the faulty filter from
        the pipeline (at the expense of not-so-easy-to-consume output)
      . *2pcscmd* commands would previously omit colorizing some parts
        of pcs syntax, contrary to the predestined expectations; e.g.:
        pcs -f tmp-cib.xml constraint colocation SERVICE-foo rule ...

(see also https://pagure.io/clufter/releases)

Comment 2 Jan Pokorný [poki] 2016-10-20 21:28:43 UTC
    - bug fixes:                                                        
      . ccs2pcs* commands would previously choke when converting
        configuration of lvm resource agent from rgmanager's suite
        into ocf:heartbeat:LVM counterpart anytime lv_name parameter
        was specified -- it turns out this behavior, based on incorrect
        assumptions (https://bugzilla.redhat.com/1286292), was an
        unfounded show-stopper (lv_name is commonly specified even
        if superfluously) so now only misguided configurations using
        different LVs (values of lv_name) pertaining given VG (vg_name)
        are rejected
      . *2pcscmd* commands, particularly and only with pcs commands
        configuring alert listeners, would previously disregard
        "accumulate CIB changes, then push" implicit behavior, shooting
        the changes at live cluster stack right away, and moreover the
        respective syntax did not reflect a slight adjustment it
        received during the final (though a bit belated) fine-tuning
        [resolves: bug 1381569]
        {originally: [resolves: rhbz#1381522]}

Comment 8 Jan Pokorný [poki] 2017-02-08 09:47:52 UTC
Re changelog, also:

    - bug fixes:
      . output of {ccs,pcs}2pcscmd commands could previously confuse users
        as to which shell interpreter the generated script is suitable for,
        especially when passing --noguidance (or --dry-run) as it would
        generate process substitution, which is a construct beyond POSIX,
        so now the expected (build-time configurable) shell selection
        (POSIX or bash-like) is emitted as a standard shebang ("#!" line)
        [bug 1381531]
      . bash completion would previously expose unexpected error when
        triggering the completion once '=' in a standard "-[-]option=value"
        syntax has been typed, whereas now this is fixed and suitable
        options offer also the switches with a trailing '=' for convenience
        [bug 1381565]
    - functional changes:
      . with ccs2pcs* conversions, also the version of resource-agents
        package is now considered, currently with an impact on conversions
        of named rgmanager's resource agent targeting the version that
        has not received the native counterpart yet
    - internal enhancements:
      . caching of the internal desparsified facts was fixed (broken
        from beginning, but became exposed only after a new style of
        access had been exercised)

    - bug fixes:
      . some configuration flags (sort of meta attributes) of how to treat
        services or particular resources by rgmanager were previously
        dropped upon initial resource tree flattening phase (via ccs_flatten
        binary) whereas now, some are selectively restored on the output;
        in particular, omitting __failure_expire_time/__max_failures
        was a downright a bug as they were expected by the filters
        (ccsflat2cibprelude) further in the chain, the others are
        restored for possible future use: __enforce_timeouts and
      . ccs_flatten binary received an update of function responsible
        for parsing time-related inputs so as to harden against values
        encoded as unexpectedly long strings or similar exotic cases
        [related rgmanager's bugs: bug 1036652, bug 1414139]
    - internal enhancements:
      . ccs_flatten binary sources and snippets of related filters
        received some more maintenance care

Comment 13 errata-xmlrpc 2017-03-21 11:07:21 UTC
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.


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