118 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			118 lines
		
	
	
	
		
			3.8 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| autorequire:
 | |
|    - objects defined in type manifests should be automatically prerequisites of the current object
 | |
|    - __foo/some-id
 | |
|       __other other-id --state present
 | |
|       => require="__other/other-id" __foo/some-id
 | |
| 
 | |
| 
 | |
| metaparameters:
 | |
|    - steal the metaparameters from puppet:
 | |
| 
 | |
|    # I have to be there before the other one
 | |
|    __directory /etc/ssh \
 | |
|       --before __file/etc/ssh/sshd_config
 | |
| 
 | |
|    # the other one has to be there before me
 | |
|    __file /etc/ssh/sshd_config \
 | |
|       --after __directory/etc/ssh
 | |
| 
 | |
|    # if I change, tell the other one about it
 | |
|    __file /etc/ssh/sshd_config \
 | |
|       --notify __init_script/etc/rc.d/sshd
 | |
| 
 | |
|    # whenever the other one changes, I want to know
 | |
|    __init_script /etc/rc.d/sshd \
 | |
|       --subscribe __file/etc/ssh/sshd_config
 | |
| 
 | |
|    - how does a type react to a received 'event'?
 | |
|       - maybe something like:
 | |
|          __some_type/
 | |
|             manifest
 | |
|             ...
 | |
|             gencode-refresh
 | |
|             ...
 | |
|       - gencode-refresh -> code-refresh -> ssh $target sh -e code-refresh
 | |
|    
 | |
| 
 | |
| 
 | |
| 
 | |
| logging:
 | |
|    - logging from type emulator without clobbering stdout
 | |
|       maybe implement logging server as described here [1]
 | |
|    [1] http://docs.python.org/py3k/howto/logging-cookbook.html#configuration-server-example
 | |
| 
 | |
|    - use different logger to limit output to current area of interest,
 | |
|       e.g.
 | |
|          explorer.$target_host: explorer related messages for the run for $target_host
 | |
|          manifest.$target_host: manifest related messages for the run for $target_host
 | |
|          ...
 | |
|       then one could filter e.g. on explorer.*
 | |
| 
 | |
|    - more granular debug output,
 | |
|    [2] http://blog.ooz.ie/2011/03/python-logging-extending-standard.html
 | |
| 
 | |
| 
 | |
| 
 | |
| tests:
 | |
| 
 | |
|    __init__():
 | |
|       - sets up env: __target_host
 | |
| 
 | |
|    run_initial_manifest():
 | |
|       - parameter is actually used (from __init__)
 | |
|       - ensure changing the manifest actually runs a different manifest
 | |
|       -> give ConfigInstall Constructor different manifest
 | |
|          -> different manifest is executed.
 | |
|       - test all submitted (from core to type manifest) variables:
 | |
|          - ENVIRONMENT
 | |
|          - they are set
 | |
|          - they contain the correct values
 | |
| 
 | |
|    run_type_manifest():
 | |
|       - test all submitted (from core to type manifest) variables:
 | |
|          - ENVIRONMENT
 | |
|          - they are set
 | |
|          - they contain the correct values
 | |
|       - same tests as for test_initial_manifest_*?
 | |
| 
 | |
|    run_manifest():
 | |
|       - test all submitted variables:
 | |
|          - ENVIRONMENT
 | |
|             - including __debug, if debug
 | |
|          - they are set
 | |
|          - they contain the correct values
 | |
|       - does $require work?
 | |
|       - check that exception raised, if manifest is not existent
 | |
| 
 | |
|    object_run():
 | |
|       - ensure no object is run twice
 | |
|       - ensure requirements are taken into account?
 | |
|          - and order of run is adjusted
 | |
|       - check (from extern?) that all needed variables are setup
 | |
|       - ensure no code-{local, remote} is created, 
 | |
|          if gencode is not producing code
 | |
|       - ensure THAT code-{local, remote} contains what gencode created
 | |
|       - abort if gencode-* fails
 | |
|       - abort if code-* fails
 | |
|          - abort == raise(FooException)
 | |
|       - gencode-*: ensure ENVIRONMENT is setup correctly
 | |
| 
 | |
|    run_type_explorer()
 | |
|       - ensure ALL type explores have been run
 | |
|       - ensure output is saved to correct path
 | |
|       - ensure a type with {0,1,2} explorers works ?
 | |
|          - none, one, multiple
 | |
|       - ensure ENVIRONMENT is setup correctly
 | |
|       - fails if ANY of the given explorer fails
 | |
| 
 | |
|    run_global_explorers():
 | |
|       - ensure ALL type explores have been run
 | |
|       - ensure output is saved to correct path
 | |
|       - ensure a type with {0,1,2} explorers works ?
 | |
|          - none, one, multiple
 | |
|       - ensure ENVIRONMENT is setup correctly
 | |
|       - fails if ANY of the given explorer fails
 | |
|       
 | |
| Code fixes needed:
 | |
| 
 | |
|    - shutil, os.mkdir, etc. everywhere: catch/reraise exceptions correctly
 |