If you have an account on the wiki, I can add some rights to it (or any pmc member could)
On Fri, Mar 14, 2014 at 10:47 AM, Antonio Fornié Casarrubios <antonio.for...@gmail.com> wrote: > The params are converted to lowercase, the problem is the processed params > are available only inside the dispatch chain, so later when the rest of the > method ApiDispatcher#dispatch tries to get the param, in the map where it > was looking up it was still with Camel Case name. I think the proper way to > do this is to include the rest of the ApiDispatcher#dispatch method in the > chain: another worker the receives the modified params (lowercase). > > > Actually this worker should call a Cmd method that would do one thing or > another depending on the Cmd type. This way we avoid having all this: > > if (cmd instanceof BaseAsyncCmd) { > ....// 30 lines to be moved to BaseAsyncCmd > } > > if (cmd instanceof BaseAsyncCustomIdCmd) { > ((BaseAsyncCustomIdCmd)cmd).checkUuid(); > } else if (cmd instanceof BaseCustomIdCmd) { > ((BaseCustomIdCmd)cmd).checkUuid(); > } > > > And one last thing. At some point in these 30 lines, it returns if two ifs > are satisfied. I understand the return if meant to avoid calling > cmd.execute(); in the last line. Is that right? My concern is that the > return is also avoiding the code that calls ...cmd).checkUuid() . Is this > correct? Shouldn't we checkUuid even if we are not going to execute? > > > > Sorry for the problems and thanks for fixing it so fast. > > > > By the way, how can I get rights to add this information to the Cloudstack > wiki? Just to explain the dispatching info and how the Dispatch Chain works. > I would also include some info about format of incoming parameters (like > Maps) > > Thanks. Cheers > Antonio > > > > 2014-03-14 9:50 GMT+01:00 Antonio Fornié Casarrubios > <antonio.for...@gmail.com>: > >> Sorry, I see what the problem is. I've been looking for other possible >> side effects. But this should only affect anything in ApiDispatcher after >> standardDispatchChain.dispatch(new DispatchTask(cmd, params)); >> because the params used are not the same object processed in the >> dispatchChain. I'm going to change this properly, test it and upload it. >> >> Sorry again and thanks for the change. >> >> Antonio >> >> >> 2014-03-14 0:55 GMT+01:00 Min Chen <min.c...@citrix.com>: >> >>> Fixed with commit d3fd66e9f555616530e483d1eacf2525556bf14e on master. >>> >>> Thanks >>> -min >>> >>> On 3/13/14 4:34 PM, "Min Chen" <min.c...@citrix.com> wrote: >>> >>> >Yes, that is problem. Parameter name is changed to lowercase, which will >>> >not be able to retrieve parameters from API job. >>> > >>> >Thanks >>> >-min >>> > >>> >On 3/13/14 4:31 PM, "Daan Hoogland" <daan.hoogl...@gmail.com> wrote: >>> > >>> >>It's half passed midnight here so you won't get an answer soon from >>> >>this side of the ocean. >>> >> >>> >>The line >>> >>at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:89) >>> >> is from juli last year. So I doubt if Antonio knows about it. How >>> >>does it involve the dispatcher refactoring? >>> >> >>> >>I noticed that the parameter name that is fetched is lowercase where >>> >>it used to be camelcase. Does this matter? >>> >> >>> >>On Fri, Mar 14, 2014 at 12:14 AM, Alena Prokharchyk >>> >><alena.prokharc...@citrix.com> wrote: >>> >>> Min is about to submit a change as a part of her checkin. Antonio, >>> >>> its >>> >>>due >>> >>> to Long/long auto boxing caused by your api validation stuff. Can you >>> >>> please check other places that could get potentially affected? >>> >>> >>> >>> Thanks, >>> >>> Alena. >>> >>> >>> >>> On 3/13/14, 4:10 PM, "Kelven Yang" <kelven.y...@citrix.com> wrote: >>> >>> >>> >>>>Anyone encounter this problem on master? >>> >>>> >>> >>>>WARN [c.c.a.d.ParamGenericValidationWorker] >>> >>>>(163545706@qtp-538020828-6:ctx-afe77737 ctx-06c20804) Received >>> >>>> unknown >>> >>>>parameters for command listRegions. Unknown parameters : listall >>> >>>>WARN [c.c.a.d.ParamGenericValidationWorker] >>> >>>>(1770041501@qtp-538020828-3:ctx-1342c426 ctx-07426dab) Received >>> >>>> unknown >>> >>>>parameters for command listZones. Unknown parameters : listall >>> >>>>WARN [c.c.a.d.ParamGenericValidationWorker] >>> >>>>(1770041501@qtp-538020828-3:ctx-372e085d ctx-b4145c82) Received >>> >>>> unknown >>> >>>>parameters for command listPods. Unknown parameters : listall >>> >>>>WARN [c.c.a.d.ParamGenericValidationWorker] >>> >>>>(1770041501@qtp-538020828-3:ctx-4debfd84 ctx-2bc17638) Received >>> >>>> unknown >>> >>>>parameters for command listClusters. Unknown parameters : listall >>> >>>>WARN [c.c.a.d.ParamGenericValidationWorker] >>> >>>>(1770041501@qtp-538020828-3:ctx-d859137c ctx-796427ce) Received >>> >>>> unknown >>> >>>>parameters for command listHosts. Unknown parameters : listall >>> >>>>WARN [c.c.a.d.ParamGenericValidationWorker] >>> >>>>(1770041501@qtp-538020828-3:ctx-28a609f4 ctx-928c994c) Received >>> >>>> unknown >>> >>>>parameters for command listStoragePools. Unknown parameters : listall >>> >>>>WARN [c.c.a.d.ParamGenericValidationWorker] >>> >>>>(1770041501@qtp-538020828-3:ctx-2b402632 ctx-e9d04c3c) Received >>> >>>> unknown >>> >>>>parameters for command listImageStores. Unknown parameters : listall >>> >>>>type >>> >>>>WARN [c.c.a.d.ParamGenericValidationWorker] >>> >>>>(1770041501@qtp-538020828-3:ctx-b5b48d9b ctx-3fea144f) Received >>> >>>> unknown >>> >>>>parameters for command listSystemVms. Unknown parameters : listall >>> >>>>WARN [c.c.a.d.ParamGenericValidationWorker] >>> >>>>(1770041501@qtp-538020828-3:ctx-77ae4d94 ctx-c39b828f) Received >>> >>>> unknown >>> >>>>parameters for command listHypervisors. Unknown parameters : listall >>> >>>>WARN [c.c.a.d.ParamGenericValidationWorker] >>> >>>>(1770041501@qtp-538020828-3:ctx-8eb4acce ctx-f63fefa4) Received >>> >>>> unknown >>> >>>>parameters for command listDomains. Unknown parameters : viewall >>> >>>>INFO [o.a.c.f.j.i.AsyncJobMonitor] (API-Job-Executor-1:Job-3) Add >>> >>>>job-3 >>> >>>>into job monitoring >>> >>>>ERROR [c.c.a.ApiAsyncJobDispatcher] (API-Job-Executor-1:Job-3) >>> >>>>Unexpected >>> >>>>exception while executing >>> >>> >>>> >>>>org.apache.cloudstack.api.command.admin.network.CreatePhysicalNetworkCm >>> >>>>d >>> >>>>java.lang.NumberFormatException: null >>> >>>>at java.lang.Long.parseLong(Long.java:404) >>> >>>>at java.lang.Long.valueOf(Long.java:540) >>> >>>>at com.cloud.api.ApiDispatcher.dispatch(ApiDispatcher.java:89) >>> >>>>at >>> >>> >>>> >>>>com.cloud.api.ApiAsyncJobDispatcher.runJob(ApiAsyncJobDispatcher.java:1 >>> >>>>0 >>> >>>>0) >>> >>>>at >>> >>> >>>> >>>>org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.runInCo >>> >>>>n >>> >>>>te >>> >>>>xt(AsyncJobManagerImpl.java:491) >>> >>>>at >>> >>> >>>> >>>>org.apache.cloudstack.managed.context.ManagedContextRunnable$1.run(Mana >>> >>>>g >>> >>>>ed >>> >>>>ContextRunnable.java:49) >>> >>>>at >>> >>> >>>> >>>>org.apache.cloudstack.managed.context.impl.DefaultManagedContext$1.call >>> >>>>( >>> >>>>De >>> >>>>faultManagedContext.java:56) >>> >>>>at >>> >>> >>>> >>>>org.apache.cloudstack.managed.context.impl.DefaultManagedContext.callWi >>> >>>>t >>> >>>>hC >>> >>>>ontext(DefaultManagedContext.java:103) >>> >>>>at >>> >>> >>>> >>>>org.apache.cloudstack.managed.context.impl.DefaultManagedContext.runWit >>> >>>>h >>> >>>>Co >>> >>>>ntext(DefaultManagedContext.java:53) >>> >>>>at >>> >>> >>>> >>>>org.apache.cloudstack.managed.context.ManagedContextRunnable.run(Manage >>> >>>>d >>> >>>>Co >>> >>>>ntextRunnable.java:46) >>> >>>>at >>> >>> >>>> >>>>org.apache.cloudstack.framework.jobs.impl.AsyncJobManagerImpl$5.run(Asy >>> >>>>n >>> >>>>cJ >>> >>>>obManagerImpl.java:448) >>> >>>>at >>> >>> >>>> >>>>java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) >>> >>>>at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) >>> >>>>at java.util.concurrent.FutureTask.run(FutureTask.java:166) >>> >>>>at >>> >>> >>>> >>>>java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.ja >>> >>>>v >>> >>>>a: >>> >>>>1145) >>> >>>>at >>> >>> >>>> >>>>java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j >>> >>>>a >>> >>>>va >>> >>>>:615) >>> >>>>at java.lang.Thread.run(Thread.java:724) >>> >>>>INFO [o.a.c.f.j.i.AsyncJobMonitor] (API-Job-Executor-1:Job-3) Remove >>> >>>>job-3 from job monitoring >>> >>>> >>> >>>>Kelven >>> >>> >>> >> >>> >> >>> >> >>> >>-- >>> >>Daan >>> > >>> >> > -- Daan