added create vm feature from a normal user in opennebula
This commit is contained in:
		
					parent
					
						
							
								bd83545653
							
						
					
				
			
			
				commit
				
					
						abf6dbddce
					
				
			
		
					 3 changed files with 139 additions and 20 deletions
				
			
		|  | @ -176,13 +176,27 @@ class VirtualMachinePlan(AssignPermissionsMixin, models.Model): | |||
|         self.save(update_fields=['status']) | ||||
| 
 | ||||
|     @classmethod | ||||
|     def get_vm(self, email, vm_id): | ||||
|     def create_opennebula_vm(self, user, specs): | ||||
|         opennebula_client = OpenNebulaManager( | ||||
|             user.email, | ||||
|             user.password[0:20], | ||||
|             create_user=True | ||||
|         ) | ||||
| 
 | ||||
|         vm = opennebula_client.create_vm(specs) | ||||
|         return vm | ||||
| 
 | ||||
|     @classmethod | ||||
|     def get_vm(self, user, vm_id): | ||||
|         # Get opennebula client | ||||
|         opennebula_client = OpenNebulaManager() | ||||
|         opennebula_client = OpenNebulaManager( | ||||
|             email=user.email, | ||||
|             password=user.password[:20], | ||||
|         ) | ||||
| 
 | ||||
|         # Get vm given the id | ||||
|         vm = opennebula_client.get_vm( | ||||
|             email, | ||||
|             user.email, | ||||
|             vm_id | ||||
|         ) | ||||
| 
 | ||||
|  | @ -192,13 +206,16 @@ class VirtualMachinePlan(AssignPermissionsMixin, models.Model): | |||
|         return vm_data | ||||
| 
 | ||||
|     @classmethod | ||||
|     def get_vms(self, email): | ||||
|     def get_vms(self, user): | ||||
| 
 | ||||
|         # Get opennebula client | ||||
|         opennebula_client = OpenNebulaManager() | ||||
|         opennebula_client = OpenNebulaManager( | ||||
|             email=user.email, | ||||
|             password=user.password[:20], | ||||
|         ) | ||||
| 
 | ||||
|         # Get vm pool | ||||
|         vm_pool = opennebula_client.get_vms(email) | ||||
|         vm_pool = opennebula_client.get_vms(user.email) | ||||
| 
 | ||||
|         # Reset total price | ||||
|         self.total_price = 0 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue