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