Hi Wei

Is this something that will be merged in the next release?

Thanks

----- Original Message -----
> From: "Wei ZHOU" <ustcweiz...@gmail.com>
> To: "dev" <dev@cloudstack.apache.org>
> Sent: Tuesday, 22 November, 2016 15:06:18
> Subject: Re: error adding VPN user in VPC network

> 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