Return-Path: X-Original-To: apmail-incubator-cloudstack-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-cloudstack-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 87B6AD843 for ; Fri, 6 Jul 2012 18:11:03 +0000 (UTC) Received: (qmail 90842 invoked by uid 500); 6 Jul 2012 18:11:03 -0000 Delivered-To: apmail-incubator-cloudstack-commits-archive@incubator.apache.org Received: (qmail 90783 invoked by uid 500); 6 Jul 2012 18:11:03 -0000 Mailing-List: contact cloudstack-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cloudstack-dev@incubator.apache.org Delivered-To: mailing list cloudstack-commits@incubator.apache.org Received: (qmail 90657 invoked by uid 99); 6 Jul 2012 18:11:03 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Fri, 06 Jul 2012 18:11:03 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id BD62AC325; Fri, 6 Jul 2012 18:11:02 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: alena1108@apache.org To: cloudstack-commits@incubator.apache.org X-Mailer: ASF-Git Admin Mailer Subject: [3/11] git commit: VPC: don't fail when create/remove static route when VPC VR is in Stopped state Message-Id: <20120706181102.BD62AC325@tyr.zones.apache.org> Date: Fri, 6 Jul 2012 18:11:02 +0000 (UTC) VPC: don't fail when create/remove static route when VPC VR is in Stopped state Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/e19e26ec Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/e19e26ec Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/e19e26ec Branch: refs/heads/vpc Commit: e19e26ec4e2d867a421d22f6c174416b042a7a98 Parents: b13acc6 Author: Alena Prokharchyk Authored: Thu Jul 5 17:25:51 2012 -0700 Committer: Alena Prokharchyk Committed: Fri Jul 6 11:09:15 2012 -0700 ---------------------------------------------------------------------- .../VpcVirtualNetworkApplianceManagerImpl.java | 21 ++++++++++++-- 1 files changed, 18 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e19e26ec/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 959831c..37aa6ff 100644 --- a/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VpcVirtualNetworkApplianceManagerImpl.java @@ -41,6 +41,7 @@ import com.cloud.agent.api.to.NetworkACLTO; import com.cloud.agent.api.to.NicTO; import com.cloud.agent.api.to.VirtualMachineTO; import com.cloud.agent.manager.Commands; +import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenterVO; import com.cloud.deploy.DataCenterDeployment; import com.cloud.deploy.DeployDestination; @@ -98,6 +99,7 @@ import com.cloud.vm.Nic; import com.cloud.vm.NicProfile; import com.cloud.vm.ReservationContext; import com.cloud.vm.VirtualMachine; +import com.cloud.vm.VirtualMachine.State; import com.cloud.vm.VirtualMachineProfile; import com.cloud.vm.VirtualMachineProfile.Param; import com.cloud.vm.dao.VMInstanceDao; @@ -1014,9 +1016,22 @@ public class VpcVirtualNetworkApplianceManagerImpl extends VirtualNetworkApplian return true; } - //send commands to only one router as there is only one in the VPC - return sendStaticRoutes(staticRoutes, routers.get(0)); - + boolean result = true; + for (VirtualRouter router : routers) { + if (router.getState() == State.Running) { + result = result && sendStaticRoutes(staticRoutes, routers.get(0)); + + } else if (router.getState() == State.Stopped || router.getState() == State.Stopping) { + s_logger.debug("Router " + router.getInstanceName() + " is in " + router.getState() + + ", so not sending StaticRoute command to the backend"); + } else { + s_logger.warn("Unable to apply StaticRoute, virtual router is not in the right state " + router.getState()); + + throw new ResourceUnavailableException("Unable to apply StaticRoute on the backend," + + " virtual router is not in the right state", DataCenter.class, router.getDataCenterIdToDeployIn()); + } + } + return result; } protected boolean sendStaticRoutes(List staticRoutes, DomainRouterVO router)