You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ja...@apache.org on 2014/05/06 16:06:03 UTC
[1/3] git commit: updated refs/heads/4.4-forward to a708d5c
Repository: cloudstack
Updated Branches:
refs/heads/4.4-forward a642fa163 -> a708d5c49
CLOUDSTACK-6577: Disable service monitoring in RVR
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a708d5c4
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a708d5c4
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a708d5c4
Branch: refs/heads/4.4-forward
Commit: a708d5c4982595666cfe8fe03510517cfefe1326
Parents: 758f7f2
Author: Jayapal <ja...@apache.org>
Authored: Mon May 5 13:45:51 2014 +0530
Committer: Jayapal <ja...@apache.org>
Committed: Tue May 6 19:35:34 2014 +0530
----------------------------------------------------------------------
.../VirtualNetworkApplianceManagerImpl.java | 22 ++++++++++++--------
1 file changed, 13 insertions(+), 9 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a708d5c4/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 d877c6e..be3e849 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -2485,6 +2485,19 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
if (reprogramGuestNtwks) {
finalizeIpAssocForNetwork(cmds, router, provider, guestNetworkId, null);
finalizeNetworkRulesForNetwork(cmds, router, provider, guestNetworkId);
+
+ NetworkOffering offering = _networkOfferingDao.findById((_networkDao.findById(guestNetworkId)).getNetworkOfferingId());
+ //service monitoring is currently not added in RVR
+ if (!offering.getRedundantRouter()) {
+ String serviceMonitringSet = _configDao.getValue(Config.EnableServiceMonitoring.key());
+
+ if (serviceMonitringSet != null && serviceMonitringSet.equalsIgnoreCase("true")) {
+ finalizeMonitorServiceOnStrat(cmds, profile, router, provider, guestNetworkId, true);
+ } else {
+ finalizeMonitorServiceOnStrat(cmds, profile, router, provider, guestNetworkId, false);
+ }
+ }
+
}
finalizeUserDataAndDhcpOnStart(cmds, router, provider, guestNetworkId);
@@ -2495,15 +2508,6 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
- String serviceMonitringSet = SetServiceMonitor.valueIn(router.getDataCenterId());
- //String serviceMonitringSet = _configDao.getValue(Config.EnableServiceMonitoring.key());
-
- if (serviceMonitringSet != null && serviceMonitringSet.equalsIgnoreCase("true")) {
- finalizeMonitorServiceOnStrat(cmds, profile, router, provider, routerGuestNtwkIds.get(0), true);
- } else {
- finalizeMonitorServiceOnStrat(cmds, profile, router, provider, routerGuestNtwkIds.get(0), false);
- }
-
return true;
}
[3/3] git commit: updated refs/heads/4.4-forward to a708d5c
Posted by ja...@apache.org.
CLOUDSTACK-6531: stopping the router in case of command failures. Also added alerts for failures.
Signed-off-by: Jayapal <ja...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/645516ee
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/645516ee
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/645516ee
Branch: refs/heads/4.4-forward
Commit: 645516ee78a8117dfa221caa0fc8d4dfe521af2b
Parents: a642fa1
Author: Rajani Karuturi <ra...@gmail.com>
Authored: Mon May 5 15:31:35 2014 +0530
Committer: Jayapal <ja...@apache.org>
Committed: Tue May 6 19:35:34 2014 +0530
----------------------------------------------------------------------
.../VirtualNetworkApplianceManagerImpl.java | 52 ++++++++------------
1 file changed, 20 insertions(+), 32 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/645516ee/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 80ca1cf..d877c6e 100755
--- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -46,6 +46,7 @@ import javax.naming.ConfigurationException;
import org.apache.log4j.Logger;
+import org.apache.cloudstack.alert.AlertService;
import org.apache.cloudstack.alert.AlertService.AlertType;
import org.apache.cloudstack.api.command.admin.router.RebootRouterCmd;
import org.apache.cloudstack.api.command.admin.router.UpgradeRouterCmd;
@@ -81,7 +82,6 @@ import com.cloud.agent.api.NetworkUsageAnswer;
import com.cloud.agent.api.NetworkUsageCommand;
import com.cloud.agent.api.PvlanSetupCommand;
import com.cloud.agent.api.StartupCommand;
-import com.cloud.agent.api.check.CheckSshAnswer;
import com.cloud.agent.api.check.CheckSshCommand;
import com.cloud.agent.api.routing.AggregationControlCommand;
import com.cloud.agent.api.routing.AggregationControlCommand.Action;
@@ -2807,22 +2807,23 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
public boolean finalizeStart(final VirtualMachineProfile profile, final long hostId, final Commands cmds, final ReservationContext context) {
DomainRouterVO router = _routerDao.findById(profile.getId());
- boolean result = true;
-
- Answer answer = cmds.getAnswer("checkSsh");
- if (answer != null && answer instanceof CheckSshAnswer) {
- final CheckSshAnswer sshAnswer = (CheckSshAnswer)answer;
- if (sshAnswer == null || !sshAnswer.getResult()) {
- s_logger.warn("Unable to ssh to the VM: " + sshAnswer.getDetails());
- result = false;
+ //process all the answers
+ for (Answer answer : cmds.getAnswers()) {
+ // handle any command failures
+ if (!answer.getResult()) {
+ String cmdClassName = answer.getClass().getCanonicalName().replace("Answer", "Command");
+ String errorMessage = "Command: " + cmdClassName + " failed while starting virtual router";
+ String errorDetails = "Details: " + answer.getDetails() + " " + answer.toString();
+ //add alerts for the failed commands
+ _alertMgr.sendAlert(AlertService.AlertType.ALERT_TYPE_DOMAIN_ROUTER, router.getDataCenterId(), router.getPodIdToDeployIn(), errorMessage, errorDetails);
+ s_logger.warn(errorMessage);
+ //Stop the router if any of the commands failed
+ return false;
}
- } else {
- result = false;
- }
- if (result == false) {
- return result;
}
+ // at this point, all the router command are successful.
+ boolean result = true;
//Get guest networks info
final List<Network> guestNetworks = new ArrayList<Network>();
@@ -2837,24 +2838,11 @@ public class VirtualNetworkApplianceManagerImpl extends ManagerBase implements V
}
}
}
-
- if (!result) {
- return result;
- }
-
- answer = cmds.getAnswer("getDomRVersion");
- if (answer != null && answer instanceof GetDomRVersionAnswer) {
- final GetDomRVersionAnswer versionAnswer = (GetDomRVersionAnswer)answer;
- if (answer == null || !answer.getResult()) {
- s_logger.warn("Unable to get the template/scripts version of router " + router.getInstanceName() + " due to: " + versionAnswer.getDetails());
- result = false;
- } else {
- router.setTemplateVersion(versionAnswer.getTemplateVersion());
- router.setScriptsVersion(versionAnswer.getScriptsVersion());
- router = _routerDao.persist(router, guestNetworks);
- }
- } else {
- result = false;
+ if (result) {
+ GetDomRVersionAnswer versionAnswer = (GetDomRVersionAnswer)cmds.getAnswer("getDomRVersion");
+ router.setTemplateVersion(versionAnswer.getTemplateVersion());
+ router.setScriptsVersion(versionAnswer.getScriptsVersion());
+ router = _routerDao.persist(router, guestNetworks);
}
return result;
[2/3] git commit: updated refs/heads/4.4-forward to a708d5c
Posted by ja...@apache.org.
CLOUDSTACK-6578: Fixed issue in delete remote access vpn command
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/758f7f2f
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/758f7f2f
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/758f7f2f
Branch: refs/heads/4.4-forward
Commit: 758f7f2f16d361c40bf61db1e7fd799efe9827db
Parents: 645516e
Author: Jayapal <ja...@apache.org>
Authored: Mon May 5 13:56:59 2014 +0530
Committer: Jayapal <ja...@apache.org>
Committed: Tue May 6 19:35:34 2014 +0530
----------------------------------------------------------------------
.../com/cloud/network/vpn/RemoteAccessVpnService.java | 2 +-
.../api/command/user/vpn/DeleteRemoteAccessVpnCmd.java | 6 +++++-
.../cloud/network/vpn/RemoteAccessVpnManagerImpl.java | 12 ++++++++++--
3 files changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/758f7f2f/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java b/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java
index acf007b..decf8c4 100644
--- a/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java
+++ b/api/src/com/cloud/network/vpn/RemoteAccessVpnService.java
@@ -33,7 +33,7 @@ public interface RemoteAccessVpnService {
RemoteAccessVpn createRemoteAccessVpn(long vpnServerAddressId, String ipRange, boolean openFirewall, Boolean forDisplay) throws NetworkRuleConflictException;
- void destroyRemoteAccessVpnForIp(long vpnServerAddressId, Account caller) throws ResourceUnavailableException;
+ boolean destroyRemoteAccessVpnForIp(long ipId, Account caller) throws ResourceUnavailableException;
RemoteAccessVpn startRemoteAccessVpn(long vpnServerAddressId, boolean openFirewall) throws ResourceUnavailableException;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/758f7f2f/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
index f894124..37b7b5a 100644
--- a/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/vpn/DeleteRemoteAccessVpnCmd.java
@@ -20,6 +20,8 @@ import org.apache.log4j.Logger;
import org.apache.cloudstack.api.APICommand;
import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.ServerApiException;
import org.apache.cloudstack.api.BaseAsyncCmd;
import org.apache.cloudstack.api.Parameter;
import org.apache.cloudstack.api.response.AccountResponse;
@@ -91,7 +93,9 @@ public class DeleteRemoteAccessVpnCmd extends BaseAsyncCmd {
@Override
public void execute() throws ResourceUnavailableException {
- _ravService.destroyRemoteAccessVpnForIp(publicIpId, CallContext.current().getCallingAccount());
+ if (! _ravService.destroyRemoteAccessVpnForIp(publicIpId, CallContext.current().getCallingAccount())) {
+ throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to delete remote access vpn");
+ }
}
@Override
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/758f7f2f/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
index 0f734dd..9d9118c 100755
--- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
@@ -285,15 +285,16 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
@Override
@DB
- public void destroyRemoteAccessVpnForIp(long ipId, Account caller) throws ResourceUnavailableException {
+ public boolean destroyRemoteAccessVpnForIp(long ipId, Account caller) throws ResourceUnavailableException {
final RemoteAccessVpnVO vpn = _remoteAccessVpnDao.findByPublicIpAddress(ipId);
if (vpn == null) {
s_logger.debug("there are no Remote access vpns for public ip address id=" + ipId);
- return;
+ return true;
}
_accountMgr.checkAccess(caller, AccessType.OperateEntry, vpn);
+ RemoteAccessVpn.State prevState = vpn.getState();
vpn.setState(RemoteAccessVpn.State.Removed);
_remoteAccessVpnDao.update(vpn.getId(), vpn);
@@ -305,6 +306,12 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
break;
}
}
+ }catch (ResourceUnavailableException ex) {
+ vpn.setState(prevState);
+ _remoteAccessVpnDao.update(vpn.getId(), vpn);
+ s_logger.debug("Failed to stop the vpn " + vpn.getId() + " , so reverted state to "+
+ RemoteAccessVpn.State.Running);
+ success = false;
} finally {
if (success) {
//Cleanup corresponding ports
@@ -366,6 +373,7 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
}
}
}
+ return success;
}
@Override