Refactor get_all_vmids -> get_all_active_vmids
We now get this info from opennebula
This commit is contained in:
		
					parent
					
						
							
								0b85784fd3
							
						
					
				
			
			
				commit
				
					
						7f6d4c1c53
					
				
			
		
					 2 changed files with 11 additions and 26 deletions
				
			
		| 
						 | 
					@ -464,7 +464,7 @@ class SSHKeyDeleteView(LoginRequiredMixin, DeleteView):
 | 
				
			||||||
        keys = UserHostingKey.objects.filter(user=self.request.user)
 | 
					        keys = UserHostingKey.objects.filter(user=self.request.user)
 | 
				
			||||||
        keys_to_save = [k.public_key for k in keys if k != public_key]
 | 
					        keys_to_save = [k.public_key for k in keys if k != public_key]
 | 
				
			||||||
        manager.save_key_in_opennebula_user('\n'.join(keys_to_save))
 | 
					        manager.save_key_in_opennebula_user('\n'.join(keys_to_save))
 | 
				
			||||||
        vm_ids = manager.get_all_vmids()
 | 
					        vm_ids = manager.get_vms()
 | 
				
			||||||
        if len(vm_ids) > 0 and len(keys_to_save) > 0:
 | 
					        if len(vm_ids) > 0 and len(keys_to_save) > 0:
 | 
				
			||||||
            for vm_id in vm_ids:
 | 
					            for vm_id in vm_ids:
 | 
				
			||||||
                manager.save_key_in_vm_template(vm_id, '\n'.join(keys_to_save))
 | 
					                manager.save_key_in_vm_template(vm_id, '\n'.join(keys_to_save))
 | 
				
			||||||
| 
						 | 
					@ -517,7 +517,7 @@ class SSHKeyChoiceView(LoginRequiredMixin, View):
 | 
				
			||||||
            password=owner.password
 | 
					            password=owner.password
 | 
				
			||||||
        )
 | 
					        )
 | 
				
			||||||
        keys = get_all_public_keys(request.user)
 | 
					        keys = get_all_public_keys(request.user)
 | 
				
			||||||
        vm_ids = manager.get_all_vmids()
 | 
					        vm_ids = manager.get_all_active_vmids()
 | 
				
			||||||
        manager.save_key_in_opennebula_user('\n'.join(keys))
 | 
					        manager.save_key_in_opennebula_user('\n'.join(keys))
 | 
				
			||||||
        if len(vm_ids) > 0 and len(keys) > 0:
 | 
					        if len(vm_ids) > 0 and len(keys) > 0:
 | 
				
			||||||
            for vm_id in vm_ids:
 | 
					            for vm_id in vm_ids:
 | 
				
			||||||
| 
						 | 
					@ -574,7 +574,7 @@ class SSHKeyCreateView(LoginRequiredMixin, FormView):
 | 
				
			||||||
        keys = UserHostingKey.objects.filter(user=self.request.user)
 | 
					        keys = UserHostingKey.objects.filter(user=self.request.user)
 | 
				
			||||||
        keys_to_save = [k.public_key for k in keys]
 | 
					        keys_to_save = [k.public_key for k in keys]
 | 
				
			||||||
        manager.save_key_in_opennebula_user('\n'.join(keys_to_save))
 | 
					        manager.save_key_in_opennebula_user('\n'.join(keys_to_save))
 | 
				
			||||||
        vm_ids = manager.get_all_vmids()
 | 
					        vm_ids = manager.get_all_active_vmids()
 | 
				
			||||||
        if len(vm_ids) > 0 and len(keys) > 0:
 | 
					        if len(vm_ids) > 0 and len(keys) > 0:
 | 
				
			||||||
            for vm_id in vm_ids:
 | 
					            for vm_id in vm_ids:
 | 
				
			||||||
                manager.save_key_in_vm_template(vm_id, '\n'.join(keys_to_save))
 | 
					                manager.save_key_in_vm_template(vm_id, '\n'.join(keys_to_save))
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -168,7 +168,7 @@ class OpenNebulaManager():
 | 
				
			||||||
            raise
 | 
					            raise
 | 
				
			||||||
        return user_pool
 | 
					        return user_pool
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def _get_vm_pool(self, infoextended=True):
 | 
					    def _get_vm_pool(self, infoextended=True, vm_state=-1):
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
        # filter:
 | 
					        # filter:
 | 
				
			||||||
        # -4: Resources belonging to the user’s primary group
 | 
					        # -4: Resources belonging to the user’s primary group
 | 
				
			||||||
| 
						 | 
					@ -201,8 +201,8 @@ class OpenNebulaManager():
 | 
				
			||||||
            vm_pool = oca.VirtualMachinePool(self.client)
 | 
					            vm_pool = oca.VirtualMachinePool(self.client)
 | 
				
			||||||
            if infoextended:
 | 
					            if infoextended:
 | 
				
			||||||
                vm_pool.infoextended(
 | 
					                vm_pool.infoextended(
 | 
				
			||||||
                    filter=-1,   # User's resources and any of his groups
 | 
					                    filter=-1,         # User's resources and any of his groups
 | 
				
			||||||
                    vm_state=-1  # Look for VMs in any state, except DONE
 | 
					                    vm_state=vm_state
 | 
				
			||||||
                )
 | 
					                )
 | 
				
			||||||
            else:
 | 
					            else:
 | 
				
			||||||
                vm_pool.info()
 | 
					                vm_pool.info()
 | 
				
			||||||
| 
						 | 
					@ -210,13 +210,6 @@ class OpenNebulaManager():
 | 
				
			||||||
        except AttributeError:
 | 
					        except AttributeError:
 | 
				
			||||||
            logger.error(
 | 
					            logger.error(
 | 
				
			||||||
                'Could not connect via client, using oneadmin instead')
 | 
					                'Could not connect via client, using oneadmin instead')
 | 
				
			||||||
            try:
 | 
					 | 
				
			||||||
                vm_pool = oca.VirtualMachinePool(self.oneadmin_client)
 | 
					 | 
				
			||||||
                vm_pool.info(filter=-2)
 | 
					 | 
				
			||||||
                return vm_pool
 | 
					 | 
				
			||||||
            except:
 | 
					 | 
				
			||||||
                raise ConnectionRefusedError
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        except ConnectionRefusedError:
 | 
					        except ConnectionRefusedError:
 | 
				
			||||||
            logger.error(
 | 
					            logger.error(
 | 
				
			||||||
                'Could not connect to host: {host} via protocol {protocol}'.format(
 | 
					                'Could not connect to host: {host} via protocol {protocol}'.format(
 | 
				
			||||||
| 
						 | 
					@ -228,9 +221,9 @@ class OpenNebulaManager():
 | 
				
			||||||
        except:
 | 
					        except:
 | 
				
			||||||
            raise ConnectionRefusedError
 | 
					            raise ConnectionRefusedError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_vms(self):
 | 
					    def get_vms(self, vm_state=-1):
 | 
				
			||||||
        try:
 | 
					        try:
 | 
				
			||||||
            return self._get_vm_pool()
 | 
					            return self._get_vm_pool(vm_state=vm_state)
 | 
				
			||||||
        except ConnectionRefusedError:
 | 
					        except ConnectionRefusedError:
 | 
				
			||||||
            raise ConnectionRefusedError
 | 
					            raise ConnectionRefusedError
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -637,17 +630,9 @@ class OpenNebulaManager():
 | 
				
			||||||
                "Keys and/or hosts are empty, so not managing any keys"
 | 
					                "Keys and/or hosts are empty, so not managing any keys"
 | 
				
			||||||
            )
 | 
					            )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_all_vmids(self):
 | 
					    def get_all_active_vmids(self):
 | 
				
			||||||
        owner = CustomUser.objects.filter(email=self.email).first()
 | 
					        vm_pool = self.get_vms(vm_state=3) # get active vms of the user
 | 
				
			||||||
        all_orders = HostingOrder.objects.filter(customer__user=owner)
 | 
					        vm_ids = [vm.id for vm in vm_pool]
 | 
				
			||||||
        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
 | 
					        return vm_ids
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    def get_all_hosts(self):
 | 
					    def get_all_hosts(self):
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue