mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-11-04 00:02:37 +01:00 
			
		
		
		
	CLOUDSTACK-6250 Review comments fixes for CLOUDSTACK-2692
This commit is contained in:
		
							parent
							
								
									2b51207510
								
							
						
					
					
						commit
						d38cab879b
					
				@ -92,7 +92,7 @@ public interface LoadBalancingRulesService {
 | 
				
			|||||||
    boolean deleteLBHealthCheckPolicy(long healthCheckPolicyId, boolean apply);
 | 
					    boolean deleteLBHealthCheckPolicy(long healthCheckPolicyId, boolean apply);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Assign a virtual machine, or list of virtual machines, to a load balancer.
 | 
					     * Assign a virtual machine or list of virtual machines, or Map of <vmId vmIp> to a load balancer.
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    boolean assignToLoadBalancer(long lbRuleId, List<Long> vmIds, Map<Long, List<String>> vmIdIpMap);
 | 
					    boolean assignToLoadBalancer(long lbRuleId, List<Long> vmIds, Map<Long, List<String>> vmIdIpMap);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -151,4 +151,6 @@ public interface LoadBalancingRulesService {
 | 
				
			|||||||
    public void updateLBHealthChecks(Scheme scheme) throws ResourceUnavailableException;
 | 
					    public void updateLBHealthChecks(Scheme scheme) throws ResourceUnavailableException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    Map<Ip, UserVm> getLbInstances(long lbId);
 | 
					    Map<Ip, UserVm> getLbInstances(long lbId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    boolean isLbRuleMappedToVmGuestIp(String vmSecondaryIp);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -119,9 +119,8 @@ public class AssignToLoadBalancerRuleCmd extends BaseAsyncCmd {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Map<Long, List<String>> getVmIdIpListMap() {
 | 
					    public Map<Long, List<String>> getVmIdIpListMap() {
 | 
				
			||||||
        Map<Long, List<String>> vmIdIpsMap = null;
 | 
					        Map<Long, List<String>> vmIdIpsMap = new HashMap<Long, List<String>>();
 | 
				
			||||||
        if (vmIdIpMap != null && !vmIdIpMap.isEmpty()) {
 | 
					        if (vmIdIpMap != null && !vmIdIpMap.isEmpty()) {
 | 
				
			||||||
            vmIdIpsMap = new HashMap<Long, List<String>>();
 | 
					 | 
				
			||||||
            Collection idIpsCollection = vmIdIpMap.values();
 | 
					            Collection idIpsCollection = vmIdIpMap.values();
 | 
				
			||||||
            Iterator iter = idIpsCollection.iterator();
 | 
					            Iterator iter = idIpsCollection.iterator();
 | 
				
			||||||
            while (iter.hasNext()) {
 | 
					            while (iter.hasNext()) {
 | 
				
			||||||
 | 
				
			|||||||
@ -40,6 +40,7 @@ import javax.ejb.Local;
 | 
				
			|||||||
import javax.inject.Inject;
 | 
					import javax.inject.Inject;
 | 
				
			||||||
import javax.naming.ConfigurationException;
 | 
					import javax.naming.ConfigurationException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cloud.network.lb.LoadBalancingRulesService;
 | 
				
			||||||
import org.apache.log4j.Logger;
 | 
					import org.apache.log4j.Logger;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 | 
					import org.apache.cloudstack.acl.ControlledEntity.ACLType;
 | 
				
			||||||
@ -106,7 +107,6 @@ import com.cloud.network.dao.FirewallRulesDao;
 | 
				
			|||||||
import com.cloud.network.dao.IPAddressDao;
 | 
					import com.cloud.network.dao.IPAddressDao;
 | 
				
			||||||
import com.cloud.network.dao.IPAddressVO;
 | 
					import com.cloud.network.dao.IPAddressVO;
 | 
				
			||||||
import com.cloud.network.dao.LoadBalancerVMMapDao;
 | 
					import com.cloud.network.dao.LoadBalancerVMMapDao;
 | 
				
			||||||
import com.cloud.network.dao.LoadBalancerVMMapVO;
 | 
					 | 
				
			||||||
import com.cloud.network.dao.NetworkDao;
 | 
					import com.cloud.network.dao.NetworkDao;
 | 
				
			||||||
import com.cloud.network.dao.NetworkDomainDao;
 | 
					import com.cloud.network.dao.NetworkDomainDao;
 | 
				
			||||||
import com.cloud.network.dao.NetworkServiceMapDao;
 | 
					import com.cloud.network.dao.NetworkServiceMapDao;
 | 
				
			||||||
@ -312,6 +312,9 @@ public class NetworkServiceImpl extends ManagerBase implements  NetworkService {
 | 
				
			|||||||
    @Inject
 | 
					    @Inject
 | 
				
			||||||
    LoadBalancerVMMapDao _lbVmMapDao;
 | 
					    LoadBalancerVMMapDao _lbVmMapDao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Inject
 | 
				
			||||||
 | 
					    LoadBalancingRulesService _lbService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    int _cidrLimit;
 | 
					    int _cidrLimit;
 | 
				
			||||||
    boolean _allowSubdomainNetworkAccess;
 | 
					    boolean _allowSubdomainNetworkAccess;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -811,11 +814,9 @@ public class NetworkServiceImpl extends ManagerBase implements  NetworkService {
 | 
				
			|||||||
                throw new InvalidParameterValueException("Can' remove the ip " + secondaryIp + "is associate with static NAT rule public IP address id " + publicIpVO.getId());
 | 
					                throw new InvalidParameterValueException("Can' remove the ip " + secondaryIp + "is associate with static NAT rule public IP address id " + publicIpVO.getId());
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            List<LoadBalancerVMMapVO> lbVmMap = _lbVmMapDao.listByInstanceIp(secondaryIp);
 | 
					            if (_lbService.isLbRuleMappedToVmGuestIp(secondaryIp)) {
 | 
				
			||||||
            if (lbVmMap != null && lbVmMap.size() != 0) {
 | 
					 | 
				
			||||||
                s_logger.debug("VM nic IP " + secondaryIp + " is mapped to load balancing rule");
 | 
					                s_logger.debug("VM nic IP " + secondaryIp + " is mapped to load balancing rule");
 | 
				
			||||||
                throw new InvalidParameterValueException("Can't remove the secondary ip " + secondaryIp + " is mapped to load balancing rule");
 | 
					                throw new InvalidParameterValueException("Can't remove the secondary ip " + secondaryIp + " is mapped to load balancing rule");
 | 
				
			||||||
 | 
					 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        } else if (dc.getNetworkType() == NetworkType.Basic || ntwkOff.getGuestType() == Network.GuestType.Shared) {
 | 
					        } else if (dc.getNetworkType() == NetworkType.Basic || ntwkOff.getGuestType() == Network.GuestType.Shared) {
 | 
				
			||||||
 | 
				
			|||||||
@ -1414,7 +1414,7 @@ public class AutoScaleManagerImpl<Type> extends ManagerBase implements AutoScale
 | 
				
			|||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        lstVmId.add(new Long(vmId));
 | 
					        lstVmId.add(new Long(vmId));
 | 
				
			||||||
        return _loadBalancingRulesService.assignToLoadBalancer(lbId, lstVmId, null);
 | 
					        return _loadBalancingRulesService.assignToLoadBalancer(lbId, lstVmId, new HashMap<Long, List<String>>());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -937,12 +937,12 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (instanceIds == null && vmIdIpMap == null) {
 | 
					        if (instanceIds == null && vmIdIpMap.isEmpty()) {
 | 
				
			||||||
            throw new InvalidParameterValueException("Both instanceids and vmidipmap  can't be null");
 | 
					            throw new InvalidParameterValueException("Both instanceids and vmidipmap  can't be null");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // instanceIds and vmIdipmap is passed
 | 
					        // instanceIds and vmIdipmap is passed
 | 
				
			||||||
        if (instanceIds != null && vmIdIpMap != null) {
 | 
					        if (instanceIds != null && !vmIdIpMap.isEmpty()) {
 | 
				
			||||||
            for(long instanceId: instanceIds) {
 | 
					            for(long instanceId: instanceIds) {
 | 
				
			||||||
                if (!vmIdIpMap.containsKey(instanceId)) {
 | 
					                if (!vmIdIpMap.containsKey(instanceId)) {
 | 
				
			||||||
                    vmIdIpMap.put(instanceId, null);
 | 
					                    vmIdIpMap.put(instanceId, null);
 | 
				
			||||||
@ -951,7 +951,7 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //only instanceids list passed
 | 
					        //only instanceids list passed
 | 
				
			||||||
        if (instanceIds != null && vmIdIpMap == null){
 | 
					        if (instanceIds != null && vmIdIpMap.isEmpty()){
 | 
				
			||||||
            vmIdIpMap = new HashMap<Long, List<String>>();
 | 
					            vmIdIpMap = new HashMap<Long, List<String>>();
 | 
				
			||||||
            for (long instanceId: instanceIds){
 | 
					            for (long instanceId: instanceIds){
 | 
				
			||||||
                vmIdIpMap.put(instanceId, null);
 | 
					                vmIdIpMap.put(instanceId, null);
 | 
				
			||||||
@ -978,9 +978,6 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
 | 
				
			|||||||
            existingVmIdIps.put(mappedInstance.getInstanceId(), ipsList);
 | 
					            existingVmIdIps.put(mappedInstance.getInstanceId(), ipsList);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        final List<UserVm> vmsToAdd = new ArrayList<UserVm>();
 | 
					        final List<UserVm> vmsToAdd = new ArrayList<UserVm>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // check for conflict
 | 
					        // check for conflict
 | 
				
			||||||
@ -1047,12 +1044,12 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
 | 
				
			|||||||
                //check if the ips belongs to nic secondary ip
 | 
					                //check if the ips belongs to nic secondary ip
 | 
				
			||||||
                for (String ip: vmIpsList) {
 | 
					                for (String ip: vmIpsList) {
 | 
				
			||||||
                    if(_nicSecondaryIpDao.findByIp4AddressAndNicId(ip,nicInSameNetwork.getId()) == null) {
 | 
					                    if(_nicSecondaryIpDao.findByIp4AddressAndNicId(ip,nicInSameNetwork.getId()) == null) {
 | 
				
			||||||
                        throw new InvalidParameterValueException("VM ip specified  " + ip  + " is not belongs to nic in network " + nicInSameNetwork.getNetworkId());
 | 
					                        throw new InvalidParameterValueException("VM ip "+ ip + " specified does not belong to " +
 | 
				
			||||||
 | 
					                                "nic in network " + nicInSameNetwork.getNetworkId());
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
            if (s_logger.isDebugEnabled()) {
 | 
					            if (s_logger.isDebugEnabled()) {
 | 
				
			||||||
                s_logger.debug("Adding " + vm + " to the load balancer pool");
 | 
					                s_logger.debug("Adding " + vm + " to the load balancer pool");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
@ -2316,6 +2313,15 @@ public class LoadBalancingRulesManagerImpl<Type> extends ManagerBase implements
 | 
				
			|||||||
        return dstList;
 | 
					        return dstList;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public boolean isLbRuleMappedToVmGuestIp(String vmSecondaryIp) {
 | 
				
			||||||
 | 
					        List<LoadBalancerVMMapVO> lbVmMap = _lb2VmMapDao.listByInstanceIp(vmSecondaryIp);
 | 
				
			||||||
 | 
					        if (lbVmMap == null || lbVmMap.isEmpty()) {
 | 
				
			||||||
 | 
					            return  false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return true;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    public void isLbServiceSupportedInNetwork(long networkId, Scheme scheme) {
 | 
					    public void isLbServiceSupportedInNetwork(long networkId, Scheme scheme) {
 | 
				
			||||||
        Network network = _networkDao.findById(networkId);
 | 
					        Network network = _networkDao.findById(networkId);
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										231
									
								
								server/test/com/cloud/network/lb/AssignToLoadBalancerTest.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										231
									
								
								server/test/com/cloud/network/lb/AssignToLoadBalancerTest.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,231 @@
 | 
				
			|||||||
 | 
					// Licensed to the Apache Software Foundation (ASF) under one
 | 
				
			||||||
 | 
					// or more contributor license agreements.  See the NOTICE file
 | 
				
			||||||
 | 
					// distributed with this work for additional information
 | 
				
			||||||
 | 
					// regarding copyright ownership.  The ASF licenses this file
 | 
				
			||||||
 | 
					// to you under the Apache License, Version 2.0 (the
 | 
				
			||||||
 | 
					// "License"); you may not use this file except in compliance
 | 
				
			||||||
 | 
					// with the License.  You may obtain a copy of the License at
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					//   http://www.apache.org/licenses/LICENSE-2.0
 | 
				
			||||||
 | 
					//
 | 
				
			||||||
 | 
					// Unless required by applicable law or agreed to in writing,
 | 
				
			||||||
 | 
					// software distributed under the License is distributed on an
 | 
				
			||||||
 | 
					// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 | 
				
			||||||
 | 
					// KIND, either express or implied.  See the License for the
 | 
				
			||||||
 | 
					// specific language governing permissions and limitations
 | 
				
			||||||
 | 
					// under the License.
 | 
				
			||||||
 | 
					package com.cloud.network.lb;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.cloud.domain.DomainVO;
 | 
				
			||||||
 | 
					import com.cloud.domain.dao.DomainDao;
 | 
				
			||||||
 | 
					import com.cloud.exception.ResourceAllocationException;
 | 
				
			||||||
 | 
					import com.cloud.exception.ResourceUnavailableException;
 | 
				
			||||||
 | 
					import com.cloud.exception.InsufficientCapacityException;
 | 
				
			||||||
 | 
					import com.cloud.exception.InvalidParameterValueException;
 | 
				
			||||||
 | 
					import com.cloud.network.NetworkModelImpl;
 | 
				
			||||||
 | 
					import com.cloud.network.dao.LoadBalancerDao;
 | 
				
			||||||
 | 
					import com.cloud.network.dao.LoadBalancerVMMapDao;
 | 
				
			||||||
 | 
					import com.cloud.network.dao.LoadBalancerVMMapVO;
 | 
				
			||||||
 | 
					import com.cloud.network.dao.LoadBalancerVO;
 | 
				
			||||||
 | 
					import com.cloud.network.rules.FirewallRule;
 | 
				
			||||||
 | 
					import com.cloud.network.rules.RulesManagerImpl;
 | 
				
			||||||
 | 
					import com.cloud.user.Account;
 | 
				
			||||||
 | 
					import com.cloud.user.AccountManager;
 | 
				
			||||||
 | 
					import com.cloud.user.AccountVO;
 | 
				
			||||||
 | 
					import com.cloud.user.UserVO;
 | 
				
			||||||
 | 
					import com.cloud.user.dao.AccountDao;
 | 
				
			||||||
 | 
					import com.cloud.uservm.UserVm;
 | 
				
			||||||
 | 
					import com.cloud.vm.Nic;
 | 
				
			||||||
 | 
					import com.cloud.vm.NicVO;
 | 
				
			||||||
 | 
					import com.cloud.vm.UserVmVO;
 | 
				
			||||||
 | 
					import com.cloud.vm.dao.NicSecondaryIpDao;
 | 
				
			||||||
 | 
					import com.cloud.vm.dao.UserVmDao;
 | 
				
			||||||
 | 
					import org.apache.cloudstack.api.ResponseGenerator;
 | 
				
			||||||
 | 
					import org.apache.cloudstack.api.command.user.loadbalancer.AssignToLoadBalancerRuleCmd;
 | 
				
			||||||
 | 
					import org.apache.cloudstack.api.response.SuccessResponse;
 | 
				
			||||||
 | 
					import org.apache.cloudstack.context.CallContext;
 | 
				
			||||||
 | 
					import org.junit.After;
 | 
				
			||||||
 | 
					import org.junit.Before;
 | 
				
			||||||
 | 
					import org.junit.Rule;
 | 
				
			||||||
 | 
					import org.junit.Test;
 | 
				
			||||||
 | 
					import org.junit.rules.ExpectedException;
 | 
				
			||||||
 | 
					import org.mockito.Mock;
 | 
				
			||||||
 | 
					import org.mockito.Mockito;
 | 
				
			||||||
 | 
					import org.mockito.Spy;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import javax.inject.Inject;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.UUID;
 | 
				
			||||||
 | 
					import java.util.HashMap;
 | 
				
			||||||
 | 
					import java.util.Map;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					import java.util.ArrayList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import static org.mockito.Matchers.anyBoolean;
 | 
				
			||||||
 | 
					import static org.mockito.Matchers.anyLong;
 | 
				
			||||||
 | 
					import static org.mockito.Matchers.anyString;
 | 
				
			||||||
 | 
					import static org.mockito.Mockito.when;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class AssignToLoadBalancerTest {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Inject
 | 
				
			||||||
 | 
					    AccountManager _accountMgr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Inject
 | 
				
			||||||
 | 
					    AccountManager _acctMgr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Inject
 | 
				
			||||||
 | 
					    AccountDao _accountDao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Inject
 | 
				
			||||||
 | 
					    DomainDao _domainDao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Mock
 | 
				
			||||||
 | 
					    List<LoadBalancerVMMapVO> _lbvmMapList;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Mock
 | 
				
			||||||
 | 
					    List<Nic> nic;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Mock
 | 
				
			||||||
 | 
					    UserVmDao userDao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Spy
 | 
				
			||||||
 | 
					    RulesManagerImpl _rulesMgr = new RulesManagerImpl() {
 | 
				
			||||||
 | 
					        @Override
 | 
				
			||||||
 | 
					        public void checkRuleAndUserVm (FirewallRule rule, UserVm userVm, Account caller) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Spy
 | 
				
			||||||
 | 
					    NicVO nicvo = new NicVO() {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Spy
 | 
				
			||||||
 | 
					    NetworkModelImpl _networkModel = new NetworkModelImpl() {
 | 
				
			||||||
 | 
					        @Override
 | 
				
			||||||
 | 
					        public List<? extends Nic> getNics(long vmId) {
 | 
				
			||||||
 | 
					            nic = new ArrayList<Nic>();
 | 
				
			||||||
 | 
					            nicvo.setNetworkId(204L);
 | 
				
			||||||
 | 
					            nic.add(nicvo);
 | 
				
			||||||
 | 
					            return nic;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    LoadBalancingRulesManagerImpl _lbMgr = new LoadBalancingRulesManagerImpl();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private AssignToLoadBalancerRuleCmd assignToLbRuleCmd;
 | 
				
			||||||
 | 
					    private ResponseGenerator responseGenerator;
 | 
				
			||||||
 | 
					    private SuccessResponse successResponseGenerator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Rule
 | 
				
			||||||
 | 
					    public ExpectedException expectedException = ExpectedException.none();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    private static long domainId = 5L;
 | 
				
			||||||
 | 
					    private static long accountId = 5L;
 | 
				
			||||||
 | 
					    private static String accountName = "admin";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Before
 | 
				
			||||||
 | 
					    public void setUp() {
 | 
				
			||||||
 | 
					        assignToLbRuleCmd = new AssignToLoadBalancerRuleCmd() {
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // ComponentContext.initComponentsLifeCycle();
 | 
				
			||||||
 | 
					        AccountVO account = new AccountVO(accountName, domainId, "networkDomain", Account.ACCOUNT_TYPE_NORMAL, "uuid");
 | 
				
			||||||
 | 
					        DomainVO domain = new DomainVO("rootDomain", 5L, 5L, "networkDomain");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        CallContext.register(user, account);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test(expected = InvalidParameterValueException.class)
 | 
				
			||||||
 | 
					    public void testBothArgsEmpty() throws ResourceAllocationException, ResourceUnavailableException, InsufficientCapacityException {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Map<Long, List<String>> emptyMap = new HashMap<Long, List<String>>();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        LoadBalancerDao lbdao = Mockito.mock(LoadBalancerDao.class);
 | 
				
			||||||
 | 
					        _lbMgr._lbDao =  lbdao;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        when(lbdao.findById(anyLong())).thenReturn(Mockito.mock(LoadBalancerVO.class));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        _lbMgr.assignToLoadBalancer(1L, null, emptyMap);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test(expected = InvalidParameterValueException.class)
 | 
				
			||||||
 | 
					    public void testNicIsNotInNw() throws ResourceAllocationException, ResourceUnavailableException, InsufficientCapacityException {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Map<Long, List<String>> vmIdIpMap = new HashMap<Long, List<String>>();
 | 
				
			||||||
 | 
					        List<String> secIp = new ArrayList<String>();
 | 
				
			||||||
 | 
					        secIp.add("10.1.1.175");
 | 
				
			||||||
 | 
					        vmIdIpMap.put(1L,secIp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<Long> vmIds = new ArrayList<Long>();
 | 
				
			||||||
 | 
					        vmIds.add(2L);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        LoadBalancerDao lbDao = Mockito.mock(LoadBalancerDao.class);
 | 
				
			||||||
 | 
					        LoadBalancerVMMapDao lb2VmMapDao = Mockito.mock(LoadBalancerVMMapDao.class);
 | 
				
			||||||
 | 
					        UserVmDao userVmDao = Mockito.mock(UserVmDao.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        _lbMgr._lbDao = lbDao;
 | 
				
			||||||
 | 
					        _lbMgr._lb2VmMapDao = lb2VmMapDao;
 | 
				
			||||||
 | 
					        _lbMgr._vmDao = userVmDao;
 | 
				
			||||||
 | 
					        _lbvmMapList = new ArrayList<>();
 | 
				
			||||||
 | 
					        _lbMgr._rulesMgr = _rulesMgr;
 | 
				
			||||||
 | 
					        _lbMgr._networkModel = _networkModel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        when(lbDao.findById(anyLong())).thenReturn(Mockito.mock(LoadBalancerVO.class));
 | 
				
			||||||
 | 
					        when(userVmDao.findById(anyLong())).thenReturn(Mockito.mock(UserVmVO.class));
 | 
				
			||||||
 | 
					        when(lb2VmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(_lbvmMapList);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        _lbMgr.assignToLoadBalancer(1L, null, vmIdIpMap);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test(expected = InvalidParameterValueException.class)
 | 
				
			||||||
 | 
					    public void tesSecIpNotSetToVm() throws ResourceAllocationException, ResourceUnavailableException, InsufficientCapacityException {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        AssignToLoadBalancerRuleCmd assignLbRuleCmd = Mockito.mock(AssignToLoadBalancerRuleCmd.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Map<Long, List<String>> vmIdIpMap = new HashMap<Long, List<String>>();
 | 
				
			||||||
 | 
					        List<String> secIp = new ArrayList<String>();
 | 
				
			||||||
 | 
					        secIp.add("10.1.1.175");
 | 
				
			||||||
 | 
					        vmIdIpMap.put(1L,secIp);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        List<Long> vmIds = new ArrayList<Long>();
 | 
				
			||||||
 | 
					        vmIds.add(2L);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        LoadBalancerVO lbVO = new LoadBalancerVO("1", "L1", "Lbrule", 1, 22, 22, "rb", 204, 0, 0, "tcp");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        LoadBalancerDao lbDao = Mockito.mock(LoadBalancerDao.class);
 | 
				
			||||||
 | 
					        LoadBalancerVMMapDao lb2VmMapDao = Mockito.mock(LoadBalancerVMMapDao.class);
 | 
				
			||||||
 | 
					        UserVmDao userVmDao = Mockito.mock(UserVmDao.class);
 | 
				
			||||||
 | 
					        NicSecondaryIpDao nicSecIpDao =  Mockito.mock(NicSecondaryIpDao.class);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        _lbMgr._lbDao = lbDao;
 | 
				
			||||||
 | 
					        _lbMgr._lb2VmMapDao = lb2VmMapDao;
 | 
				
			||||||
 | 
					        _lbMgr._vmDao = userVmDao;
 | 
				
			||||||
 | 
					        _lbMgr._nicSecondaryIpDao = nicSecIpDao;
 | 
				
			||||||
 | 
					        _lbvmMapList = new ArrayList<>();
 | 
				
			||||||
 | 
					        _lbMgr._rulesMgr = _rulesMgr;
 | 
				
			||||||
 | 
					        _lbMgr._networkModel = _networkModel;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        when(lbDao.findById(anyLong())).thenReturn(lbVO);
 | 
				
			||||||
 | 
					        when(userVmDao.findById(anyLong())).thenReturn(Mockito.mock(UserVmVO.class));
 | 
				
			||||||
 | 
					        when(lb2VmMapDao.listByLoadBalancerId(anyLong(), anyBoolean())).thenReturn(_lbvmMapList);
 | 
				
			||||||
 | 
					        when (nicSecIpDao.findByIp4AddressAndNicId(anyString(), anyLong())).thenReturn(null);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        _lbMgr.assignToLoadBalancer(1L, null, vmIdIpMap);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @After
 | 
				
			||||||
 | 
					    public void tearDown() {
 | 
				
			||||||
 | 
					        CallContext.unregister();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user