moving sendCommand to the NetworkGeneralHelper;
adding handle single network method to the NetworkGeneralHelper;
moving getRealPriority to the NetworkGeneralHelper;
making priority constants part of the VirtualNetworkApplianceManager;
changing the network topology implementation in order to use the
NetworkGeneralManager instead of the appliance
Conflicts:
server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/0ad36615
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/0ad36615
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/0ad36615
Branch: refs/heads/vpc-refactor
Commit: 0ad366156421dfde2bcdeebe06c7a68513e22786
Parents: 9d9e440
Author: wrodrigues <[email protected]>
Authored: Tue Aug 19 08:04:23 2014 +0200
Committer: Wilder Rodrigues <[email protected]>
Committed: Fri Oct 3 06:21:27 2014 +0200
----------------------------------------------------------------------
.../network/router/NetworkGeneralHelper.java | 290 +++++++++++--------
.../router/VirtualNetworkApplianceManager.java | 2 +
.../VirtualNetworkApplianceManagerImpl.java | 133 ++-------
.../VpcVirtualNetworkApplianceManagerImpl.java | 22 +-
.../topology/AdvancedNetworkTopology.java | 3 +-
.../topology/AdvancedNetworkVisitor.java | 14 +-
.../network/topology/BasicNetworkTopology.java | 7 +-
.../network/topology/BasicNetworkVisitor.java | 30 +-
.../MockVpcVirtualNetworkApplianceManager.java | 8 -
9 files changed, 235 insertions(+), 274 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0ad36615/server/src/com/cloud/network/router/NetworkGeneralHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/router/NetworkGeneralHelper.java
b/server/src/com/cloud/network/router/NetworkGeneralHelper.java
index 314cbc0..d22631b 100644
--- a/server/src/com/cloud/network/router/NetworkGeneralHelper.java
+++ b/server/src/com/cloud/network/router/NetworkGeneralHelper.java
@@ -33,8 +33,11 @@ import
org.cloud.network.router.deployment.VpcRouterDeploymentDefinition;
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.BumpUpPriorityCommand;
+import com.cloud.agent.api.routing.NetworkElementCommand;
import com.cloud.agent.api.to.NicTO;
import com.cloud.agent.manager.Commands;
+import com.cloud.alert.AlertManager;
import com.cloud.dc.ClusterVO;
import com.cloud.dc.DataCenter;
import com.cloud.dc.Pod;
@@ -102,58 +105,60 @@ import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.NicDao;
public class NetworkGeneralHelper {
- private static final Logger logger =
Logger.getLogger(NetworkGeneralHelper.class);
+ private static final Logger s_logger =
Logger.getLogger(NetworkGeneralHelper.class);
@Inject
- private NicDao nicDao;
+ private NicDao _nicDao;
@Inject
- private NetworkDao networkDao;
+ private NetworkDao _networkDao;
@Inject
- private DomainRouterDao routerDao;
+ private DomainRouterDao _routerDao;
@Inject
- private AgentManager agentMgr;
+ private AgentManager _agentMgr;
@Inject
- private NetworkModel networkModel;
+ private AlertManager _alertMgr;
@Inject
- private VirtualMachineManager itMgr;
+ private NetworkModel _networkModel;
@Inject
- private AccountManager accountMgr;
+ private VirtualMachineManager _itMgr;
@Inject
- private Site2SiteVpnManager s2sVpnMgr;
+ private AccountManager _accountMgr;
@Inject
- private HostDao hostDao;
+ private Site2SiteVpnManager _s2sVpnMgr;
@Inject
- private VolumeDao volumeDao;
+ private HostDao _hostDao;
@Inject
- private ServiceOfferingDao serviceOfferingDao;
+ private VolumeDao _volumeDao;
@Inject
- private VMTemplateDao templateDao;
+ private ServiceOfferingDao _serviceOfferingDao;
@Inject
- private ResourceManager resourceMgr;
+ private VMTemplateDao _templateDao;
@Inject
- private ClusterDao clusterDao;
+ private ResourceManager _resourceMgr;
@Inject
- private IPAddressDao ipAddressDao;
+ private ClusterDao _clusterDao;
@Inject
- private IpAddressManager ipAddrMgr;
+ private IPAddressDao _ipAddressDao;
@Inject
- private UserIpv6AddressDao ipv6Dao;
+ private IpAddressManager _ipAddrMgr;
@Inject
- private NetworkOrchestrationService networkMgr;
+ private UserIpv6AddressDao _ipv6Dao;
@Inject
- protected VpcVirtualNetworkHelperImpl vpcHelper;
+ private NetworkOrchestrationService _networkMgr;
@Inject
- protected VpcManager vpcMgr;
+ protected VpcVirtualNetworkHelperImpl _vpcHelper;
@Inject
- protected VlanDao vlanDao;
+ protected VpcManager _vpcMgr;
+ @Inject
+ protected VlanDao _vlanDao;
public String getRouterControlIp(final long routerId) {
String routerControlIpAddress = null;
- final List<NicVO> nics = nicDao.listByVmId(routerId);
+ final List<NicVO> nics = _nicDao.listByVmId(routerId);
for (final NicVO n : nics) {
- final NetworkVO nc = networkDao.findById(n.getNetworkId());
+ final NetworkVO nc = _networkDao.findById(n.getNetworkId());
if (nc != null && nc.getTrafficType() == TrafficType.Control) {
routerControlIpAddress = n.getIp4Address();
// router will have only one control ip
@@ -162,8 +167,8 @@ public class NetworkGeneralHelper {
}
if (routerControlIpAddress == null) {
- logger.warn("Unable to find router's control ip in its attached
NICs!. routerId: " + routerId);
- final DomainRouterVO router = routerDao.findById(routerId);
+ s_logger.warn("Unable to find router's control ip in its attached
NICs!. routerId: " + routerId);
+ final DomainRouterVO router = _routerDao.findById(routerId);
return router.getPrivateIpAddress();
}
@@ -171,22 +176,22 @@ public class NetworkGeneralHelper {
}
public String getRouterIpInNetwork(final long networkId, final long
instanceId) {
- return nicDao.getIpAddress(networkId, instanceId);
+ return _nicDao.getIpAddress(networkId, instanceId);
}
// @Override
public boolean sendCommandsToRouter(final VirtualRouter router, final
Commands cmds) throws AgentUnavailableException {
if(!checkRouterVersion(router)){
- logger.debug("Router requires upgrade. Unable to send command to
router:" + router.getId() + ", router template version : " +
router.getTemplateVersion()
+ s_logger.debug("Router requires upgrade. Unable to send command to
router:" + router.getId() + ", router template version : " +
router.getTemplateVersion()
+ ", minimal required version : " +
VirtualNetworkApplianceService.MinVRVersion);
throw new CloudRuntimeException("Unable to send command. Upgrade
in progress. Please contact administrator.");
}
Answer[] answers = null;
try {
- answers = agentMgr.send(router.getHostId(), cmds);
+ answers = _agentMgr.send(router.getHostId(), cmds);
} catch (final OperationTimedoutException e) {
- logger.warn("Timed Out", e);
+ s_logger.warn("Timed Out", e);
throw new AgentUnavailableException("Unable to send commands to
virtual router ", router.getHostId(), e);
}
@@ -210,31 +215,90 @@ public class NetworkGeneralHelper {
}
return result;
}
+
+ public void handleSingleWorkingRedundantRouter(final List<? extends
VirtualRouter> connectedRouters, final List<? extends VirtualRouter>
disconnectedRouters, final String reason)
+ throws ResourceUnavailableException {
+ if (connectedRouters.isEmpty() || disconnectedRouters.isEmpty()) {
+ return;
+ }
+ if (connectedRouters.size() != 1 || disconnectedRouters.size() != 1) {
+ s_logger.warn("How many redundant routers do we have?? ");
+ return;
+ }
+ if (!connectedRouters.get(0).getIsRedundantRouter()) {
+ throw new ResourceUnavailableException("Who is calling this with
non-redundant router or non-domain router?", DataCenter.class,
connectedRouters.get(0)
+ .getDataCenterId());
+ }
+ if (!disconnectedRouters.get(0).getIsRedundantRouter()) {
+ throw new ResourceUnavailableException("Who is calling this with
non-redundant router or non-domain router?", DataCenter.class,
disconnectedRouters.get(0)
+ .getDataCenterId());
+ }
+
+ final DomainRouterVO connectedRouter =
(DomainRouterVO)connectedRouters.get(0);
+ DomainRouterVO disconnectedRouter =
(DomainRouterVO)disconnectedRouters.get(0);
+
+ if (s_logger.isDebugEnabled()) {
+ s_logger.debug("About to stop the router " +
disconnectedRouter.getInstanceName() + " due to: " + reason);
+ }
+ final String title = "Virtual router " +
disconnectedRouter.getInstanceName() + " would be stopped after connecting
back, due to " + reason;
+ final String context =
+ "Virtual router (name: " +
disconnectedRouter.getInstanceName() + ", id: " + disconnectedRouter.getId() +
+ ") would be stopped after connecting back, due to: " + reason;
+ _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_DOMAIN_ROUTER,
disconnectedRouter.getDataCenterId(), disconnectedRouter.getPodIdToDeployIn(),
title,
+ context);
+ disconnectedRouter.setStopPending(true);
+ disconnectedRouter = _routerDao.persist(disconnectedRouter);
+
+ final int connRouterPR = getRealPriority(connectedRouter);
+ final int disconnRouterPR = getRealPriority(disconnectedRouter);
+ if (connRouterPR < disconnRouterPR) {
+ //connRouterPR < disconnRouterPR, they won't equal at anytime
+ if (!connectedRouter.getIsPriorityBumpUp()) {
+ final BumpUpPriorityCommand command = new
BumpUpPriorityCommand();
+ command.setAccessDetail(NetworkElementCommand.ROUTER_IP,
getRouterControlIp(connectedRouter.getId()));
+ command.setAccessDetail(NetworkElementCommand.ROUTER_NAME,
connectedRouter.getInstanceName());
+ final Answer answer =
_agentMgr.easySend(connectedRouter.getHostId(), command);
+ if (!answer.getResult()) {
+ s_logger.error("Failed to bump up " +
connectedRouter.getInstanceName() + "'s priority! " + answer.getDetails());
+ }
+ } else {
+ final String t = "Can't bump up virtual router " +
connectedRouter.getInstanceName() + "'s priority due to it's already bumped
up!";
+
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_DOMAIN_ROUTER,
connectedRouter.getDataCenterId(), connectedRouter.getPodIdToDeployIn(), t, t);
+ }
+ }
+ }
-
+ public int getRealPriority(final DomainRouterVO router) {
+ int priority = router.getPriority();
+ if (router.getIsPriorityBumpUp()) {
+ priority += VirtualNetworkApplianceManager.DEFAULT_DELTA;
+ }
+ return priority;
+ }
+
// @Override
public NicTO getNicTO(final VirtualRouter router, final Long networkId,
final String broadcastUri) {
- NicProfile nicProfile = networkModel.getNicProfile(router, networkId,
broadcastUri);
+ NicProfile nicProfile = _networkModel.getNicProfile(router, networkId,
broadcastUri);
- return itMgr.toNicTO(nicProfile, router.getHypervisorType());
+ return _itMgr.toNicTO(nicProfile, router.getHypervisorType());
}
// @Override
public VirtualRouter destroyRouter(final long routerId, final Account
caller, final Long callerUserId) throws ResourceUnavailableException,
ConcurrentOperationException {
- if (logger.isDebugEnabled()) {
- logger.debug("Attempting to destroy router " + routerId);
+ if (s_logger.isDebugEnabled()) {
+ s_logger.debug("Attempting to destroy router " + routerId);
}
- final DomainRouterVO router = routerDao.findById(routerId);
+ final DomainRouterVO router = _routerDao.findById(routerId);
if (router == null) {
return null;
}
- accountMgr.checkAccess(caller, null, true, router);
+ _accountMgr.checkAccess(caller, null, true, router);
- itMgr.expunge(router.getUuid());
- routerDao.remove(router.getId());
+ _itMgr.expunge(router.getUuid());
+ _routerDao.remove(router.getId());
return router;
}
@@ -260,31 +324,31 @@ public class NetworkGeneralHelper {
protected DomainRouterVO start(DomainRouterVO router, final User user,
final Account caller, final Map<Param, Object> params, final DeploymentPlan
planToDeploy)
throws StorageUnavailableException, InsufficientCapacityException,
ConcurrentOperationException, ResourceUnavailableException {
- logger.debug("Starting router " + router);
+ s_logger.debug("Starting router " + router);
try {
- itMgr.advanceStart(router.getUuid(), params, planToDeploy, null);
+ _itMgr.advanceStart(router.getUuid(), params, planToDeploy, null);
} catch (final OperationTimedoutException e) {
throw new ResourceUnavailableException("Starting router " + router
+ " failed! " + e.toString(), DataCenter.class, router.getDataCenterId());
}
if (router.isStopPending()) {
- logger.info("Clear the stop pending flag of router " +
router.getHostName() + " after start router successfully!");
+ s_logger.info("Clear the stop pending flag of router " +
router.getHostName() + " after start router successfully!");
router.setStopPending(false);
- router = routerDao.persist(router);
+ router = _routerDao.persist(router);
}
// We don't want the failure of VPN Connection affect the status of
router, so we try to make connection
// only after router start successfully
final Long vpcId = router.getVpcId();
if (vpcId != null) {
- s2sVpnMgr.reconnectDisconnectedVpnByVpc(vpcId);
+ _s2sVpnMgr.reconnectDisconnectedVpnByVpc(vpcId);
}
- return routerDao.findById(router.getId());
+ return _routerDao.findById(router.getId());
}
protected DomainRouterVO waitRouter(final DomainRouterVO router) {
- DomainRouterVO vm = routerDao.findById(router.getId());
+ DomainRouterVO vm = _routerDao.findById(router.getId());
- if (logger.isDebugEnabled()) {
- logger.debug("Router " + router.getInstanceName() + " is not fully
up yet, we will wait");
+ if (s_logger.isDebugEnabled()) {
+ s_logger.debug("Router " + router.getInstanceName() + " is not
fully up yet, we will wait");
}
while (vm.getState() == State.Starting) {
try {
@@ -293,18 +357,18 @@ public class NetworkGeneralHelper {
}
// reload to get the latest state info
- vm = routerDao.findById(router.getId());
+ vm = _routerDao.findById(router.getId());
}
if (vm.getState() == State.Running) {
- if (logger.isDebugEnabled()) {
- logger.debug("Router " + router.getInstanceName() + " is now
fully up");
+ if (s_logger.isDebugEnabled()) {
+ s_logger.debug("Router " + router.getInstanceName() + " is now
fully up");
}
return router;
}
- logger.warn("Router " + router.getInstanceName() + " failed to start.
current state: " + vm.getState());
+ s_logger.warn("Router " + router.getInstanceName() + " failed to
start. current state: " + vm.getState());
return null;
}
@@ -320,14 +384,14 @@ public class NetworkGeneralHelper {
boolean skip = false;
final State state = router.getState();
if (router.getHostId() != null && state != State.Running) {
- final HostVO host = hostDao.findById(router.getHostId());
+ final HostVO host = _hostDao.findById(router.getHostId());
if (host == null || host.getState() != Status.Up) {
skip = true;
}
}
if (!skip) {
if (state != State.Running) {
- router = startVirtualRouter(router,
accountMgr.getSystemUser(), accountMgr.getSystemAccount(),
+ router = startVirtualRouter(router,
_accountMgr.getSystemUser(), _accountMgr.getSystemAccount(),
routerDeploymentDefinition.getParams());
}
if (router != null) {
@@ -348,7 +412,7 @@ public class NetworkGeneralHelper {
}
if (router.getState() == State.Running) {
- logger.debug("Redundant router " + router.getInstanceName() + " is
already running!");
+ s_logger.debug("Redundant router " + router.getInstanceName() + "
is already running!");
return router;
}
@@ -363,14 +427,14 @@ public class NetworkGeneralHelper {
DataCenterDeployment plan = new DataCenterDeployment(0, null, null,
null, null, null);
DomainRouterVO result = null;
assert router.getIsRedundantRouter();
- final List<Long> networkIds =
routerDao.getRouterNetworks(router.getId());
+ final List<Long> networkIds =
_routerDao.getRouterNetworks(router.getId());
//Not support VPC now
if (networkIds.size() > 1) {
throw new ResourceUnavailableException("Unable to support more
than one guest network for redundant router now!", DataCenter.class,
router.getDataCenterId());
}
DomainRouterVO routerToBeAvoid = null;
if (networkIds.size() != 0) {
- final List<DomainRouterVO> routerList =
routerDao.findByNetwork(networkIds.get(0));
+ final List<DomainRouterVO> routerList =
_routerDao.findByNetwork(networkIds.get(0));
for (final DomainRouterVO rrouter : routerList) {
if (rrouter.getHostId() != null &&
rrouter.getIsRedundantRouter() && rrouter.getState() == State.Running) {
if (routerToBeAvoid != null) {
@@ -392,9 +456,9 @@ public class NetworkGeneralHelper {
avoids[0] = new ExcludeList();
avoids[0].addPod(routerToBeAvoid.getPodIdToDeployIn());
avoids[1] = new ExcludeList();
-
avoids[1].addCluster(hostDao.findById(routerToBeAvoid.getHostId()).getClusterId());
+
avoids[1].addCluster(_hostDao.findById(routerToBeAvoid.getHostId()).getClusterId());
avoids[2] = new ExcludeList();
- final List<VolumeVO> volumes =
volumeDao.findByInstanceAndType(routerToBeAvoid.getId(), Volume.Type.ROOT);
+ final List<VolumeVO> volumes =
_volumeDao.findByInstanceAndType(routerToBeAvoid.getId(), Volume.Type.ROOT);
if (volumes != null && volumes.size() != 0) {
avoids[2].addPool(volumes.get(0).getPoolId());
}
@@ -404,8 +468,8 @@ public class NetworkGeneralHelper {
avoids[4] = new ExcludeList();
for (int i = 0; i < retryIndex; i++) {
- if (logger.isTraceEnabled()) {
- logger.trace("Try to deploy redundant virtual router:" +
router.getHostName() + ", for " + i + " time");
+ if (s_logger.isTraceEnabled()) {
+ s_logger.trace("Try to deploy redundant virtual router:" +
router.getHostName() + ", for " + i + " time");
}
plan.setAvoids(avoids[i]);
try {
@@ -429,7 +493,7 @@ public class NetworkGeneralHelper {
InsufficientServerCapacityException,
InsufficientCapacityException,
StorageUnavailableException, ResourceUnavailableException {
- final ServiceOfferingVO routerOffering =
serviceOfferingDao.findById(routerDeploymentDefinition.getOfferingId());
+ final ServiceOfferingVO routerOffering =
_serviceOfferingDao.findById(routerDeploymentDefinition.getOfferingId());
final DeployDestination dest = routerDeploymentDefinition.getDest();
final Account owner = routerDeploymentDefinition.getOwner();
@@ -443,9 +507,9 @@ public class NetworkGeneralHelper {
for (final Iterator<HypervisorType> iter = hypervisors.iterator();
iter.hasNext();) {
final HypervisorType hType = iter.next();
try {
- final long id = routerDao.getNextInSequence(Long.class, "id");
- if (logger.isDebugEnabled()) {
- logger.debug("Allocating the VR i=" + id + " in datacenter
" + dest.getDataCenter() + "with the hypervisor type " + hType);
+ final long id = _routerDao.getNextInSequence(Long.class, "id");
+ if (s_logger.isDebugEnabled()) {
+ s_logger.debug("Allocating the VR i=" + id + " in
datacenter " + dest.getDataCenter() + "with the hypervisor type " + hType);
}
String templateName = null;
@@ -468,10 +532,10 @@ public class NetworkGeneralHelper {
default:
break;
}
- final VMTemplateVO template =
templateDao.findRoutingTemplate(hType, templateName);
+ final VMTemplateVO template =
_templateDao.findRoutingTemplate(hType, templateName);
if (template == null) {
- logger.debug(hType + " won't support system vm, skip it");
+ s_logger.debug(hType + " won't support system vm, skip
it");
continue;
}
@@ -491,12 +555,12 @@ public class NetworkGeneralHelper {
router.setDynamicallyScalable(template.isDynamicallyScalable());
router.setRole(Role.VIRTUAL_ROUTER);
- router = routerDao.persist(router);
- itMgr.allocate(router.getInstanceName(), template,
routerOffering, networks, routerDeploymentDefinition.getPlan(), null);
- router = routerDao.findById(router.getId());
+ router = _routerDao.persist(router);
+ _itMgr.allocate(router.getInstanceName(), template,
routerOffering, networks, routerDeploymentDefinition.getPlan(), null);
+ router = _routerDao.findById(router.getId());
} catch (final InsufficientCapacityException ex) {
if (allocateRetry < 2 && iter.hasNext()) {
- logger.debug("Failed to allocate the VR with hypervisor
type " + hType + ", retrying one more time");
+ s_logger.debug("Failed to allocate the VR with hypervisor
type " + hType + ", retrying one more time");
continue;
} else {
throw ex;
@@ -507,13 +571,13 @@ public class NetworkGeneralHelper {
if (startRouter) {
try {
- router = startVirtualRouter(router,
accountMgr.getSystemUser(), accountMgr.getSystemAccount(),
routerDeploymentDefinition.getParams());
+ router = startVirtualRouter(router,
_accountMgr.getSystemUser(), _accountMgr.getSystemAccount(),
routerDeploymentDefinition.getParams());
break;
} catch (final InsufficientCapacityException ex) {
if (startRetry < 2 && iter.hasNext()) {
- logger.debug("Failed to start the VR " + router + "
with hypervisor type " + hType + ", " + "destroying it and recreating one more
time");
+ s_logger.debug("Failed to start the VR " + router + "
with hypervisor type " + hType + ", " + "destroying it and recreating one more
time");
// destroy the router
- destroyRouter(router.getId(),
accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM), User.UID_SYSTEM);
+ destroyRouter(router.getId(),
_accountMgr.getAccount(Account.ACCOUNT_ID_SYSTEM), User.UID_SYSTEM);
continue;
} else {
throw ex;
@@ -542,12 +606,12 @@ public class NetworkGeneralHelper {
hypervisors.add(dest.getCluster().getHypervisorType());
}
} else {
- final HypervisorType defaults =
resourceMgr.getDefaultHypervisor(dest.getDataCenter().getId());
+ final HypervisorType defaults =
_resourceMgr.getDefaultHypervisor(dest.getDataCenter().getId());
if (defaults != HypervisorType.None) {
hypervisors.add(defaults);
} else {
//if there is no default hypervisor, get it from the cluster
- hypervisors =
resourceMgr.getSupportedHypervisorTypes(dest.getDataCenter().getId(), true,
routerDeploymentDefinition.getPlan().getPodId());
+ hypervisors =
_resourceMgr.getSupportedHypervisorTypes(dest.getDataCenter().getId(), true,
routerDeploymentDefinition.getPlan().getPodId());
}
}
@@ -576,20 +640,20 @@ public class NetworkGeneralHelper {
* Ovm won't support any system. So we have to choose a partner cluster in
the same pod to start domain router for us
*/
protected HypervisorType getClusterToStartDomainRouterForOvm(final long
podId) {
- final List<ClusterVO> clusters = clusterDao.listByPodId(podId);
+ final List<ClusterVO> clusters = _clusterDao.listByPodId(podId);
for (final ClusterVO cv : clusters) {
if (cv.getHypervisorType() == HypervisorType.Ovm ||
cv.getHypervisorType() == HypervisorType.BareMetal) {
continue;
}
- final List<HostVO> hosts =
resourceMgr.listAllHostsInCluster(cv.getId());
+ final List<HostVO> hosts =
_resourceMgr.listAllHostsInCluster(cv.getId());
if (hosts == null || hosts.isEmpty()) {
continue;
}
for (final HostVO h : hosts) {
if (h.getState() == Status.Up) {
- logger.debug("Pick up host that has hypervisor type " +
h.getHypervisorType() + " in cluster " + cv.getId() + " to start domain router
for OVM");
+ s_logger.debug("Pick up host that has hypervisor type " +
h.getHypervisorType() + " in cluster " + cv.getId() + " to start domain router
for OVM");
return h.getHypervisorType();
}
}
@@ -615,20 +679,20 @@ public class NetworkGeneralHelper {
//1) Guest network
boolean hasGuestNetwork = false;
if (routerDeploymentDefinition.getGuestNetwork() != null) {
- logger.debug("Adding nic for Virtual Router in Guest network " +
routerDeploymentDefinition.getGuestNetwork());
+ s_logger.debug("Adding nic for Virtual Router in Guest network " +
routerDeploymentDefinition.getGuestNetwork());
String defaultNetworkStartIp = null, defaultNetworkStartIpv6 =
null;
if (!routerDeploymentDefinition.isPublicNetwork()) {
- final Nic placeholder =
networkModel.getPlaceholderNicForRouter(routerDeploymentDefinition.getGuestNetwork(),
routerDeploymentDefinition.getPodId());
+ final Nic placeholder =
_networkModel.getPlaceholderNicForRouter(routerDeploymentDefinition.getGuestNetwork(),
routerDeploymentDefinition.getPodId());
if (routerDeploymentDefinition.getGuestNetwork().getCidr() !=
null) {
if (placeholder != null && placeholder.getIp4Address() !=
null) {
- logger.debug("Requesting ipv4 address " +
placeholder.getIp4Address() + " stored in placeholder nic for the network " +
routerDeploymentDefinition.getGuestNetwork());
+ s_logger.debug("Requesting ipv4 address " +
placeholder.getIp4Address() + " stored in placeholder nic for the network " +
routerDeploymentDefinition.getGuestNetwork());
defaultNetworkStartIp = placeholder.getIp4Address();
} else {
- final String startIp =
networkModel.getStartIpAddress(routerDeploymentDefinition.getGuestNetwork().getId());
- if (startIp != null &&
ipAddressDao.findByIpAndSourceNetworkId(routerDeploymentDefinition.getGuestNetwork().getId(),
startIp).getAllocatedTime() == null) {
+ final String startIp =
_networkModel.getStartIpAddress(routerDeploymentDefinition.getGuestNetwork().getId());
+ if (startIp != null &&
_ipAddressDao.findByIpAndSourceNetworkId(routerDeploymentDefinition.getGuestNetwork().getId(),
startIp).getAllocatedTime() == null) {
defaultNetworkStartIp = startIp;
- } else if (logger.isDebugEnabled()) {
- logger.debug("First ipv4 " + startIp + " in
network id=" + routerDeploymentDefinition.getGuestNetwork().getId() +
+ } else if (s_logger.isDebugEnabled()) {
+ s_logger.debug("First ipv4 " + startIp + " in
network id=" + routerDeploymentDefinition.getGuestNetwork().getId() +
" is already allocated, can't use it for
domain router; will get random ip address from the range");
}
}
@@ -636,14 +700,14 @@ public class NetworkGeneralHelper {
if (routerDeploymentDefinition.getGuestNetwork().getIp6Cidr()
!= null) {
if (placeholder != null && placeholder.getIp6Address() !=
null) {
- logger.debug("Requesting ipv6 address " +
placeholder.getIp6Address() + " stored in placeholder nic for the network " +
routerDeploymentDefinition.getGuestNetwork());
+ s_logger.debug("Requesting ipv6 address " +
placeholder.getIp6Address() + " stored in placeholder nic for the network " +
routerDeploymentDefinition.getGuestNetwork());
defaultNetworkStartIpv6 = placeholder.getIp6Address();
} else {
- final String startIpv6 =
networkModel.getStartIpv6Address(routerDeploymentDefinition.getGuestNetwork().getId());
- if (startIpv6 != null &&
ipv6Dao.findByNetworkIdAndIp(routerDeploymentDefinition.getGuestNetwork().getId(),
startIpv6) == null) {
+ final String startIpv6 =
_networkModel.getStartIpv6Address(routerDeploymentDefinition.getGuestNetwork().getId());
+ if (startIpv6 != null &&
_ipv6Dao.findByNetworkIdAndIp(routerDeploymentDefinition.getGuestNetwork().getId(),
startIpv6) == null) {
defaultNetworkStartIpv6 = startIpv6;
- } else if (logger.isDebugEnabled()) {
- logger.debug("First ipv6 " + startIpv6 + " in
network id=" + routerDeploymentDefinition.getGuestNetwork().getId() +
+ } else if (s_logger.isDebugEnabled()) {
+ s_logger.debug("First ipv6 " + startIpv6 + " in
network id=" + routerDeploymentDefinition.getGuestNetwork().getId() +
" is already allocated, can't use it for
domain router; will get random ipv6 address from the range");
}
}
@@ -653,7 +717,7 @@ public class NetworkGeneralHelper {
final NicProfile gatewayNic = new
NicProfile(defaultNetworkStartIp, defaultNetworkStartIpv6);
if (routerDeploymentDefinition.isPublicNetwork()) {
if (routerDeploymentDefinition.isRedundant()) {
-
gatewayNic.setIp4Address(ipAddrMgr.acquireGuestIpAddress(routerDeploymentDefinition.getGuestNetwork(),
null));
+
gatewayNic.setIp4Address(_ipAddrMgr.acquireGuestIpAddress(routerDeploymentDefinition.getGuestNetwork(),
null));
} else {
gatewayNic.setIp4Address(routerDeploymentDefinition.getGuestNetwork().getGateway());
}
@@ -672,15 +736,15 @@ public class NetworkGeneralHelper {
}
//2) Control network
- logger.debug("Adding nic for Virtual Router in Control network ");
- List<? extends NetworkOffering> offerings =
networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemControlNetwork);
+ s_logger.debug("Adding nic for Virtual Router in Control network ");
+ List<? extends NetworkOffering> offerings =
_networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemControlNetwork);
NetworkOffering controlOffering = offerings.get(0);
- Network controlConfig =
networkMgr.setupNetwork(VirtualNwStatus.account, controlOffering,
routerDeploymentDefinition.getPlan(),
+ Network controlConfig =
_networkMgr.setupNetwork(VirtualNwStatus.account, controlOffering,
routerDeploymentDefinition.getPlan(),
null, null, false).get(0);
networks.put(controlConfig, new ArrayList<NicProfile>());
//3) Public network
if (routerDeploymentDefinition.isPublicNetwork()) {
- logger.debug("Adding nic for Virtual Router in Public network ");
+ s_logger.debug("Adding nic for Virtual Router in Public network ");
//if source nat service is supported by the network, get the
source nat ip address
final NicProfile defaultNic = new NicProfile();
defaultNic.setDefaultNic(true);
@@ -690,7 +754,7 @@ public class NetworkGeneralHelper {
defaultNic.setNetmask(sourceNatIp.getNetmask());
defaultNic.setMacAddress(sourceNatIp.getMacAddress());
// get broadcast from public network
- final Network pubNet =
networkDao.findById(sourceNatIp.getNetworkId());
+ final Network pubNet =
_networkDao.findById(sourceNatIp.getNetworkId());
if (pubNet.getBroadcastDomainType() == BroadcastDomainType.Vxlan) {
defaultNic.setBroadcastType(BroadcastDomainType.Vxlan);
defaultNic.setBroadcastUri(BroadcastDomainType.Vxlan.toUri(sourceNatIp.getVlanTag()));
@@ -703,14 +767,14 @@ public class NetworkGeneralHelper {
if (hasGuestNetwork) {
defaultNic.setDeviceId(2);
}
- final NetworkOffering publicOffering =
networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemPublicNetwork).get(0);
- final List<? extends Network> publicNetworks =
networkMgr.setupNetwork(VirtualNwStatus.account, publicOffering,
+ final NetworkOffering publicOffering =
_networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemPublicNetwork).get(0);
+ final List<? extends Network> publicNetworks =
_networkMgr.setupNetwork(VirtualNwStatus.account, publicOffering,
routerDeploymentDefinition.getPlan(), null, null, false);
final String publicIp = defaultNic.getIp4Address();
// We want to use the identical MAC address for RvR on public
interface if possible
- final NicVO peerNic =
nicDao.findByIp4AddressAndNetworkId(publicIp, publicNetworks.get(0).getId());
+ final NicVO peerNic =
_nicDao.findByIp4AddressAndNetworkId(publicIp, publicNetworks.get(0).getId());
if (peerNic != null) {
- logger.info("Use same MAC as previous RvR, the MAC is " +
peerNic.getMacAddress());
+ s_logger.info("Use same MAC as previous RvR, the MAC is " +
peerNic.getMacAddress());
defaultNic.setMacAddress(peerNic.getMacAddress());
}
networks.put(publicNetworks.get(0), new
ArrayList<NicProfile>(Arrays.asList(defaultNic)));
@@ -733,36 +797,36 @@ public class NetworkGeneralHelper {
final Long vpcId = vpcRouterDeploymentDefinition.getVpc().getId();
//2) allocate nic for private gateways if needed
- final List<PrivateGateway> privateGateways =
this.vpcMgr.getVpcPrivateGateways(vpcId);
+ final List<PrivateGateway> privateGateways =
this._vpcMgr.getVpcPrivateGateways(vpcId);
if (privateGateways != null && !privateGateways.isEmpty()) {
for (PrivateGateway privateGateway : privateGateways) {
- NicProfile privateNic =
this.vpcHelper.createPrivateNicProfileForGateway(privateGateway);
- Network privateNetwork =
networkModel.getNetwork(privateGateway.getNetworkId());
+ NicProfile privateNic =
this._vpcHelper.createPrivateNicProfileForGateway(privateGateway);
+ Network privateNetwork =
_networkModel.getNetwork(privateGateway.getNetworkId());
networks.put(privateNetwork, new
ArrayList<NicProfile>(Arrays.asList(privateNic)));
}
}
//3) allocate nic for guest gateway if needed
- List<? extends Network> guestNetworks =
this.vpcMgr.getVpcNetworks(vpcId);
+ List<? extends Network> guestNetworks =
this._vpcMgr.getVpcNetworks(vpcId);
for (Network guestNetwork : guestNetworks) {
- if (networkModel.isPrivateGateway(guestNetwork.getId())) {
+ if (_networkModel.isPrivateGateway(guestNetwork.getId())) {
continue;
}
if (guestNetwork.getState() == Network.State.Implemented ||
guestNetwork.getState() == Network.State.Setup) {
- NicProfile guestNic =
vpcHelper.createGuestNicProfileForVpcRouter(guestNetwork);
+ NicProfile guestNic =
_vpcHelper.createGuestNicProfileForVpcRouter(guestNetwork);
networks.put(guestNetwork, new
ArrayList<NicProfile>(Arrays.asList(guestNic)));
}
}
//4) allocate nic for additional public network(s)
- final List<IPAddressVO> ips = ipAddressDao.listByAssociatedVpc(vpcId,
false);
+ final List<IPAddressVO> ips = _ipAddressDao.listByAssociatedVpc(vpcId,
false);
final List<NicProfile> publicNics = new ArrayList<NicProfile>();
Network publicNetwork = null;
for (IPAddressVO ip : ips) {
- PublicIp publicIp = PublicIp.createFromAddrAndVlan(ip,
this.vlanDao.findById(ip.getVlanId()));
- if ((ip.getState() == IpAddress.State.Allocated || ip.getState()
== IpAddress.State.Allocating) && this.vpcMgr.isIpAllocatedToVpc(ip) &&
+ PublicIp publicIp = PublicIp.createFromAddrAndVlan(ip,
this._vlanDao.findById(ip.getVlanId()));
+ if ((ip.getState() == IpAddress.State.Allocated || ip.getState()
== IpAddress.State.Allocating) && this._vpcMgr.isIpAllocatedToVpc(ip) &&
!publicVlans.contains(publicIp.getVlanTag())) {
- logger.debug("Allocating nic for router in vlan " +
publicIp.getVlanTag());
+ s_logger.debug("Allocating nic for router in vlan " +
publicIp.getVlanTag());
NicProfile publicNic = new NicProfile();
publicNic.setDefaultNic(false);
publicNic.setIp4Address(publicIp.getAddress().addr());
@@ -772,9 +836,9 @@ public class NetworkGeneralHelper {
publicNic.setBroadcastType(BroadcastDomainType.Vlan);
publicNic.setBroadcastUri(BroadcastDomainType.Vlan.toUri(publicIp.getVlanTag()));
publicNic.setIsolationUri(IsolationType.Vlan.toUri(publicIp.getVlanTag()));
- NetworkOffering publicOffering =
networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemPublicNetwork).get(0);
+ NetworkOffering publicOffering =
_networkModel.getSystemAccountNetworkOfferings(NetworkOffering.SystemPublicNetwork).get(0);
if (publicNetwork == null) {
- List<? extends Network> publicNetworks =
networkMgr.setupNetwork(VirtualNwStatus.account,
+ List<? extends Network> publicNetworks =
_networkMgr.setupNetwork(VirtualNwStatus.account,
publicOffering,
vpcRouterDeploymentDefinition.getPlan(), null, null, false);
publicNetwork = publicNetworks.get(0);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0ad36615/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
----------------------------------------------------------------------
diff --git
a/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
b/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
index f5b5096..8e0aba4a 100644
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManager.java
@@ -64,6 +64,8 @@ public interface VirtualNetworkApplianceManager extends
Manager, VirtualNetworkA
public static final int DEFAULT_ROUTER_VM_RAMSIZE = 128; // 128M
public static final int DEFAULT_ROUTER_CPU_MHZ = 500; //
500 MHz
public static final boolean USE_POD_VLAN = false;
+ public static final int DEFAULT_PRIORITY = 100;
+ public static final int DEFAULT_DELTA = 2;
/**
/*
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0ad36615/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git
a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 5986a37..4bf9e40 100644
---
a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++
b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -67,7 +67,6 @@ import com.cloud.agent.Listener;
import com.cloud.agent.api.AgentControlAnswer;
import com.cloud.agent.api.AgentControlCommand;
import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.BumpUpPriorityCommand;
import com.cloud.agent.api.CheckRouterAnswer;
import com.cloud.agent.api.CheckRouterCommand;
import com.cloud.agent.api.CheckS2SVpnConnectionsAnswer;
@@ -384,12 +383,11 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
OpRouterMonitorServiceDao _opRouterMonitorServiceDao;
@Inject
- NetworkTopologyContext networkTopologyContext;
-
+ protected NetworkTopologyContext _networkTopologyContext;
@Inject
- protected NetworkGeneralHelper nwHelper;
+ protected NetworkGeneralHelper _nwHelper;
@Inject
- protected RouterDeploymentDefinitionBuilder routerDeploymentManagerBuilder;
+ protected RouterDeploymentDefinitionBuilder
_routerDeploymentManagerBuilder;
int _routerRamSize;
int _routerCpuMHz;
@@ -424,7 +422,7 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
@Override
public VirtualRouter destroyRouter(final long routerId, final Account
caller, final Long callerUserId) throws ResourceUnavailableException,
ConcurrentOperationException {
- return nwHelper.destroyRouter(routerId, caller, callerUserId);
+ return _nwHelper.destroyRouter(routerId, caller, callerUserId);
}
@Override
@@ -647,7 +645,7 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
useLocalStorage, true, null, true,
VirtualMachine.Type.DomainRouter, true);
offering.setUniqueName(ServiceOffering.routerDefaultOffUniqueName);
offering = _serviceOfferingDao.persistSystemServiceOffering(offering);
- routerDeploymentManagerBuilder.setOfferingId(offering.getId());
+ _routerDeploymentManagerBuilder.setOfferingId(offering.getId());
// this can sometimes happen, if DB is manually or programmatically
// manipulated
@@ -1127,14 +1125,6 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
}
}
- private int getRealPriority(final DomainRouterVO router) {
- int priority = router.getPriority();
- if (router.getIsPriorityBumpUp()) {
- priority += DEFAULT_DELTA;
- }
- return priority;
- }
-
protected class RvRStatusUpdateTask extends ManagedContextRunnable {
public RvRStatusUpdateTask() {
@@ -1183,7 +1173,7 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
}
}
if (masterRouter != null && backupRouter != null) {
- if (getRealPriority(masterRouter) - DEFAULT_DELTA + 1
!= getRealPriority(backupRouter) || backupRouter.getIsPriorityBumpUp()) {
+ if (_nwHelper.getRealPriority(masterRouter) -
DEFAULT_DELTA + 1 != _nwHelper.getRealPriority(backupRouter) ||
backupRouter.getIsPriorityBumpUp()) {
recoverRedundantNetwork(masterRouter,
backupRouter);
}
}
@@ -1391,9 +1381,6 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
}
}
- private final static int DEFAULT_PRIORITY = 100;
- private final static int DEFAULT_DELTA = 2;
-
protected int getUpdatedPriority(final Network guestNetwork, final
List<DomainRouterVO> routers, final DomainRouterVO exclude)
throws InsufficientVirtualNetworkCapacityException {
int priority;
@@ -1407,8 +1394,8 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
}
// FIXME Assume the maxPriority one should be running or just
// created.
- if (r.getId() != exclude.getId() && getRealPriority(r) >
maxPriority) {
- maxPriority = getRealPriority(r);
+ if (r.getId() != exclude.getId() &&
_nwHelper.getRealPriority(r) > maxPriority) {
+ maxPriority = _nwHelper.getRealPriority(r);
}
}
if (maxPriority == 0) {
@@ -2121,7 +2108,7 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
if (nic.getBroadcastUri().getScheme().equals("pvlan")) {
final NicProfile nicProfile = new NicProfile(nic, network,
nic.getBroadcastUri(), nic.getIsolationUri(), 0, false, "pvlan-nic");
- final NetworkTopology networkTopology =
networkTopologyContext.retrieveNetworkTopology(dcVO);
+ final NetworkTopology networkTopology =
_networkTopologyContext.retrieveNetworkTopology(dcVO);
try {
result = networkTopology.setupDhcpForPvlan(true,
router, router.getHostId(), nicProfile);
} catch (final ResourceUnavailableException e) {
@@ -2154,7 +2141,7 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
if (network.getTrafficType() == TrafficType.Guest &&
nic.getBroadcastUri() != null &&
nic.getBroadcastUri().getScheme().equals("pvlan")) {
final NicProfile nicProfile = new NicProfile(nic, network,
nic.getBroadcastUri(), nic.getIsolationUri(), 0, false, "pvlan-nic");
- final NetworkTopology networkTopology =
networkTopologyContext.retrieveNetworkTopology(dcVO);
+ final NetworkTopology networkTopology =
_networkTopologyContext.retrieveNetworkTopology(dcVO);
try {
networkTopology.setupDhcpForPvlan(false, domR,
domR.getHostId(), nicProfile);
} catch (final ResourceUnavailableException e) {
@@ -2187,7 +2174,7 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
final Commands cmds = new Commands(Command.OnError.Stop);
createApplyVpnCommands(true, vpn, router, cmds);
- if (!sendCommandsToRouter(router, cmds)) {
+ if (!_nwHelper.sendCommandsToRouter(router, cmds)) {
throw new AgentUnavailableException("Unable to send commands
to virtual router ", router.getHostId());
}
@@ -2222,7 +2209,7 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
if (router.getState() == State.Running) {
final Commands cmds = new Commands(Command.OnError.Continue);
createApplyVpnCommands(false, vpn, router, cmds);
- result = result && sendCommandsToRouter(router, cmds);
+ result = result && _nwHelper.sendCommandsToRouter(router,
cmds);
} else if (router.getState() == State.Stopped) {
s_logger.debug("Router " + router + " is in Stopped state, not
sending deleteRemoteAccessVpn command to it");
continue;
@@ -2277,7 +2264,7 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
}
createDeleteIpAliasCommand(router, revokedIpAliasTOs,
activeIpAliasTOs, network.getId(), cmds);
configDnsMasq(router, network, cmds);
- final boolean result = sendCommandsToRouter(router, cmds);
+ final boolean result = _nwHelper.sendCommandsToRouter(router,
cmds);
if (result) {
Transaction.execute(new TransactionCallbackNoReturn() {
@Override
@@ -2412,7 +2399,7 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
} else {
params.put(Param.ReProgramGuestNetworks, false);
}
- final VirtualRouter virtualRouter =
nwHelper.startVirtualRouter(router, user, caller, params);
+ final VirtualRouter virtualRouter =
_nwHelper.startVirtualRouter(router, user, caller, params);
if (virtualRouter == null) {
throw new CloudRuntimeException("Failed to start router with id "
+ routerId);
}
@@ -2777,92 +2764,6 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
}
@Override
- public boolean sendCommandsToRouter(final VirtualRouter router, final
Commands cmds) throws AgentUnavailableException {
- if (!nwHelper.checkRouterVersion(router)) {
- s_logger.debug("Router requires upgrade. Unable to send command to
router:" + router.getId() + ", router template version : " +
router.getTemplateVersion()
- + ", minimal required version : " + MinVRVersion);
- throw new CloudRuntimeException("Unable to send command. Upgrade
in progress. Please contact administrator.");
- }
- Answer[] answers = null;
- try {
- answers = _agentMgr.send(router.getHostId(), cmds);
- } catch (final OperationTimedoutException e) {
- s_logger.warn("Timed Out", e);
- throw new AgentUnavailableException("Unable to send commands to
virtual router ", router.getHostId(), e);
- }
-
- if (answers == null) {
- return false;
- }
-
- if (answers.length != cmds.size()) {
- return false;
- }
-
- // FIXME: Have to return state for individual command in the future
- boolean result = true;
- if (answers.length > 0) {
- for (final Answer answer : answers) {
- if (!answer.getResult()) {
- result = false;
- break;
- }
- }
- }
- return result;
- }
-
- protected void handleSingleWorkingRedundantRouter(final List<? extends
VirtualRouter> connectedRouters, final List<? extends VirtualRouter>
disconnectedRouters,
- final String reason) throws ResourceUnavailableException {
- if (connectedRouters.isEmpty() || disconnectedRouters.isEmpty()) {
- return;
- }
- if (connectedRouters.size() != 1 || disconnectedRouters.size() != 1) {
- s_logger.warn("How many redundant routers do we have?? ");
- return;
- }
- if (!connectedRouters.get(0).getIsRedundantRouter()) {
- throw new ResourceUnavailableException("Who is calling this with
non-redundant router or non-domain router?", DataCenter.class,
connectedRouters.get(0)
- .getDataCenterId());
- }
- if (!disconnectedRouters.get(0).getIsRedundantRouter()) {
- throw new ResourceUnavailableException("Who is calling this with
non-redundant router or non-domain router?", DataCenter.class,
disconnectedRouters.get(0)
- .getDataCenterId());
- }
-
- final DomainRouterVO connectedRouter = (DomainRouterVO)
connectedRouters.get(0);
- DomainRouterVO disconnectedRouter = (DomainRouterVO)
disconnectedRouters.get(0);
-
- if (s_logger.isDebugEnabled()) {
- s_logger.debug("About to stop the router " +
disconnectedRouter.getInstanceName() + " due to: " + reason);
- }
- final String title = "Virtual router " +
disconnectedRouter.getInstanceName() + " would be stopped after connecting
back, due to " + reason;
- final String context = "Virtual router (name: " +
disconnectedRouter.getInstanceName() + ", id: " + disconnectedRouter.getId()
- + ") would be stopped after connecting back, due to: " +
reason;
- _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_DOMAIN_ROUTER,
disconnectedRouter.getDataCenterId(), disconnectedRouter.getPodIdToDeployIn(),
title, context);
- disconnectedRouter.setStopPending(true);
- disconnectedRouter = _routerDao.persist(disconnectedRouter);
-
- final int connRouterPR = getRealPriority(connectedRouter);
- final int disconnRouterPR = getRealPriority(disconnectedRouter);
- if (connRouterPR < disconnRouterPR) {
- // connRouterPR < disconnRouterPR, they won't equal at anytime
- if (!connectedRouter.getIsPriorityBumpUp()) {
- final BumpUpPriorityCommand command = new
BumpUpPriorityCommand();
- command.setAccessDetail(NetworkElementCommand.ROUTER_IP,
getRouterControlIp(connectedRouter.getId()));
- command.setAccessDetail(NetworkElementCommand.ROUTER_NAME,
connectedRouter.getInstanceName());
- final Answer answer =
_agentMgr.easySend(connectedRouter.getHostId(), command);
- if (!answer.getResult()) {
- s_logger.error("Failed to bump up " +
connectedRouter.getInstanceName() + "'s priority! " + answer.getDetails());
- }
- } else {
- final String t = "Can't bump up virtual router " +
connectedRouter.getInstanceName() + "'s priority due to it's already bumped
up!";
-
_alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_DOMAIN_ROUTER,
connectedRouter.getDataCenterId(), connectedRouter.getPodIdToDeployIn(), t, t);
- }
- }
- }
-
- @Override
public List<VirtualRouter> getRoutersForNetwork(final long networkId) {
final List<DomainRouterVO> routers =
_routerDao.findByNetwork(networkId);
final List<VirtualRouter> vrs = new
ArrayList<VirtualRouter>(routers.size());
@@ -3191,7 +3092,7 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
private List<Long> rebootRouters(final List<DomainRouterVO> routers) {
final List<Long> jobIds = new ArrayList<Long>();
for (final DomainRouterVO router : routers) {
- if (!nwHelper.checkRouterVersion(router)) {
+ if (!_nwHelper.checkRouterVersion(router)) {
s_logger.debug("Upgrading template for router: " +
router.getId());
final Map<String, String> params = new HashMap<String,
String>();
params.put("ctxUserId", "1");
@@ -3265,8 +3166,8 @@ public class VirtualNetworkApplianceManagerImpl extends
ManagerBase implements V
for (DomainRouterVO router : routers) {
AggregationControlCommand cmd = new
AggregationControlCommand(action, router.getInstanceName(),
getRouterControlIp(router.getId()), getRouterIpInNetwork(
network.getId(), router.getId()));
- Commands cmds = new Commands(cmd);
- if (!sendCommandsToRouter(router, cmds)) {
+ final Commands cmds = new Commands(cmd);
+ if (!_nwHelper.sendCommandsToRouter(router, cmds)) {
return false;
}
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0ad36615/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git
a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
index 6a4376c..91461de 100644
---
a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
+++
b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java
@@ -231,7 +231,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends
VirtualNetworkApplian
Commands cmds = new Commands(Command.OnError.Stop);
cmds.addCommand("setupguestnetwork", setupCmd);
- sendCommandsToRouter(router, cmds);
+ _nwHelper.sendCommandsToRouter(router, cmds);
Answer setupAnswer = cmds.getAnswer("setupguestnetwork");
String setup = add ? "set" : "destroy";
@@ -413,7 +413,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends
VirtualNetworkApplian
}
}
- SetNetworkACLCommand cmd = new SetNetworkACLCommand(rulesTO,
nwHelper.getNicTO(router, guestNetworkId, null));
+ SetNetworkACLCommand cmd = new SetNetworkACLCommand(rulesTO,
_nwHelper.getNicTO(router, guestNetworkId, null));
cmd.setAccessDetail(NetworkElementCommand.ROUTER_IP,
getRouterControlIp(router.getId()));
cmd.setAccessDetail(NetworkElementCommand.ROUTER_GUEST_IP,
getRouterIpInNetwork(guestNetworkId, router.getId()));
cmd.setAccessDetail(NetworkElementCommand.GUEST_VLAN_TAG, guestVlan);
@@ -488,7 +488,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends
VirtualNetworkApplian
}
}
PlugNicCommand plugNicCmd =
- new PlugNicCommand(nwHelper.getNicTO(router,
publicNic.getNetworkId(), publicNic.getBroadcastUri().toString()),
router.getInstanceName(), router.getType());
+ new PlugNicCommand(_nwHelper.getNicTO(router,
publicNic.getNetworkId(), publicNic.getBroadcastUri().toString()),
router.getInstanceName(), router.getType());
cmds.addCommand(plugNicCmd);
VpcVO vpc = _vpcDao.findById(router.getVpcId());
NetworkUsageCommand netUsageCmd =
@@ -514,7 +514,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends
VirtualNetworkApplian
for (Pair<Nic, Network> nicNtwk : guestNics) {
Nic guestNic = nicNtwk.first();
//plug guest nic
- PlugNicCommand plugNicCmd = new
PlugNicCommand(nwHelper.getNicTO(router, guestNic.getNetworkId(), null),
router.getInstanceName(), router.getType());
+ PlugNicCommand plugNicCmd = new
PlugNicCommand(_nwHelper.getNicTO(router, guestNic.getNetworkId(), null),
router.getInstanceName(), router.getType());
cmds.addCommand(plugNicCmd);
if (!_networkModel.isPrivateGateway(guestNic.getNetworkId())) {
//set guest network
@@ -646,7 +646,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends
VirtualNetworkApplian
}
finalizeNetworkRulesForNetwork(cmds, router, provider, networkId);
- return sendCommandsToRouter(router, cmds);
+ return _nwHelper.sendCommandsToRouter(router, cmds);
}
@Override
@@ -656,7 +656,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends
VirtualNetworkApplian
Network network = _networkModel.getNetwork(gateway.getNetworkId());
NicProfile requested =
vpcHelper.createPrivateNicProfileForGateway(gateway);
- if (!nwHelper.checkRouterVersion(router)) {
+ if (!_nwHelper.checkRouterVersion(router)) {
s_logger.warn("Router requires upgrade. Unable to send command
to router: " + router.getId());
return false;
}
@@ -706,7 +706,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends
VirtualNetworkApplian
createVpcAssociatePrivateIPCommands(router, privateIps, cmds, add);
try{
- if (sendCommandsToRouter(router, cmds)) {
+ if (_nwHelper.sendCommandsToRouter(router, cmds)) {
s_logger.debug("Successfully applied ip association for ip
" + ip + " in vpc network " + network);
return true;
} else {
@@ -800,7 +800,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends
VirtualNetworkApplian
protected boolean sendStaticRoutes(final List<StaticRouteProfile>
staticRoutes, final DomainRouterVO router) throws ResourceUnavailableException {
Commands cmds = new Commands(Command.OnError.Continue);
createStaticRouteCommands(staticRoutes, router, cmds);
- return sendCommandsToRouter(router, cmds);
+ return _nwHelper.sendCommandsToRouter(router, cmds);
}
/**
@@ -842,7 +842,7 @@ public class VpcVirtualNetworkApplianceManagerImpl extends
VirtualNetworkApplian
protected boolean applySite2SiteVpn(final boolean isCreate, final
VirtualRouter router, final Site2SiteVpnConnection conn) throws
ResourceUnavailableException {
Commands cmds = new Commands(Command.OnError.Continue);
createSite2SiteVpnCfgCommands(conn, isCreate, router, cmds);
- return sendCommandsToRouter(router, cmds);
+ return _nwHelper.sendCommandsToRouter(router, cmds);
}
private void createSite2SiteVpnCfgCommands(final Site2SiteVpnConnection
conn, final boolean isCreate, final VirtualRouter router, final Commands cmds) {
@@ -1017,7 +1017,7 @@ public class VpcVirtualNetworkApplianceManagerImpl
extends VirtualNetworkApplian
// Currently we receive just one answer from the agent. In the future
we have to parse individual answers and set
// results accordingly
- boolean agentResult = sendCommandsToRouter(router, cmds);
+ boolean agentResult = _nwHelper.sendCommandsToRouter(router, cmds);
String[] result = new String[users.size()];
for (int i = 0; i < result.length; i++) {
@@ -1082,7 +1082,7 @@ public class VpcVirtualNetworkApplianceManagerImpl
extends VirtualNetworkApplian
if (router.getState() == State.Running) {
Commands cmds = new Commands(Command.OnError.Continue);
createApplyVpnCommands(false, vpn, router, cmds);
- result = result && sendCommandsToRouter(router, cmds);
+ result = result && _nwHelper.sendCommandsToRouter(router, cmds);
} else if (router.getState() == State.Stopped) {
s_logger.debug("Router " + router + " is in Stopped state, not
sending deleteRemoteAccessVpn command to it");
} else {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0ad36615/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
----------------------------------------------------------------------
diff --git
a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
index 8b2b55c..cf872ca 100644
---
a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
+++
b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkTopology.java
@@ -244,8 +244,7 @@ public class AdvancedNetworkTopology extends
BasicNetworkTopology {
if (!isZoneBasic && !disconnectedRouters.isEmpty() &&
disconnectedRouters.get(0).getIsRedundantRouter()) {
// These disconnected redundant virtual routers are out of sync
// now, stop them for synchronization
- // [FIXME] handleSingleWorkingRedundantRouter(connectedRouters,
- // disconnectedRouters, msg);
+ _nwHelper.handleSingleWorkingRedundantRouter(connectedRouters,
disconnectedRouters, msg);
}
} else if (!disconnectedRouters.isEmpty()) {
for (final VirtualRouter router : disconnectedRouters) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0ad36615/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java
----------------------------------------------------------------------
diff --git
a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java
b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java
index 1b6b20d..df8afb2 100644
---
a/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java
+++
b/server/src/org/apache/cloudstack/network/topology/AdvancedNetworkVisitor.java
@@ -62,7 +62,7 @@ public class AdvancedNetworkVisitor extends
BasicNetworkVisitor {
userdata.createPasswordCommand(router, profile, nicVo, commands);
userdata.createVmDataCommand(router, userVM, nicVo,
userVM.getDetail("SSH.PublicKey"), commands);
- return _applianceManager.sendCommandsToRouter(router, commands);
+ return _networkGeneralHelper.sendCommandsToRouter(router, commands);
}
@Override
@@ -75,7 +75,7 @@ public class AdvancedNetworkVisitor extends
BasicNetworkVisitor {
dhcp.createDhcpEntryCommand(router, userVM, nicVo, commands);
- return _applianceManager.sendCommandsToRouter(router, commands);
+ return _networkGeneralHelper.sendCommandsToRouter(router, commands);
}
@Override
@@ -85,7 +85,7 @@ public class AdvancedNetworkVisitor extends
BasicNetworkVisitor {
final Commands commands = nicPlugInOutRules.getNetUsageCommands();
if (commands.size() > 0) {
- return _applianceManager.sendCommandsToRouter(router, commands);
+ return _networkGeneralHelper.sendCommandsToRouter(router,
commands);
}
return true;
}
@@ -99,7 +99,7 @@ public class AdvancedNetworkVisitor extends
BasicNetworkVisitor {
List<? extends NetworkACLItem> rules = acls.getRules();
acls.createNetworkACLsCommands(rules, router, commands,
network.getId(), acls.isPrivateGateway());
- return _applianceManager.sendCommandsToRouter(router, commands);
+ return _networkGeneralHelper.sendCommandsToRouter(router, commands);
}
@Override
@@ -113,7 +113,7 @@ public class AdvancedNetworkVisitor extends
BasicNetworkVisitor {
if (!ipsToSend.isEmpty()) {
vpcip.createVpcAssociatePublicIPCommands(router, ipsToSend, cmds,
vlanMacAddress);
- return _applianceManager.sendCommandsToRouter(router, cmds);
+ return _networkGeneralHelper.sendCommandsToRouter(router, cmds);
} else {
return true;
}
@@ -134,7 +134,7 @@ public class AdvancedNetworkVisitor extends
BasicNetworkVisitor {
cmds.addCommand(setupCommand);
try {
- return _applianceManager.sendCommandsToRouter(router, cmds);
+ return _networkGeneralHelper.sendCommandsToRouter(router, cmds);
} catch (final ResourceUnavailableException e) {
s_logger.warn("Timed Out", e);
return false;
@@ -158,6 +158,6 @@ public class AdvancedNetworkVisitor extends
BasicNetworkVisitor {
//also add the required configuration to the dnsmasq for supporting
dhcp and dns on the new ip.
subnet.configDnsMasq(router, network, cmds);
- return _applianceManager.sendCommandsToRouter(router, cmds);
+ return _networkGeneralHelper.sendCommandsToRouter(router, cmds);
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0ad36615/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
----------------------------------------------------------------------
diff --git
a/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
b/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
index 1d0c9b3..8133b59 100644
---
a/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
+++
b/server/src/org/apache/cloudstack/network/topology/BasicNetworkTopology.java
@@ -41,6 +41,7 @@ import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PublicIpAddress;
import com.cloud.network.VpnUser;
import com.cloud.network.lb.LoadBalancingRule;
+import com.cloud.network.router.NetworkGeneralHelper;
import com.cloud.network.router.VirtualRouter;
import com.cloud.network.rules.DhcpEntryRules;
import com.cloud.network.rules.FirewallRule;
@@ -86,6 +87,9 @@ public class BasicNetworkTopology implements NetworkTopology {
protected HostDao _hostDao;
@Inject
+ protected NetworkGeneralHelper _nwHelper;
+
+ @Inject
protected UserVmDao _userVmDao;
@Override
@@ -402,8 +406,7 @@ public class BasicNetworkTopology implements
NetworkTopology {
if (!isZoneBasic && !disconnectedRouters.isEmpty() &&
disconnectedRouters.get(0).getIsRedundantRouter()) {
// These disconnected redundant virtual routers are out of sync
// now, stop them for synchronization
- // [FIXME] handleSingleWorkingRedundantRouter(connectedRouters,
- // disconnectedRouters, msg);
+ _nwHelper.handleSingleWorkingRedundantRouter(connectedRouters,
disconnectedRouters, msg);
}
} else if (!disconnectedRouters.isEmpty()) {
for (final VirtualRouter router : disconnectedRouters) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0ad36615/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
----------------------------------------------------------------------
diff --git
a/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
b/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
index 7dddb81..5532886 100644
--- a/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
+++ b/server/src/org/apache/cloudstack/network/topology/BasicNetworkVisitor.java
@@ -32,7 +32,7 @@ import com.cloud.network.Network;
import com.cloud.network.PublicIpAddress;
import com.cloud.network.VpnUser;
import com.cloud.network.lb.LoadBalancingRule;
-import com.cloud.network.router.VirtualNetworkApplianceManager;
+import com.cloud.network.router.NetworkGeneralHelper;
import com.cloud.network.router.VirtualRouter;
import com.cloud.network.rules.DhcpEntryRules;
import com.cloud.network.rules.DhcpSubNetRules;
@@ -70,7 +70,7 @@ public class BasicNetworkVisitor extends
NetworkTopologyVisitor {
}
@Inject
- protected VirtualNetworkApplianceManager _applianceManager;
+ protected NetworkGeneralHelper _networkGeneralHelper;
@Override
public boolean visit(final StaticNatRules nat) throws
ResourceUnavailableException {
@@ -81,7 +81,7 @@ public class BasicNetworkVisitor extends
NetworkTopologyVisitor {
final Commands cmds = new Commands(Command.OnError.Continue);
nat.createApplyStaticNatCommands(rules, router, cmds, network.getId());
- return _applianceManager.sendCommandsToRouter(router, cmds);
+ return _networkGeneralHelper.sendCommandsToRouter(router, cmds);
}
@Override
@@ -93,7 +93,7 @@ public class BasicNetworkVisitor extends
NetworkTopologyVisitor {
final Commands cmds = new Commands(Command.OnError.Continue);
loadbalancing.createApplyLoadBalancingRulesCommands(rules, router,
cmds, network.getId());
- return _applianceManager.sendCommandsToRouter(router, cmds);
+ return _networkGeneralHelper.sendCommandsToRouter(router, cmds);
}
@SuppressWarnings("unchecked")
@@ -111,25 +111,25 @@ public class BasicNetworkVisitor extends
NetworkTopologyVisitor {
firewall.createApplyLoadBalancingRulesCommands(loadbalancingRules,
router, cmds, network.getId());
- return _applianceManager.sendCommandsToRouter(router, cmds);
+ return _networkGeneralHelper.sendCommandsToRouter(router, cmds);
} else if (purpose == Purpose.PortForwarding) {
firewall.createApplyPortForwardingRulesCommands((List<? extends
PortForwardingRule>) rules, router, cmds, network.getId());
- return _applianceManager.sendCommandsToRouter(router, cmds);
+ return _networkGeneralHelper.sendCommandsToRouter(router, cmds);
} else if (purpose == Purpose.StaticNat) {
firewall.createApplyStaticNatRulesCommands((List<StaticNatRule>)
rules, router, cmds, network.getId());
- return _applianceManager.sendCommandsToRouter(router, cmds);
+ return _networkGeneralHelper.sendCommandsToRouter(router, cmds);
} else if (purpose == Purpose.Firewall) {
firewall.createApplyFirewallRulesCommands(rules, router, cmds,
network.getId());
- return _applianceManager.sendCommandsToRouter(router, cmds);
+ return _networkGeneralHelper.sendCommandsToRouter(router, cmds);
}
s_logger.warn("Unable to apply rules of purpose: " +
rules.get(0).getPurpose());
@@ -146,7 +146,7 @@ public class BasicNetworkVisitor extends
NetworkTopologyVisitor {
final List<? extends PublicIpAddress> ips = ipRules.getIpAddresses();
ipRules.createAssociateIPCommands(router, ips, commands,
network.getId());
- return _applianceManager.sendCommandsToRouter(router, commands);
+ return _networkGeneralHelper.sendCommandsToRouter(router, commands);
}
@Override
@@ -163,7 +163,7 @@ public class BasicNetworkVisitor extends
NetworkTopologyVisitor {
userdata.createPasswordCommand(router, profile, nicVo, commands);
userdata.createVmDataCommand(router, userVM, nicVo,
userVM.getDetail("SSH.PublicKey"), commands);
- return _applianceManager.sendCommandsToRouter(router, commands);
+ return _networkGeneralHelper.sendCommandsToRouter(router,
commands);
}
return true;
@@ -181,7 +181,7 @@ public class BasicNetworkVisitor extends
NetworkTopologyVisitor {
if (router.getPodIdToDeployIn().longValue() ==
destination.getPod().getId()) {
dhcp.createDhcpEntryCommand(router, userVM, nicVo, commands);
- return _applianceManager.sendCommandsToRouter(router, commands);
+ return _networkGeneralHelper.sendCommandsToRouter(router,
commands);
}
return true;
}
@@ -203,7 +203,7 @@ public class BasicNetworkVisitor extends
NetworkTopologyVisitor {
sshkey.createVmDataCommand(router, userVM, nicVo, sshKeystr, commands);
- return _applianceManager.sendCommandsToRouter(router, commands);
+ return _networkGeneralHelper.sendCommandsToRouter(router, commands);
}
@Override
@@ -215,7 +215,7 @@ public class BasicNetworkVisitor extends
NetworkTopologyVisitor {
final Commands cmds = new Commands(Command.OnError.Stop);
passwd.createPasswordCommand(router, profile, nicVo, cmds);
- return _applianceManager.sendCommandsToRouter(router, cmds);
+ return _networkGeneralHelper.sendCommandsToRouter(router, cmds);
}
@Override
@@ -228,7 +228,7 @@ public class BasicNetworkVisitor extends
NetworkTopologyVisitor {
final Commands commands = new Commands(Command.OnError.Stop);
userdata.createVmDataCommand(router, userVM, nicVo, null, commands);
- return _applianceManager.sendCommandsToRouter(router, commands);
+ return _networkGeneralHelper.sendCommandsToRouter(router, commands);
}
@Override
@@ -239,7 +239,7 @@ public class BasicNetworkVisitor extends
NetworkTopologyVisitor {
final Commands cmds = new Commands(Command.OnError.Continue);
vpn.createApplyVpnUsersCommand(users, router, cmds);
- return _applianceManager.sendCommandsToRouter(router, cmds);
+ return _networkGeneralHelper.sendCommandsToRouter(router, cmds);
}
@Override
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0ad36615/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java
----------------------------------------------------------------------
diff --git
a/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java
b/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java
index 3127858..8802f9b 100644
--- a/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java
+++ b/server/test/com/cloud/vpc/MockVpcVirtualNetworkApplianceManager.java
@@ -27,7 +27,6 @@ import
org.apache.cloudstack.api.command.admin.router.UpgradeRouterCmd;
import org.apache.cloudstack.api.command.admin.router.UpgradeRouterTemplateCmd;
import org.springframework.stereotype.Component;
-import com.cloud.agent.manager.Commands;
import com.cloud.exception.AgentUnavailableException;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
@@ -298,11 +297,4 @@ public class MockVpcVirtualNetworkApplianceManager extends
ManagerBase implement
// TODO Auto-generated method stub
return null;
}
-
- @Override
- public boolean sendCommandsToRouter(final VirtualRouter router, final
Commands cmds)
- throws AgentUnavailableException {
- // TODO Auto-generated method stub
- return false;
- }
}
\ No newline at end of file