Updated Branches:
  refs/heads/4.2 5a2fd3e2a -> 91bf54652

CLOUDSTACK-3924 NPE while internal LB vm is getting created


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/91bf5465
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/91bf5465
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/91bf5465

Branch: refs/heads/4.2
Commit: 91bf54652ec6450a58f1c44d5d67069ac99a6462
Parents: 5a2fd3e
Author: Rajesh Battala <[email protected]>
Authored: Tue Jul 30 16:26:52 2013 +0530
Committer: Murali Reddy <[email protected]>
Committed: Wed Jul 31 10:22:47 2013 +0530

----------------------------------------------------------------------
 .../lb/InternalLoadBalancerVMManagerImpl.java   | 51 ++++++++++----------
 1 file changed, 26 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/91bf5465/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java
 
b/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java
index 76507e9..80d8e41 100644
--- 
a/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java
+++ 
b/plugins/network-elements/internal-loadbalancer/src/org/apache/cloudstack/network/lb/InternalLoadBalancerVMManagerImpl.java
@@ -5,7 +5,7 @@
 // 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,
@@ -25,11 +25,12 @@ import javax.ejb.Local;
 import javax.inject.Inject;
 import javax.naming.ConfigurationException;
 
-import org.apache.cloudstack.lb.ApplicationLoadBalancerRuleVO;
-import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao;
 import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
+import org.apache.cloudstack.lb.ApplicationLoadBalancerRuleVO;
+import org.apache.cloudstack.lb.dao.ApplicationLoadBalancerRuleDao;
+
 import com.cloud.agent.AgentManager;
 import com.cloud.agent.AgentManager.OnError;
 import com.cloud.agent.api.Answer;
@@ -209,7 +210,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
                 // Internal LB control command is sent over management server 
in VMware
                 if (dest.getHost().getHypervisorType() == 
HypervisorType.VMware) {
                     if (s_logger.isInfoEnabled()) {
-                        s_logger.info("Check if we need to add management 
server explicit route to Internal LB. pod cidr: " 
+                        s_logger.info("Check if we need to add management 
server explicit route to Internal LB. pod cidr: "
                                 + dest.getPod().getCidrAddress() + "/" + 
dest.getPod().getCidrSize()
                                 + ", pod gateway: " + 
dest.getPod().getGateway() + ", management host: " + _mgmtHost);
                     }
@@ -326,7 +327,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
 
         // restart network if restartNetwork = false is not specified in 
profile parameters
         boolean reprogramGuestNtwk = true;
-        if (profile.getParameter(Param.ReProgramGuestNetworks) != null 
+        if (profile.getParameter(Param.ReProgramGuestNetworks) != null
                 && (Boolean) 
profile.getParameter(Param.ReProgramGuestNetworks) == false) {
             reprogramGuestNtwk = false;
         }
@@ -368,7 +369,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
 
     @Override
     public boolean plugNic(Network network, NicTO nic, VirtualMachineTO vm, 
ReservationContext context, DeployDestination dest) throws 
ConcurrentOperationException, ResourceUnavailableException,
-            InsufficientCapacityException {        
+            InsufficientCapacityException {
         //not supported
         throw new UnsupportedOperationException("Plug nic is not supported for 
vm of type " + vm.getType());
     }
@@ -491,12 +492,12 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
         
         Network guestNetwork = _ntwkModel.getNetwork(guestNetworkId);
         Nic guestNic = _nicDao.findByNtwkIdAndInstanceId(guestNetwork.getId(), 
internalLbVm.getId());
-        NicProfile guestNicProfile = new NicProfile(guestNic, guestNetwork, 
guestNic.getBroadcastUri(), guestNic.getIsolationUri(), 
-                _ntwkModel.getNetworkRate(guestNetwork.getId(), 
internalLbVm.getId()), 
-                _ntwkModel.isSecurityGroupSupportedInNetwork(guestNetwork), 
+        NicProfile guestNicProfile = new NicProfile(guestNic, guestNetwork, 
guestNic.getBroadcastUri(), guestNic.getIsolationUri(),
+                _ntwkModel.getNetworkRate(guestNetwork.getId(), 
internalLbVm.getId()),
+                _ntwkModel.isSecurityGroupSupportedInNetwork(guestNetwork),
                 _ntwkModel.getNetworkTag(internalLbVm.getHypervisorType(), 
guestNetwork));
 
-        NetworkOffering offering =_networkOfferingDao.findById(guestNetworkId);
+        NetworkOffering offering = 
_networkOfferingDao.findById(guestNetwork.getNetworkOfferingId());
         String maxconn= null;
         if (offering.getConcurrentConnections() == null) {
             maxconn =  
_configDao.getValue(Config.NetworkLBHaproxyMaxConn.key());
@@ -505,7 +506,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
             maxconn = offering.getConcurrentConnections().toString();
         }
         LoadBalancerConfigCommand cmd = new LoadBalancerConfigCommand(lbs, 
guestNic.getIp4Address(),
-                guestNic.getIp4Address(), internalLbVm.getPrivateIpAddress(), 
+                guestNic.getIp4Address(), internalLbVm.getPrivateIpAddress(),
                 _itMgr.toNicTO(guestNicProfile, 
internalLbVm.getHypervisorType()), internalLbVm.getVpcId(), maxconn);
 
         cmd.lbStatsVisibility = 
_configDao.getValue(Config.NetworkLBHaproxyStatsVisbility.key());
@@ -555,7 +556,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
 
         _accountMgr.checkAccess(caller, null, true, internalLbVm);
 
-        return _itMgr.expunge(internalLbVm, 
_accountMgr.getActiveUser(callerUserId), caller); 
+        return _itMgr.expunge(internalLbVm, 
_accountMgr.getActiveUser(callerUserId), caller);
     }
 
     
@@ -576,7 +577,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
     protected VirtualRouter stopInternalLbVm(DomainRouterVO internalLbVm, 
boolean forced, Account caller, long callerUserId) throws 
ResourceUnavailableException, ConcurrentOperationException {
         s_logger.debug("Stopping internal lb vm " + internalLbVm);
         try {
-            if (_itMgr.advanceStop((DomainRouterVO) internalLbVm, forced, 
_accountMgr.getActiveUser(callerUserId), caller)) {
+            if (_itMgr.advanceStop(internalLbVm, forced, 
_accountMgr.getActiveUser(callerUserId), caller)) {
                 return _internalLbVmDao.findById(internalLbVm.getId());
             } else {
                 return null;
@@ -588,7 +589,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
     
     
     @Override
-    public List<DomainRouterVO> deployInternalLbVm(Network guestNetwork, Ip 
requestedGuestIp, DeployDestination dest, 
+    public List<DomainRouterVO> deployInternalLbVm(Network guestNetwork, Ip 
requestedGuestIp, DeployDestination dest,
             Account owner, Map<Param, Object> params) throws 
InsufficientCapacityException,
             ConcurrentOperationException, ResourceUnavailableException {
 
@@ -597,7 +598,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
         return startInternalLbVms(params, internalLbVms);
     }
     
-    protected List<DomainRouterVO> startInternalLbVms(Map<Param, Object> 
params, List<DomainRouterVO> internalLbVms) 
+    protected List<DomainRouterVO> startInternalLbVms(Map<Param, Object> 
params, List<DomainRouterVO> internalLbVms)
             throws StorageUnavailableException, InsufficientCapacityException, 
ConcurrentOperationException, ResourceUnavailableException {
         List<DomainRouterVO> runningInternalLbVms = null;
 
@@ -623,8 +624,8 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
     
     
     @DB
-    protected List<DomainRouterVO> findOrDeployInternalLbVm(Network 
guestNetwork, Ip requestedGuestIp, DeployDestination dest, 
-            Account owner, Map<Param, Object> params) throws 
ConcurrentOperationException, 
+    protected List<DomainRouterVO> findOrDeployInternalLbVm(Network 
guestNetwork, Ip requestedGuestIp, DeployDestination dest,
+            Account owner, Map<Param, Object> params) throws 
ConcurrentOperationException,
             InsufficientCapacityException, ResourceUnavailableException {
 
         List<DomainRouterVO> internalLbVms = new ArrayList<DomainRouterVO>();
@@ -702,7 +703,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
             s_logger.debug("Adding nic for Internal LB in Guest network " + 
guestNetwork);
             NicProfile guestNic = new NicProfile();
             if (guestIp != null) {
-                guestNic.setIp4Address(guestIp.addr());  
+                guestNic.setIp4Address(guestIp.addr());
             } else {
                 
guestNic.setIp4Address(_ntwkMgr.acquireGuestIpAddress(guestNetwork, null));
             }
@@ -803,9 +804,9 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
                     continue;
                 }
 
-                internalLbVm = new DomainRouterVO(id, routerOffering.getId(), 
internalLbProviderId, 
+                internalLbVm = new DomainRouterVO(id, routerOffering.getId(), 
internalLbProviderId,
                 VirtualMachineName.getSystemVmName(id, _instance, 
_internalLbVmNamePrefix), template.getId(), template.getHypervisorType(),
-                template.getGuestOSId(), owner.getDomainId(), owner.getId(), 
false, 0, false, 
+                        template.getGuestOSId(), owner.getDomainId(), 
owner.getId(), false, 0, false,
                 RedundantState.UNKNOWN, false, false, 
VirtualMachine.Type.InternalLoadBalancerVm, vpcId);
                 internalLbVm.setRole(Role.INTERNAL_LB_VM);
                 internalLbVm = _itMgr.allocate(internalLbVm, template, 
routerOffering, networks, plan, null, owner);
@@ -847,7 +848,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
     
     
 
-    protected DomainRouterVO startInternalLbVm(DomainRouterVO internalLbVm, 
Account caller, long callerUserId, Map<Param, Object> params) 
+    protected DomainRouterVO startInternalLbVm(DomainRouterVO internalLbVm, 
Account caller, long callerUserId, Map<Param, Object> params)
             throws StorageUnavailableException, InsufficientCapacityException,
             ConcurrentOperationException, ResourceUnavailableException {
         s_logger.debug("Starting Internal LB VM " + internalLbVm);
@@ -864,7 +865,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
     }
     
     
-    protected List<HypervisorType> getHypervisors(DeployDestination dest, 
DeploymentPlan plan, 
+    protected List<HypervisorType> getHypervisors(DeployDestination dest, 
DeploymentPlan plan,
             List<HypervisorType> supportedHypervisors) throws 
InsufficientServerCapacityException {
         List<HypervisorType> hypervisors = new ArrayList<HypervisorType>();
 
@@ -894,7 +895,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
     }
     
     @Override
-    public boolean applyLoadBalancingRules(Network network, final 
List<LoadBalancingRule> rules, List<? extends VirtualRouter> internalLbVms) 
+    public boolean applyLoadBalancingRules(Network network, final 
List<LoadBalancingRule> rules, List<? extends VirtualRouter> internalLbVms)
             throws ResourceUnavailableException {
         if (rules == null || rules.isEmpty()) {
             s_logger.debug("No lb rules to be applied for network " + network);
@@ -910,7 +911,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
         if (lbVm.getState() == State.Running) {
             return sendLBRules(lbVm, rules, network.getId());
         } else if (lbVm.getState() == State.Stopped || lbVm.getState() == 
State.Stopping) {
-            s_logger.debug("Internal LB VM " + lbVm.getInstanceName() + " is 
in " + lbVm.getState() + 
+            s_logger.debug("Internal LB VM " + lbVm.getInstanceName() + " is 
in " + lbVm.getState() +
                     ", so not sending apply lb rules commands to the backend");
             return true;
         } else {
@@ -957,7 +958,7 @@ public class InternalLoadBalancerVMManagerImpl extends 
ManagerBase implements
     
     
     @Override
-    public VirtualRouter startInternalLbVm(long internalLbVmId, Account 
caller, long callerUserId) 
+    public VirtualRouter startInternalLbVm(long internalLbVmId, Account 
caller, long callerUserId)
             throws StorageUnavailableException, InsufficientCapacityException,
             ConcurrentOperationException, ResourceUnavailableException {
         

Reply via email to