mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	bug 6658: fix managing load balancer instances by removing some of the 'pending' status code.
status 6658: resolved fixed
This commit is contained in:
		
							parent
							
								
									4399a051dd
								
							
						
					
					
						commit
						f4e21787b6
					
				| @ -961,6 +961,7 @@ public class NetworkManagerImpl implements NetworkManager { | |||||||
|             instanceIds.add(instanceIdParam); |             instanceIds.add(instanceIdParam); | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         // FIXME:  We should probably lock the load balancer here to prevent multiple updates... | ||||||
|         LoadBalancerVO loadBalancer = _loadBalancerDao.findById(loadBalancerId); |         LoadBalancerVO loadBalancer = _loadBalancerDao.findById(loadBalancerId); | ||||||
|         if (loadBalancer == null) { |         if (loadBalancer == null) { | ||||||
|         	throw new InvalidParameterValueException("Failed to assign to load balancer " + loadBalancerId + ", the load balancer was not found."); |         	throw new InvalidParameterValueException("Failed to assign to load balancer " + loadBalancerId + ", the load balancer was not found."); | ||||||
| @ -995,9 +996,12 @@ public class NetworkManagerImpl implements NetworkManager { | |||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|  |             List<Long> finalInstanceIds = new ArrayList<Long>(); | ||||||
|             for (Long instanceId : instanceIds) { |             for (Long instanceId : instanceIds) { | ||||||
|                 if (mappedInstanceIds.contains(instanceId)) { |                 if (mappedInstanceIds.contains(instanceId)) { | ||||||
|                     continue; |                     continue; | ||||||
|  |                 } else { | ||||||
|  |                     finalInstanceIds.add(instanceId); | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|                 UserVmVO userVm = _vmDao.findById(instanceId); |                 UserVmVO userVm = _vmDao.findById(instanceId); | ||||||
| @ -1125,6 +1129,14 @@ public class NetworkManagerImpl implements NetworkManager { | |||||||
|                 } |                 } | ||||||
|                 if ((updatedRules != null) && (updatedRules.size() == firewallRulesToApply.size())) { |                 if ((updatedRules != null) && (updatedRules.size() == firewallRulesToApply.size())) { | ||||||
|                     // flag the instances as mapped to the load balancer |                     // flag the instances as mapped to the load balancer | ||||||
|  |                     for (Long addedInstanceId : finalInstanceIds) { | ||||||
|  |                         LoadBalancerVMMapVO mappedVM = new LoadBalancerVMMapVO(loadBalancerId, addedInstanceId); | ||||||
|  |                         _loadBalancerVMMapDao.persist(mappedVM); | ||||||
|  |                     } | ||||||
|  | 
 | ||||||
|  |                     /* We used to add these instances as pending when the API command is received on the server, and once they were applied, | ||||||
|  |                      * the pending status was removed.  In the 2.2 API framework, this is no longer done and instead the new mappings just | ||||||
|  |                      * need to be persisted | ||||||
|                     List<LoadBalancerVMMapVO> pendingMappedVMs = _loadBalancerVMMapDao.listByLoadBalancerId(loadBalancerId, true); |                     List<LoadBalancerVMMapVO> pendingMappedVMs = _loadBalancerVMMapDao.listByLoadBalancerId(loadBalancerId, true); | ||||||
|                     for (LoadBalancerVMMapVO pendingMappedVM : pendingMappedVMs) { |                     for (LoadBalancerVMMapVO pendingMappedVM : pendingMappedVMs) { | ||||||
|                         if (instanceIds.contains(pendingMappedVM.getInstanceId())) { |                         if (instanceIds.contains(pendingMappedVM.getInstanceId())) { | ||||||
| @ -1133,6 +1145,7 @@ public class NetworkManagerImpl implements NetworkManager { | |||||||
|                             _loadBalancerVMMapDao.update(pendingMappedVM.getId(), pendingMappedVMForUpdate); |                             _loadBalancerVMMapDao.update(pendingMappedVM.getId(), pendingMappedVMForUpdate); | ||||||
|                         } |                         } | ||||||
|                     } |                     } | ||||||
|  |                      */ | ||||||
| 
 | 
 | ||||||
|                     for (FirewallRuleVO updatedRule : updatedRules) { |                     for (FirewallRuleVO updatedRule : updatedRules) { | ||||||
|                         if (updatedRule.getId() == null) { |                         if (updatedRule.getId() == null) { | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user