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