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