Add save_key_in_vm_template and get_all_vmids methods
This commit is contained in:
		
					parent
					
						
							
								5146daa680
							
						
					
				
			
			
				commit
				
					
						3602bb0eb7
					
				
			
		
					 1 changed files with 38 additions and 1 deletions
				
			
		| 
						 | 
				
			
			@ -371,7 +371,31 @@ class OpenNebulaManager():
 | 
			
		|||
 | 
			
		||||
        return vm_terminated
 | 
			
		||||
 | 
			
		||||
    def save_key_in_opennebula(self, ssh_key):
 | 
			
		||||
    def save_key_in_vm_template(self, vm_id, ssh_key):
 | 
			
		||||
        """
 | 
			
		||||
        Update the template of a given VM and set the ssh key of the user
 | 
			
		||||
        :param vm_id: the identifier of the VM object
 | 
			
		||||
        :param ssh_key: a newline(\n) separated ssh key string that needs to be
 | 
			
		||||
        set in the VM template
 | 
			
		||||
        :return:
 | 
			
		||||
        """
 | 
			
		||||
        UPDATE_TYPE = 1
 | 
			
		||||
        return_value = self.client.call(
 | 
			
		||||
            'vm.updateconf',
 | 
			
		||||
            vm_id,
 | 
			
		||||
            '<CONTEXT><SSH_PUBLIC_KEY>%s</SSH_PUBLIC_KEY></CONTEXT>' % ssh_key,
 | 
			
		||||
            UPDATE_TYPE
 | 
			
		||||
        )
 | 
			
		||||
        if type(return_value) == int:
 | 
			
		||||
            logger.debug(
 | 
			
		||||
                "Saved the key in VM Template success : %s" % return_value)
 | 
			
		||||
        else:
 | 
			
		||||
            logger.error(
 | 
			
		||||
                "Could not save the key in VM Template. %s" % return_value)
 | 
			
		||||
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    def save_key_in_opennebula_user(self, ssh_key):
 | 
			
		||||
        """
 | 
			
		||||
        Save the given ssh key in OpenNebula user
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -613,6 +637,19 @@ class OpenNebulaManager():
 | 
			
		|||
                "Keys and/or hosts are empty, so not managing any keys"
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
    def get_all_vmids(self):
 | 
			
		||||
        owner = CustomUser.objects.filter(email=self.email).first()
 | 
			
		||||
        all_orders = HostingOrder.objects.filter(customer__user=owner)
 | 
			
		||||
        vm_ids = []
 | 
			
		||||
        if len(all_orders) > 0:
 | 
			
		||||
            logger.debug("The user {} has 1 or more VMs. We need to configure "
 | 
			
		||||
                         "the ssh keys.".format(self.email))
 | 
			
		||||
            vm_ids = [order.vm_id for order in all_orders]
 | 
			
		||||
        else:
 | 
			
		||||
            logger.debug("The user {} has no VMs. We don't need to configure "
 | 
			
		||||
                         "the ssh keys.".format(self.email))
 | 
			
		||||
        return vm_ids
 | 
			
		||||
 | 
			
		||||
    def get_all_hosts(self):
 | 
			
		||||
        """
 | 
			
		||||
        A utility function to obtain all hosts of this owner
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue