forked from ungleich-public/cdist
		
	
		
			
				
	
	
		
			49 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			49 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
An alternative / complementary approach to notifications: triggers (or actions?)
 | 
						|
 | 
						|
A type may support various actions by creating files in its subdirectory
 | 
						|
"actions". Other types can trigger an action of a different type or object
 | 
						|
by calling them (indirectly?):
 | 
						|
 | 
						|
 | 
						|
if grep "__file/etc/nginx/conf.d/.*:copy" "$__notifications"; then
 | 
						|
 | 
						|
    # Call action from a type
 | 
						|
    cdist trigger __nginx/reload
 | 
						|
fi
 | 
						|
 | 
						|
 | 
						|
Not sure whether this approach (calling "actions" of other types) is sane,
 | 
						|
as nginx should probably better know if it should be restarted "itself".
 | 
						|
 | 
						|
 | 
						|
--------------------------------------------------------------------------------
 | 
						|
 | 
						|
Alternate approach:
 | 
						|
 | 
						|
__nginx_vhost www.some-domain.ch --custom << eof
 | 
						|
some custom code for __nginx_vhost inclusion
 | 
						|
eof
 | 
						|
 | 
						|
__nginx_vhost:
 | 
						|
 | 
						|
    manifest:
 | 
						|
        # __nginx_vhost requires __nginx: creates directories
 | 
						|
 | 
						|
        require"$__object_name" __nginx --require-only
 | 
						|
        
 | 
						|
        # Do WE or __file ... depend on nginx?
 | 
						|
        cdist require __nginx
 | 
						|
 | 
						|
        # Create file that contains the giving code
 | 
						|
        __file /etc/nginx/conf.d/www.some-domain.ch
 | 
						|
 | 
						|
        require="__nginx" __file /etc/nginx/conf.d/www.some-domain.ch
 | 
						|
 | 
						|
__nginx:
 | 
						|
    manifest:
 | 
						|
        __package nginx --state present
 | 
						|
 | 
						|
        __file some-custom-files
 | 
						|
 | 
						|
    gencode-remote:
 | 
						|
        if first_install or file changed:
 |