forked from ungleich-public/cdist
		
	
		
			
				
	
	
		
			67 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| Meeting with: Steven, Thorsten, Nico
 | |
| 
 | |
| Problem: execute my code only if somebody else's changed something.
 | |
| 
 | |
| Proposals:
 | |
| 
 | |
| 1) Introduce new binary (Steven)
 | |
| 
 | |
| gencode:
 | |
| 
 | |
| if has_changed __file/etc/nginx.conf; then
 | |
|    echo mycode
 | |
| fi
 | |
| 
 | |
| 2) Use -f plus new variable to cover .cdist/has_code:
 | |
| 
 | |
| if [ -f $global/objects/__file/etc/nginx.conf/$has_code ]; then
 | |
|    echo mycode
 | |
| fi
 | |
| 
 | |
| And $has_code resolves to .cdist/has_code to cover the .cdist
 | |
| directory.
 | |
| 
 | |
| 3) Create a new tree that contains changed objects
 | |
| 
 | |
| if [ -e $global/changed/__file/etc/nginx.conf ]; then
 | |
|    echo mycode
 | |
| fi
 | |
| 
 | |
| 4) Use a \n seperated list
 | |
| 
 | |
| if grep -q __file/etc/nginx.conf $global/changed; then
 | |
|    echo mycode
 | |
| fi
 | |
| 
 | |
| X) General problem (add to FAQ):
 | |
| 
 | |
|    When having "do something only if somebody else did something"
 | |
|    it is possible that users get confused, because code will not
 | |
|    be executed.
 | |
| 
 | |
|    This may especially happen in code development:
 | |
| 
 | |
|    a) User creates __file/etc/nginx.conf
 | |
|    b) User creates a new type __nginx that restarts
 | |
|       nginx, only if __file/etc/nginx.conf changed.
 | |
|       But __file/etc/nginx.conf has already been deployed
 | |
|       and thus will never be restarted.
 | |
| --------------------------------------------------------------------------------
 | |
| 
 | |
| Introduce exclude/conflicts attribute for types?
 | |
| 
 | |
|    Handling in cdist vs. handling in the types themselves?
 | |
|    
 | |
|    Examples: __file, __link, __directory
 | |
| 
 | |
|    Need to handle errors on low level for those anyway.
 | |
| 
 | |
|    Conclusion: Wait until we need exclude in a different type.
 | |
| 
 | |
|    Pro:
 | |
|       Throw error as soon as possible without touching the target.
 | |
| 
 | |
|    Contra:
 | |
|       No needod for most cases.
 | |
|       Very controversal for stuff like __package and __package_gem
 | |
|       for instance: rails; Should those two conflict or not?
 |