Add ssh keys on creation of new VM
This commit is contained in:
		
					parent
					
						
							
								805f1129e8
							
						
					
				
			
			
				commit
				
					
						0561688f84
					
				
			
		
					 1 changed files with 19 additions and 0 deletions
				
			
		|  | @ -10,6 +10,7 @@ from hosting.models import HostingOrder, HostingBill | ||||||
| from membership.models import StripeCustomer | from membership.models import StripeCustomer | ||||||
| from opennebula_api.models import OpenNebulaManager | from opennebula_api.models import OpenNebulaManager | ||||||
| from opennebula_api.serializers import VirtualMachineSerializer | from opennebula_api.serializers import VirtualMachineSerializer | ||||||
|  | from utils.hosting_utils import get_all_public_keys | ||||||
| from utils.forms import UserBillingAddressForm | from utils.forms import UserBillingAddressForm | ||||||
| from utils.models import BillingAddress | from utils.models import BillingAddress | ||||||
| 
 | 
 | ||||||
|  | @ -134,6 +135,24 @@ def create_vm_task(self, vm_template_id, user, specs, template, | ||||||
|         } |         } | ||||||
|         email = EmailMessage(**email_data) |         email = EmailMessage(**email_data) | ||||||
|         email.send() |         email.send() | ||||||
|  |          | ||||||
|  |         if 'pass' in user: | ||||||
|  |             # try to see if we have the IP and that if the ssh keys can | ||||||
|  |             # be configured | ||||||
|  |             new_host = manager.get_primary_ipv4(vm_id) | ||||||
|  |             if new_host is not None: | ||||||
|  |                 public_keys = get_all_public_keys(owner) | ||||||
|  |                 keys = [{'value': key, 'state': True} for key in public_keys] | ||||||
|  |                 if len(keys) > 0: | ||||||
|  |                     logger.debug( | ||||||
|  |                         "Calling configure on {host} for {num_keys} keys".format( | ||||||
|  |                             host=new_host, num_keys=len(keys))) | ||||||
|  |                     # Let's delay the task by 75 seconds to be sure  | ||||||
|  |                     # that we run the cdist configure after the host  | ||||||
|  |                     # is up | ||||||
|  |                     manager.manage_public_key(keys,  | ||||||
|  |                                               hosts=[new_host], | ||||||
|  |                                               countdown=75) | ||||||
|     except Exception as e: |     except Exception as e: | ||||||
|         logger.error(str(e)) |         logger.error(str(e)) | ||||||
|         try: |         try: | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue