#2 [RFE] Clufter needs to cope with arbitrary (not distro-aligned) versions of components for which the output is to be tailored
Opened 6 years ago by jpokorny. Modified 6 years ago

Currently, everything is tightly affixed to autodetected/user-provided
system+distro combo, which impacts the usability out of the pre-wired
ones and on systems that cannot be pinpointed to particular point
release (rolling release distros, self-service components scenarios
and the like).

Prelimary plan to resolve this:

  1. figure out an interchangable format to capture the "system
    snapshot" (versions of particular packages) statically, e.g.,
    an ini file in the drop-in directory formatted like:

    [<system>:<identifier>]
    corosync = 2.4.3
    pacemaker = 1.1.18
    pcs = 0.9.160[+easter-egg]
    
  2. add new clufter command, dist-profile, which is passed <system>
    and <identifier> from above and will run heuristic commands so
    as to figure out versions of some significant packages (e.g., using
    --version switches + parsing of the output), perhaps even some
    notable "extras" if available in a consumable way
    (luckily, pcs got listing of "capabilities", see:
    https://github.com/ClusterLabs/pcs/commit/f66bb3a578d0739b9dd3ec0d91ca8dd79769fff2),
    and such data will be stored into a file withing said drop-in
    directory (unless explicit path given as an argument)

  3. modify facts.py so as to scan said drop-in directory, fetch
    [<system>:<identifier>] handles, adding them to existing data
    respectively, as well as particular package versions

As a result, user can then specify [--sys <system>] --dist <identifier>
as with pre-wired distribution pointers. Furthermore, running
dist-profile can be automated in various points of system life-cycle,
e.g., when clufter installed, when any of the "precious" packages are
updated (in RPM packaging world, should be doable with triggers), etc.


Related to that, there should also be a way to settle particular
<identifier> (perhaps together with <system>) to be used as
a default, either as a fallback or override (to be decided, or
making both possible). One of the ideas would be to dedicate
reserved <identifier>s, e.g., default and override.

Metadata Update from @jpokorny:
- Issue assigned to jpokorny

6 years ago

Login to comment on this ticket.

Metadata