Fixed the bug when domR was re-created as a part of implement() method in network gurus with sourceNatIp address belonging to incorrect user (System user instead of network owner).

Conflicts:

	server/src/com/cloud/network/element/DhcpElement.java
	server/src/com/cloud/network/element/VirtualRouterElement.java
This commit is contained in:
alena 2011-08-09 15:22:29 -07:00
parent 6b9603bc4c
commit 2fef12e3ac
2 changed files with 12 additions and 7 deletions

View File

@ -47,6 +47,7 @@ import com.cloud.network.router.VirtualRouter;
import com.cloud.network.rules.FirewallRule;
import com.cloud.network.vpn.PasswordResetElement;
import com.cloud.offering.NetworkOffering;
import com.cloud.user.AccountManager;
import com.cloud.uservm.UserVm;
import com.cloud.utils.component.AdapterBase;
import com.cloud.utils.component.Inject;
@ -75,6 +76,7 @@ public class DhcpElement extends AdapterBase implements NetworkElement, Password
@Inject DomainRouterDao _routerDao;
@Inject ConfigurationManager _configMgr;
@Inject HostPodDao _podDao;
@Inject AccountManager _accountMgr;
private boolean canHandle(GuestIpType ipType, DeployDestination dest, TrafficType trafficType) {
DataCenter dc = dest.getDataCenter();
@ -102,7 +104,7 @@ public class DhcpElement extends AdapterBase implements NetworkElement, Password
Map<VirtualMachineProfile.Param, Object> params = new HashMap<VirtualMachineProfile.Param, Object>(1);
params.put(VirtualMachineProfile.Param.RestartNetwork, true);
_routerMgr.deployDhcp(network, dest, context.getAccount(), params);
_routerMgr.deployDhcp(network, dest, _accountMgr.getAccount(network.getAccountId()), params);
return true;
}
@ -118,8 +120,9 @@ public class DhcpElement extends AdapterBase implements NetworkElement, Password
VirtualMachineProfile<UserVm> uservm = (VirtualMachineProfile<UserVm>)vm;
Map<VirtualMachineProfile.Param, Object> params = new HashMap<VirtualMachineProfile.Param, Object>(1);
params.put(VirtualMachineProfile.Param.RestartNetwork, true);
List<DomainRouterVO> routers = _routerMgr.deployDhcp(network, dest, uservm.getOwner(), uservm.getParameters());
List<VirtualRouter> rets = _routerMgr.addVirtualMachineIntoNetwork(network, nic, uservm, dest, context, routers);
List<DomainRouterVO> routers = _routerMgr.deployDhcp(network, dest, _accountMgr.getAccount(network.getAccountId()), uservm.getParameters());
List<VirtualRouter> rets = _routerMgr.addVirtualMachineIntoNetwork(network, nic, uservm, dest, context, routers);
return (rets != null) && (!rets.isEmpty());
} else {
return false;

View File

@ -83,7 +83,6 @@ public class VirtualRouterElement extends DhcpElement implements NetworkElement,
@Inject UserVmDao _userVmDao;
@Inject DomainRouterDao _routerDao;
@Inject LoadBalancerDao _lbDao;
@Inject AccountManager _accountMgr;
@Inject HostDao _hostDao;
private boolean canHandle(GuestIpType ipType, DataCenter dc) {
@ -103,8 +102,9 @@ public class VirtualRouterElement extends DhcpElement implements NetworkElement,
Map<VirtualMachineProfile.Param, Object> params = new HashMap<VirtualMachineProfile.Param, Object>(1);
params.put(VirtualMachineProfile.Param.RestartNetwork, true);
_routerMgr.deployVirtualRouter(guestConfig, dest, context.getAccount(), params, offering.getRedundantRouter());
_routerMgr.deployVirtualRouter(guestConfig, dest, _accountMgr.getAccount(guestConfig.getAccountId()), params, offering.getRedundantRouter());
return true;
}
@ -118,9 +118,11 @@ public class VirtualRouterElement extends DhcpElement implements NetworkElement,
@SuppressWarnings("unchecked")
VirtualMachineProfile<UserVm> uservm = (VirtualMachineProfile<UserVm>)vm;
NetworkOffering offering = _networkOfferingDao.findById(network.getNetworkOfferingId());
List<DomainRouterVO> routers = _routerMgr.deployVirtualRouter(network, dest, uservm.getOwner(), uservm.getParameters(), offering.getRedundantRouter());
List<DomainRouterVO> routers = _routerMgr.deployVirtualRouter(network, dest, _accountMgr.getAccount(network.getAccountId()), uservm.getParameters(), offering.getRedundantRouter());
List<VirtualRouter> rets = _routerMgr.addVirtualMachineIntoNetwork(network, nic, uservm, dest, context, routers);
return (rets != null) && (!rets.isEmpty());
} else {
return false;