@Test public void testCreateSuccess() { AccountService accountService = Mockito.mock(AccountService.class); Account account = Mockito.mock(Account.class); Mockito.when(accountService.getAccount(Matchers.anyLong())).thenReturn(account); addVpnUserCmd._accountService = accountService; RemoteAccessVpnService ravService = Mockito.mock(RemoteAccessVpnService.class); VpnUser vpnUser = Mockito.mock(VpnUser.class); Mockito.when(ravService.addVpnUser(Matchers.anyLong(), Matchers.anyString(), Matchers.anyString())).thenReturn(vpnUser); addVpnUserCmd._ravService = ravService; addVpnUserCmd.create(); }
_vpnMgr.destroyRemoteAccessVpnForIp(ipId, caller,false); } catch (ResourceUnavailableException e) { s_logger.warn("Unable to destroy remote access vpn for ip id=" + ipId + " as a part of ip release", e);
@Override public void execute() { Account owner = _accountService.getAccount(getEntityOwnerId()); boolean result = _ravService.removeVpnUser(owner.getId(), userName, CallContext.current().getCallingAccount()); if (!result) { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to remove vpn user"); } try { if (!_ravService.applyVpnUsers(owner.getId(), userName)) { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to apply vpn user removal"); } }catch (Exception ex) { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to remove vpn user due to resource unavailable"); } SuccessResponse response = new SuccessResponse(getCommandName()); setResponseObject(response); } }
_remoteAccessVpnMgr.removeVpnUser(accountId, vpnUser.getUsername(), caller); _remoteAccessVpnMgr.destroyRemoteAccessVpnForIp(vpn.getServerAddressId(), caller, false);
final List<? extends RemoteAccessVpn> vpnsToReapply = _vpnMgr.listRemoteAccessVpns(networkId); if (vpnsToReapply != null) { for (final RemoteAccessVpn vpn : vpnsToReapply) { if (_vpnMgr.startRemoteAccessVpn(vpn.getServerAddressId(), false) == null) { s_logger.warn("Failed to reapply vpn rules as a part of network id=" + networkId + " restart"); success = false;
@Override public void execute() { try { RemoteAccessVpn result = _ravService.startRemoteAccessVpn(publicIpId, getOpenFirewall()); if (result != null) { RemoteAccessVpnResponse response = _responseGenerator.createRemoteAccessVpnResponse(result); response.setResponseName(getCommandName()); setResponseObject(response); } else { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create remote access vpn"); } } catch (ResourceUnavailableException ex) { s_logger.warn("Exception: ", ex); throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage()); } }
@Override public Long getSyncObjId() { return _ravService.getRemoteAccessVpn(publicIpId).getNetworkId(); }
@Override public long getEntityOwnerId() { if (ownerId == null) { RemoteAccessVpn vpnEntity = _ravService.getRemoteAccessVpnById(id); if (vpnEntity != null) return vpnEntity.getAccountId(); throw new InvalidParameterValueException("The specified id is invalid"); } return ownerId; }
@Override public void execute() { Pair<List<? extends VpnUser>, Integer> vpnUsers = _ravService.searchForVpnUsers(this); ListResponse<VpnUsersResponse> response = new ListResponse<VpnUsersResponse>(); List<VpnUsersResponse> vpnResponses = new ArrayList<VpnUsersResponse>(); for (VpnUser vpnUser : vpnUsers.first()) { vpnResponses.add(_responseGenerator.createVpnUserResponse(vpnUser)); } response.setResponses(vpnResponses, vpnUsers.second()); response.setResponseName(getCommandName()); setResponseObject(response); } }
@Override public void execute() { Pair<List<? extends RemoteAccessVpn>, Integer> vpns = _ravService.searchForRemoteAccessVpns(this); ListResponse<RemoteAccessVpnResponse> response = new ListResponse<RemoteAccessVpnResponse>(); List<RemoteAccessVpnResponse> vpnResponses = new ArrayList<RemoteAccessVpnResponse>(); if (vpns.first() != null && !vpns.first().isEmpty()) { for (RemoteAccessVpn vpn : vpns.first()) { vpnResponses.add(_responseGenerator.createRemoteAccessVpnResponse(vpn)); } } response.setResponses(vpnResponses, vpns.second()); response.setResponseName(getCommandName()); setResponseObject(response); } }
@Override public void create() { try { RemoteAccessVpn vpn = _ravService.createRemoteAccessVpn(publicIpId, ipRange, getOpenFirewall(), isDisplay()); if (vpn != null) { setEntityId(vpn.getId()); setEntityUuid(vpn.getUuid()); } else { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create remote access vpn"); } } catch (NetworkRuleConflictException e) { s_logger.info("Network rule conflict: " + e.getMessage()); s_logger.trace("Network Rule Conflict: ", e); throw new ServerApiException(ApiErrorCode.NETWORK_RULE_CONFLICT_ERROR, e.getMessage()); } }
@Override public void execute() { VpnUser vpnUser = _entityMgr.findById(VpnUser.class, getEntityId()); Account account = _entityMgr.findById(Account.class, vpnUser.getAccountId()); try { if (!_ravService.applyVpnUsers(vpnUser.getAccountId(), userName)) { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add vpn user"); } }catch (Exception ex) { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, ex.getMessage()); } VpnUsersResponse vpnResponse = new VpnUsersResponse(); vpnResponse.setId(vpnUser.getUuid()); vpnResponse.setUserName(vpnUser.getUsername()); vpnResponse.setAccountName(account.getAccountName()); Domain domain = _entityMgr.findById(Domain.class, account.getDomainId()); if (domain != null) { vpnResponse.setDomainId(domain.getUuid()); vpnResponse.setDomainName(domain.getName()); } vpnResponse.setResponseName(getCommandName()); vpnResponse.setObjectName("vpnuser"); setResponseObject(vpnResponse); }
@Override public void execute() { try { final RemoteAccessVpn result = _ravService.startRemoteAccessVpn(publicIpId, getOpenFirewall()); if (result != null) { final RemoteAccessVpnResponse response = _responseGenerator.createRemoteAccessVpnResponse(result); response.setResponseName(getCommandName()); setResponseObject(response); } else { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create remote access vpn"); } } catch (final ResourceUnavailableException ex) { s_logger.warn("Exception: ", ex); throw new ServerApiException(ApiErrorCode.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage()); } }
@Override public long getEntityOwnerId() { if (ownerId == null) { RemoteAccessVpn vpnEntity = _ravService.getRemoteAccessVpn(publicIpId); if (vpnEntity != null) return vpnEntity.getAccountId(); throw new InvalidParameterValueException("The specified public ip is not allocated to any account"); } return ownerId; }
@Override public long getEntityOwnerId() { if (ownerId == null) { final RemoteAccessVpn vpnEntity = _ravService.getRemoteAccessVpnById(id); if (vpnEntity != null) { return vpnEntity.getAccountId(); } throw new InvalidParameterValueException("The specified id is invalid"); } return ownerId; }
@Override public void execute() { final Pair<List<? extends VpnUser>, Integer> vpnUsers = _ravService.searchForVpnUsers(this); final ListResponse<VpnUsersResponse> response = new ListResponse<>(); final List<VpnUsersResponse> vpnResponses = new ArrayList<>(); for (final VpnUser vpnUser : vpnUsers.first()) { vpnResponses.add(_responseGenerator.createVpnUserResponse(vpnUser)); } response.setResponses(vpnResponses, vpnUsers.second()); response.setResponseName(getCommandName()); setResponseObject(response); }
@Override public void execute() { final Pair<List<? extends RemoteAccessVpn>, Integer> vpns = _ravService.searchForRemoteAccessVpns(this); final ListResponse<RemoteAccessVpnResponse> response = new ListResponse<>(); final List<RemoteAccessVpnResponse> vpnResponses = new ArrayList<>(); if (vpns.first() != null && !vpns.first().isEmpty()) { for (final RemoteAccessVpn vpn : vpns.first()) { vpnResponses.add(_responseGenerator.createRemoteAccessVpnResponse(vpn)); } } response.setResponses(vpnResponses, vpns.second()); response.setResponseName(getCommandName()); setResponseObject(response); }
@Override public void create() { try { final RemoteAccessVpn vpn = _ravService.createRemoteAccessVpn(publicIpId, ipRange, getOpenFirewall(), isDisplay()); if (vpn != null) { setEntityId(vpn.getId()); setEntityUuid(vpn.getUuid()); } else { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to create remote access vpn"); } } catch (final NetworkRuleConflictException e) { s_logger.info("Network rule conflict: " + e.getMessage()); s_logger.trace("Network Rule Conflict: ", e); throw new ServerApiException(ApiErrorCode.NETWORK_RULE_CONFLICT_ERROR, e.getMessage()); } }
@Override public void execute() { final VpnUser vpnUser = _entityMgr.findById(VpnUser.class, getEntityId()); final Account account = _entityMgr.findById(Account.class, vpnUser.getAccountId()); if (!_ravService.applyVpnUsers(vpnUser.getAccountId(), userName)) { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add vpn user"); } final VpnUsersResponse vpnResponse = new VpnUsersResponse(); vpnResponse.setId(vpnUser.getUuid()); vpnResponse.setUserName(vpnUser.getUsername()); vpnResponse.setAccountName(account.getAccountName()); final Domain domain = _entityMgr.findById(Domain.class, account.getDomainId()); if (domain != null) { vpnResponse.setDomainId(domain.getUuid()); vpnResponse.setDomainName(domain.getName()); } vpnResponse.setResponseName(getCommandName()); vpnResponse.setObjectName("vpnuser"); setResponseObject(vpnResponse); }
@Test public void testCreateFailure() { AccountService accountService = Mockito.mock(AccountService.class); Account account = Mockito.mock(Account.class); Mockito.when(accountService.getAccount(Matchers.anyLong())).thenReturn(account); addVpnUserCmd._accountService = accountService; RemoteAccessVpnService ravService = Mockito.mock(RemoteAccessVpnService.class); Mockito.when(ravService.addVpnUser(Matchers.anyLong(), Matchers.anyString(), Matchers.anyString())).thenReturn(null); addVpnUserCmd._ravService = ravService; try { addVpnUserCmd.create(); } catch (ServerApiException exception) { Assert.assertEquals("Failed to add vpn user", exception.getDescription()); } }