29 lines
		
	
	
	
		
			723 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
	
		
			723 B
		
	
	
	
		
			Python
		
	
	
	
	
	
from shlex import quote
 | 
						|
 | 
						|
 | 
						|
defaults = {
 | 
						|
    'build-ci': {},
 | 
						|
}
 | 
						|
 | 
						|
@metadata_reactor.provides(
 | 
						|
    'users/build-ci/authorized_users',
 | 
						|
    'sudoers/build-ci',
 | 
						|
)
 | 
						|
def ssh_keys(metadata):
 | 
						|
    return {
 | 
						|
        'users': {
 | 
						|
            'build-ci': {
 | 
						|
                'authorized_users': {
 | 
						|
                    f'build-server@{other_node.name}'
 | 
						|
                        for other_node in repo.nodes
 | 
						|
                        if other_node.has_bundle('build-server')
 | 
						|
                },
 | 
						|
            },
 | 
						|
        },
 | 
						|
        'sudoers': {
 | 
						|
            'build-ci': {
 | 
						|
                f"/usr/bin/chown -R build-ci\\:{quote(ci['group'])} {quote(ci['path'])}"
 | 
						|
                    for ci in metadata.get('build-ci').values()
 | 
						|
            }
 | 
						|
        },
 | 
						|
    }
 |