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 opennebula_api.models import OpenNebulaManager
 | 
			
		||||
from opennebula_api.serializers import VirtualMachineSerializer
 | 
			
		||||
from utils.hosting_utils import get_all_public_keys
 | 
			
		||||
from utils.forms import UserBillingAddressForm
 | 
			
		||||
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.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:
 | 
			
		||||
        logger.error(str(e))
 | 
			
		||||
        try:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue