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
>

Reply via email to