|
|
|
This document defines how to continue work on cdist:
|
|
|
|
|
|
|
|
x general stuff
|
|
|
|
x Define configuration paths (doc/internal/config-layout)
|
|
|
|
|
|
|
|
x get information from target (stage 1)
|
|
|
|
x Define how to get information from targets
|
|
|
|
x Create shell script that creates code to run on client (cdist-build-explorer)
|
|
|
|
x Redo explorers (see manpage)
|
|
|
|
x run initial manifest (stage 2)
|
|
|
|
x Create configuration tree from manifest
|
|
|
|
x write binaries, which create the tree when called from manifest (cdist_tree_wrapper)
|
|
|
|
|
|
|
|
x be able to run manifest of types (stage 3)
|
|
|
|
x Parse configuration tree/objects recursively
|
|
|
|
x can/may types modify tree?
|
|
|
|
-> yes, of everything a type created itself!
|
|
|
|
x may open door for getting information from manifest / other stuff
|
|
|
|
x Cleanly define paths for object creation, especially recursive calls
|
|
|
|
x doc/man/cdist-config-layout.text
|
|
|
|
x cd $__object_dir, before running manifest
|
|
|
|
x rename $__object_dir to $__object_base_dir
|
|
|
|
x use $type/manifest instead of $type/init
|
|
|
|
x find $object_id in recursive runner (before merge)
|
|
|
|
- move attributes of object to subdir attributes
|
|
|
|
- run explorers for every object
|
|
|
|
|
|
|
|
x generate code to be executed on clients (stage 4)
|
|
|
|
x for one object
|
|
|
|
x for all objects
|
|
|
|
|
|
|
|
x execute code on client (stage 5)
|
|
|
|
|
|
|
|
- Other stuff pre 1.0:
|
|
|
|
- Write some basic types
|
|
|
|
- file (with directory)
|
|
|
|
- package
|
|
|
|
- doc cleanup for 1.0:
|
|
|
|
- ensure every file in bin/ has a correspondent manpage
|
|
|
|
- cdist manpage (main manpage)
|
|
|
|
- cleanup following man + their tree:
|
|
|
|
- cdist-language [CLEANUP AND REMOVE]
|
|
|
|
- cdist-design.text [CLEANUP AND REMOVE]
|
|
|
|
- cdist-push-pull [WRITE]
|
|
|
|
- cdist-quickstart [WRITE]
|
|
|
|
- how to write a minimal host manifest
|
|
|
|
- cdist-types [IMPORTANT]
|
|
|
|
- only do necessary work [TYPE IMPLEMENTATION HINTS]
|
|
|
|
- install packages only if not existent
|
|
|
|
- copy file only if different
|
|
|
|
- cdist [IMPORTANT]
|
|
|
|
- cdist-explorers
|
|
|
|
- add terminology
|
|
|
|
- define steps within configuration apply
|
|
|
|
- detect impossible/unsafe things:
|
|
|
|
- creating a file twice
|
|
|
|
- installing and removing a package
|
|
|
|
- and report location of occurence
|
|
|
|
- parse afterwards?
|
|
|
|
- multi master setups
|
|
|
|
- templating
|
|
|
|
- how to define templates
|
|
|
|
- variable substitution from shell may be problematic
|
|
|
|
- SHELL SCRIPTS! (executables? do not support?)
|
|
|
|
- stdout == output of template == what will be used
|
|
|
|
- cleanup website
|
|
|
|
- remove HACKERS_README
|
|
|
|
- create doc/dev/HACKERS_README
|
|
|
|
- Add install target to Makefile
|
|
|
|
- create cdist-config-init to create basic tree
|
|
|
|
- cdist-type integration!
|
|
|
|
- DOC document "cd $__object_dir, before running manifest" in doc/man/cdist-types.text
|
|
|
|
- DOC document that $type/manifest is executed for every object/instance
|
|
|
|
- DOC: types can always access __cdist_out_objects, __cdist_out_explorers, __cdist_out_execs
|
|
|
|
--> create cdist-variables document?
|
|
|
|
|
|
|
|
- include generation in makefile
|
|
|
|
|