| 
									
										
										
										
											2011-11-02 17:54:03 +01:00
										 |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-17 09:33:34 +02:00
										 |  |  | metaparameters: | 
					
						
							|  |  |  |    - steal the metaparameters from puppet: | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-17 09:49:33 +02:00
										 |  |  |    # 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-17 09:33:34 +02:00
										 |  |  |    # 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-19 17:44:30 +02:00
										 |  |  |    - 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 | 
					
						
							|  |  |  |     | 
					
						
							| 
									
										
										
										
											2011-10-17 09:33:34 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-14 09:49:37 +02:00
										 |  |  | 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 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-14 10:12:02 +02:00
										 |  |  |    - 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.* | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-14 10:40:10 +02:00
										 |  |  |    - more granular debug output, | 
					
						
							|  |  |  |    [2] http://blog.ooz.ie/2011/03/python-logging-extending-standard.html | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-14 10:32:25 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-11 14:14:12 +02:00
										 |  |  | 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 | 
					
						
							|  |  |  |        | 
					
						
							| 
									
										
										
										
											2011-10-07 17:10:10 +02:00
										 |  |  | Code fixes needed: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |    - shutil, os.mkdir, etc. everywhere: catch/reraise exceptions correctly |