+lunchlogfile
Signed-off-by: Nico Schottelius <nico@brief.schottelius.org>
This commit is contained in:
		
					parent
					
						
							
								9ee774c31b
							
						
					
				
			
			
				commit
				
					
						67abdb3399
					
				
			
		
					 1 changed files with 120 additions and 0 deletions
				
			
		
							
								
								
									
										120
									
								
								doc/dev/logs/2012-02-15.steven
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										120
									
								
								doc/dev/logs/2012-02-15.steven
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,120 @@ | ||||||
|  | - parameter/setting default from manifest | ||||||
|  |     - current bug | ||||||
|  |     - proposal 1: parameter/default/$name (for optional ones) | ||||||
|  |         - new way | ||||||
|  |         - catches --state absent|present | ||||||
|  |         - needs changes of types | ||||||
|  |         - also possible for explorer | ||||||
|  |         - support for it in core? | ||||||
|  |             - handling of ${o} $o "$o" ? | ||||||
|  |             - handling which variables? | ||||||
|  |             - introduction of "templating language" | ||||||
|  |                 - aka macros | ||||||
|  |                 - possible problems: | ||||||
|  |                     - inconsistency | ||||||
|  |                     - redoing shell functionality | ||||||
|  |                     - raising expectations for more templating from users | ||||||
|  |                 - possible benefit | ||||||
|  |                     - no need for eval | ||||||
|  |                     - once in core, not everytime in type | ||||||
|  |                         - OTOH: one extra word.  | ||||||
|  |                         - a=$(cat $__object/parameter/name) vs. $(eval $(cat $__object/parameter/name)) | ||||||
|  |         - only possible for static defaults | ||||||
|  |             - --name overrides name not possible vs. object_id | ||||||
|  |                 - Is this the only case???? | ||||||
|  |                     - if yes: don't care. | ||||||
|  |                 - possible solution: | ||||||
|  |                     - echo '/$__object_id' > typename/parameter/default/name | ||||||
|  |                     - eval $(cat $__object/parameter/name) | ||||||
|  |                         - probably allows code injection | ||||||
|  |                             - is possible anyway??? | ||||||
|  |                             - $(cat /etc/shadow) | ||||||
|  |                         - other eval side effects??? | ||||||
|  |                             - none: go for it | ||||||
|  |                             - some: have headache | ||||||
|  |                             - many: don't do | ||||||
|  |     - proposal 2: 2 dbs (user input vs. stuff changable by type) | ||||||
|  |         - explicit 2nd db [parameter_user and parameter/] | ||||||
|  |         - not very clean (both agreed) | ||||||
|  |     - proposal 3: parameter are read-only | ||||||
|  |         - breaks current types (in core probably elsewhere) | ||||||
|  |         - can't enforce, but user is on his own => breaks, her problem | ||||||
|  |         + clean seperation between core and type (nico) | ||||||
|  |             - parameter belongs to type not core (steven) | ||||||
|  |     - proposal 4: core ignores changes in parameter/* of object | ||||||
|  |         - implicit 2nd db [see automagic below] | ||||||
|  |         - steven+++ | ||||||
|  |         - does not work with divergent emulator not being in core | ||||||
|  |             - because emulators primary db __is__ fs. | ||||||
|  | 
 | ||||||
|  | 1 manifest: | ||||||
|  | 
 | ||||||
|  | __foo bar == emulator | ||||||
|  | echo present > $__global/object/__foo/bar/parameter/state | ||||||
|  | 
 | ||||||
|  | # fails | ||||||
|  | __foo bar == emulator | ||||||
|  | 
 | ||||||
|  | ! automagic / filesystem | ||||||
|  |     ! fsproperty: | ||||||
|  |         - kill, write explicitly to disk | ||||||
|  | 
 | ||||||
|  |     - implicit/automatic writes/read to fs | ||||||
|  |         - explicit interfaces are better then implicit | ||||||
|  |         - same problems as in cdist 1.x to 2.x move! (environment!) | ||||||
|  |     - format on disk should not change/dictate code flow | ||||||
|  |         - degrade python to shell (nico++! steven--) | ||||||
|  |             - user should not care about python, ruby, .net or ASM implementation (steven++ nico++) | ||||||
|  | 
 | ||||||
|  |     ? proposal 1: diverge emulator / core | ||||||
|  |         - emulator verifies input | ||||||
|  |         - emulator writes to fs | ||||||
|  |         - core reads/syncs from/to fs before passing control to user | ||||||
|  | 
 | ||||||
|  |     ? proposal 2: emulator is dumb and passes data to core | ||||||
|  |         - core creates objects | ||||||
|  |         - no fs involved | ||||||
|  |         - core reads/syncs from/to fs before passing control to user | ||||||
|  |         - passing: | ||||||
|  |             - full objects via pickle | ||||||
|  |             - parameters only | ||||||
|  |             - how??? | ||||||
|  |                 - unix socket? | ||||||
|  |                     - not everywhere possible? | ||||||
|  |                 - tcp / ip | ||||||
|  |                     - not everywhere possible | ||||||
|  |                         - chroot / local only | ||||||
|  |                 - rfc 1149 | ||||||
|  |                     - not everywhere possible | ||||||
|  |                         - missing avian carriers | ||||||
|  |                 - 0mq | ||||||
|  |                     - not everywhere possible | ||||||
|  |                         - not installed | ||||||
|  |                 - shm (ipcs and friends) | ||||||
|  |                     - not everywhere possible | ||||||
|  |                         - no /dev/shm, different libraries? cleanups needed... | ||||||
|  |                 - what speaks against FS? | ||||||
|  |                     - emulator_input/.../ | ||||||
|  | 
 | ||||||
|  |                 - nico: to fancy probably | ||||||
|  | 
 | ||||||
|  | ! boolean implementation | ||||||
|  |     - nico:  | ||||||
|  |         - parameters/boolean: document | ||||||
|  |         - argparse changes (consider parameters/boolean) | ||||||
|  |             - create  | ||||||
|  |     - can be implemented with changes in emulator | ||||||
|  |         - use store_true, del if false => never seen by core | ||||||
|  |     - INDEPENDENT INDEPENDT OF FS.PROPERTIES!!111111! | ||||||
|  | 
 | ||||||
|  | - emulator: | ||||||
|  |     - how much integrated into core | ||||||
|  |         - also: using CdistObject???? | ||||||
|  |     - dependency on filesystem: good (nico) | bad (steven) | ||||||
|  | 
 | ||||||
|  | - singleton / support without object_id | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | - logging divergent between emulator / core | ||||||
|  |     - no problem (nico) | ||||||
|  |     - may be helpful (steven) | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue