From 5d989f322cb59ec15e8a5d23b9ef6f90d9852f59 Mon Sep 17 00:00:00 2001 From: Jayapal Date: Mon, 29 May 2017 15:32:04 +0530 Subject: [PATCH] CLOUDSTACK-9162: Handled vpn user add when vpn is not enabled on the account --- .../cloudstack/api/command/user/vpn/AddVpnUserCmd.java | 2 +- .../com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java b/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java index f6a30b3cbe2..9fd4c5a2dfc 100644 --- a/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java +++ b/api/src/org/apache/cloudstack/api/command/user/vpn/AddVpnUserCmd.java @@ -124,7 +124,7 @@ public class AddVpnUserCmd extends BaseAsyncCreateCmd { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add vpn user"); } }catch (Exception ex) { - throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add vpn user due to resource unavailable"); + throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage()); } VpnUsersResponse vpnResponse = new VpnUsersResponse(); diff --git a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java index 51448f91bfe..67b1cc0faa5 100644 --- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java +++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java @@ -90,6 +90,7 @@ import com.cloud.utils.db.TransactionCallbackNoReturn; import com.cloud.utils.db.TransactionCallbackWithException; import com.cloud.utils.db.TransactionStatus; import com.cloud.utils.net.NetUtils; +import org.apache.commons.collections.CollectionUtils; public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAccessVpnService, Configurable { private final static Logger s_logger = Logger.getLogger(RemoteAccessVpnManagerImpl.class); @@ -508,6 +509,12 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc s_logger.debug("Applying vpn users for " + owner); List vpns = _remoteAccessVpnDao.findByAccount(vpnOwnerId); + + if (CollectionUtils.isEmpty(vpns)) { + s_logger.debug("There are no remote access vpns configured on this account " + owner +" to apply vpn user, failing add vpn user "); + return false; + } + RemoteAccessVpnVO vpnTemp = null; List users = _vpnUsersDao.listByAccount(vpnOwnerId);