Hi Andrii, I fixed by following change ''' diff --git a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java index b473f05..2a84714 100644 --- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java +++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java @@ -521,21 +521,26 @@ public class RemoteAccessVpnManagerImpl extends ManagerBase implements RemoteAcc
boolean success = true; - boolean[] finals = new boolean[users.size()]; + Boolean[] finals = new Boolean[users.size()]; for (RemoteAccessVPNServiceProvider element : _vpnServiceProviders) { s_logger.debug("Applying vpn access to " + element.getName()); for (RemoteAccessVpnVO vpn : vpns) { try { String[] results = element.applyVpnUsers(vpn, users); if (results != null) { + int indexUser = -1; for (int i = 0; i < results.length; i++) { - s_logger.debug("VPN User " + users.get(i) + (results[i] == null ? " is set on " : (" couldn't be set due to " + results[i]) + " on ") + vpn); + indexUser ++; + if (indexUser == users.size()) { + indexUser = 0; // results on multiple VPC routers are combined in commit 13eb789, reset user index if one VR is done. + } + s_logger.debug("VPN User " + users.get(indexUser) + (results[i] == null ? " is set on " : (" couldn't be set due to " + results[i]) + " on ") + vpn.getUuid()); if (results[i] == null) { - if (!finals[i]) { - finals[i] = true; + if (finals[indexUser] == null) { + finals[indexUser] = true; } } else { - finals[i] = false; + finals[indexUser] = false; success = false; } } ''' 2016-11-22 14:35 GMT+01:00 Andrei Mikhailovsky <and...@arhont.com.invalid>: > Hello > > Duplicating this from the users list. > > I am running ACS 4.9.0. > > I am having an issue with adding a VPN user to the VPC network. I've > enabled the VPN service on the static IP. The service was enabled and I > have the PSK shown to me. However, when I am adding a new user it fails > with the following error: > > 2016-11-22 12:05:26,189 DEBUG [c.c.n.v.RemoteAccessVpnManagerImpl] > (API-Job-Executor-82:ctx-d62e35c3 job-31537 ctx-8ac8a450) > (logid:f76b2eae) VPN User VpnUser[40-andrei-45] is set on > com.cloud.network.dao.RemoteAccessVpnVO$$EnhancerByCGLIB$$cc1dfb8d@ > 4465732c > 2016-11-22 12:05:26,189 WARN [c.c.n.v.RemoteAccessVpnManagerImpl] > (API-Job-Executor-82:ctx-d62e35c3 job-31537 ctx-8ac8a450) > (logid:f76b2eae) Unable to apply vpn users > java.lang.IndexOutOfBoundsException: Index: 1, Size: 1 > at java.util.ArrayList.rangeCheck(ArrayList.java:635) > at java.util.ArrayList.get(ArrayList.java:411) > at com.cloud.network.vpn.RemoteAccessVpnManagerImpl.applyVpnUsers( > RemoteAccessVpnManagerImpl.java:532) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at sun.reflect.NativeMethodAccessorImpl.invoke( > NativeMethodAccessorImpl.java:57) > at sun.reflect.DelegatingMethodAccessorImpl.invoke( > DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:606) > at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection > (AopUtils.java:317) > at org.springframework.aop.framework.ReflectiveMethodInvocation. > invokeJoinpoint(ReflectiveMethodInvocation.java:183) > at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( > ReflectiveMethodInvocation.java:150) > at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke( > ExposeInvocationInterceptor.java:91) > at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( > ReflectiveMethodInvocation.java:172) > at org.springframework.aop.framework.JdkDynamicAopProxy. > invoke(JdkDynamicAopProxy.java:204) > at com.sun.proxy.$Proxy237.applyVpnUsers(Unknown Source) > at org.apache.cloudstack.api.command.user.vpn.AddVpnUserCmd.execute( > AddVpnUserCmd.java:122) > at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:150) > at com.cloud.api.ApiAsyncJobDispatcher.runJob(ApiAsyncJobDispatcher.java: > 108) > at org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5. > runInContext(AsyncJobManagerImpl.java:554) > at org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run( > ManagedContextRunnable.java:49) > at org.apache.cloudstack.managed.context.impl. > DefaultManagedContext$1.call(DefaultManagedContext.java:56) > at org.apache.cloudstack.managed.context.impl.DefaultManagedContext. > callWithContext(DefaultManagedContext.java:103) > at org.apache.cloudstack.managed.context.impl.DefaultManagedContext. > runWithContext(DefaultManagedContext.java:53) > at org.apache.cloudstack.managed.context.ManagedContextRunnable.run( > ManagedContextRunnable.java:46) > at org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.run( > AsyncJobManagerImpl.java:502) > at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) > at java.util.concurrent.FutureTask.run(FutureTask.java:262) > at java.util.concurrent.ThreadPoolExecutor.runWorker( > ThreadPoolExecutor.java:1145) > at java.util.concurrent.ThreadPoolExecutor$Worker.run( > ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > 2016-11-22 12:05:26,190 DEBUG [c.c.n.v.RemoteAccessVpnManagerImpl] > (API-Job-Executor-82:ctx-d62e35c3 job-31537 ctx-8ac8a450) > (logid:f76b2eae) Applying vpn access to VirtualRouter > 2016-11-22 12:05:26,192 WARN [c.c.n.v.RemoteAccessVpnManagerImpl] > (API-Job-Executor-82:ctx-d62e35c3 job-31537 ctx-8ac8a450) > (logid:f76b2eae) Failed to apply vpn for user andrei, accountId=45 > 2016-11-22 12:05:26,193 DEBUG [o.a.c.f.j.i.AsyncJobManagerImpl] > (API-Job-Executor-82:ctx-d62e35c3 job-31537) (logid:f76b2eae) Complete > async job-31537, jobStatus: FAILED, resultCode: 530, result: > org.apache.cloudstack.api.response.ExceptionResponse/null/{"uuidList":[]," > errorcode":530,"errortext":"Failed to add vpn user"} > > Please advise how to get this problem fixed and have a working VPN service? > > Thanks > > Andrei >