blob: 0cf0bf10e1646b943517b4efbad1fc30ec44967f [file] [log] [blame]
martin f. krafftcc8851d2013-08-27 13:43:16 +02001==================
2reclass to-do list
3==================
4
5Testing framework
6-----------------
7There is rudimentary testing in place, but it's inconsistent. I got
8side-tracked into discussions about the philosphy of mocking objects. This
9could all be fixed and unified.
10
11Also, storage, outputters, CLI and adapters have absolutely no tests yet…
12
13Configurable file extension
14---------------------------
15Right now, ``.yml`` is hard-coded. This could be exported to the
16configuration file, or even given as a list, so that ``.yml`` and ``.yaml``
17can both be used.
18
19Verbosity, debugging
20--------------------
21Verbose output and debug logging would be a very useful addition to help
22people understand what's going on, where data are being changed/merged, and to
23help solve problems.
24
25Default classes
26---------------
27Through the configuration file, it should be possible to define a set of
28default classes that are applied to all nodes (before anything else).
29
30This would be covered by the next point:
31
32Wildcards, regexpclass mapping
33-------------------------------
34I envision the ability to define mappings between regexps and classes, e.g.::
35
36 /^www\d+/ webservers
37 /\.ch\./ hosted@switzerland
38
39These classes would be applied before a YAML file matching the actual hostname
40would be read and merged.
41
42Data from CMS for interpolation
43-------------------------------
44Depending on the CMS in question, it would be nice if |reclass| had access to
45the host-specific data (facts, grains, etc.) and could use those in parameter
46interpolation. I can imagine this working for Salt, where the ``grains``
47dictionary (and results from previous external node classifiers) is made
48available to the external node classifiers, but I am not convinced this will
49be possible in Ansible and Puppet.
50
51Ideally, |reclass| could unify the interface so that even templates can be
52shared between the various CMS.