blob: 5de77c4a52bd4d6a9a1120944397633856cb592b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
clufter aka Cluster Filter
==========================
Toolset for cluster config conversion, primarily from cluster.conf
as recognized by CMAN-based cluster to something to configure your
Pacemaker-based one (with optional get-ready heavy lifting by pcs).
Prerequisites
-------------
Python-wise:
- lxml (python-lxml)
general:
- Python 2
- ccs_flatten from pacemaker/extra/rgmanager:
./configure --with-cman=1 && cd pacemaker/extra/rgmanager && make
tests:
- outside of Python 2.7+, unittest2 (python-unittest2) is needed
Concepts
--------
There are a few concepts that tries to unify effective conversion
recipes in a relatively loosely coupled way and with clear
relationships:
. command is a composition of one or more filters (see below)
with some level of flexibility (tee-like splits, etc.)
. filter is an isolated set of steps from object _A_ of a format _X_
(see below) and having the respective internal representation _x_
to the same or modified object _A'_ of a format _Y_ and having
the respective internal representation _y_ (possibly _X_=_Y_
and/or _x_=_y_, whereas string representation is frequented)
. format is something having possibly many more-or-less interchangeable
representations (string, parsed XML/ElementTree, ...), whereas
the possible format transitions depend on the available filters;
note that the format alone does not fully specify/restrict the set
of values/properties of objects being held as these are further
refined by previously used uni-format filters (context of
previous transitions plays the role)
. protocol denotes a form of internal representation interchange
(either internal in the filters' chain or user-requested IO)
TBD
|