Improved save_ssh_key celery task
This commit is contained in:
		
					parent
					
						
							
								2b541da94b
							
						
					
				
			
			
				commit
				
					
						21f51692c4
					
				
			
		
					 2 changed files with 20 additions and 17 deletions
				
			
		| 
						 | 
					@ -96,4 +96,5 @@ pyflakes==1.5.0
 | 
				
			||||||
billiard==3.5.0.3
 | 
					billiard==3.5.0.3
 | 
				
			||||||
amqp==2.2.1
 | 
					amqp==2.2.1
 | 
				
			||||||
vine==1.1.4
 | 
					vine==1.1.4
 | 
				
			||||||
file:///home/test/projects/Nico/cdist-pcoder/cdist/#egg=cdist-web
 | 
					#git+https://github.com/pcoder/cdist.git#egg=cdist-web
 | 
				
			||||||
 | 
					file:///home/mravi/gitprojects/cdist-pcoder/cdist/#egg=cdist-web
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,31 +1,33 @@
 | 
				
			||||||
from dynamicweb.celery import app
 | 
					 | 
				
			||||||
from celery.utils.log import get_task_logger
 | 
					 | 
				
			||||||
from django.conf import settings
 | 
					 | 
				
			||||||
from cdist.integration import configure_hosts_simple
 | 
					 | 
				
			||||||
import cdist
 | 
					import cdist
 | 
				
			||||||
import tempfile
 | 
					import tempfile
 | 
				
			||||||
import pathlib
 | 
					from cdist.integration import configure_hosts_simple
 | 
				
			||||||
 | 
					from celery.utils.log import get_task_logger
 | 
				
			||||||
 | 
					from django.conf import settings
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					from dynamicweb.celery import app
 | 
				
			||||||
 | 
					
 | 
				
			||||||
logger = get_task_logger(__name__)
 | 
					logger = get_task_logger(__name__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@app.task(bind=True, max_retries=settings.CELERY_MAX_RETRIES)
 | 
					@app.task(bind=True, max_retries=settings.CELERY_MAX_RETRIES)
 | 
				
			||||||
def save_ssh_key(hosts, keys):
 | 
					def save_ssh_key(self, hosts, keys):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    Saves ssh key into the VMs of a user using cdist
 | 
					    Saves ssh key into the VMs of a user using cdist
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    :param hosts: A list of hosts to be configured
 | 
					    :param hosts: A list of hosts to be configured
 | 
				
			||||||
    :param keys: A list of keys to be added
 | 
					    :param keys: A list of keys to be added
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    # Generate manifest to be used for configuring the hosts
 | 
					    return_value = True
 | 
				
			||||||
    with tempfile.NamedTemporaryFile() as tmp_manifest:
 | 
					    with tempfile.NamedTemporaryFile() as tmp_manifest:
 | 
				
			||||||
        tmp_manifest.writelines(['__ssh_authorized_keys root \\',
 | 
					        # Generate manifest to be used for configuring the hosts
 | 
				
			||||||
 | 
					        tmp_manifest.writelines([b'__ssh_authorized_keys root \\',
 | 
				
			||||||
                                 '  --key "{keys}"'.format(
 | 
					                                 '  --key "{keys}"'.format(
 | 
				
			||||||
                                     keys='\n'.join(keys))])
 | 
					                                     keys='\n'.join(keys)).encode('utf-8')])
 | 
				
			||||||
 | 
					        try:
 | 
				
			||||||
        f = pathlib.Path(tmp_manifest.name)
 | 
					            configure_hosts_simple(hosts,
 | 
				
			||||||
        configure_hosts_simple(hosts,
 | 
					                                   tmp_manifest.name,
 | 
				
			||||||
                               tmp_manifest.name,
 | 
					                                   verbose=cdist.argparse.VERBOSE_TRACE)
 | 
				
			||||||
                               verbose=cdist.argparse.VERBOSE_TRACE)
 | 
					        except Exception as cdist_exception:
 | 
				
			||||||
 | 
					            logger.error(cdist_exception)
 | 
				
			||||||
 | 
					            return_value = False
 | 
				
			||||||
 | 
					    return return_value
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue