Chris, You should be able to just create the command instances yourself and feed it to the service class. It does not require the handler.
--Alex > -----Original Message----- > From: Chiradeep Vittal > Sent: Monday, July 15, 2013 7:36 PM > To: dev@cloudstack.apache.org > Cc: Min Chen; Alex Huang > Subject: Re: Invoking an API from an API plugin > > Yes, that is unfortunate design. The service interface was not supposed to do > that. > CC Min and Alex to see if they have a quick workaround. > It would also help to know what exactly you are trying to achieve. > > On 7/15/13 11:12 PM, "SuichII, Christopher" <chris.su...@netapp.com> > wrote: > > >It looks like the service interfaces all expect to be invoked directly > >from an API handler (they only have Cmds for parameters). For example, > >QueryService/QueryManagerImpl.searchForServers() takes a ListHostsCmd. > >This ListsHostsCmd can only be created by invoking the listHosts API. > >If it had public setters, then the command could be instantiated and > >execute() could be called directly, but that wouldn't be working at the > >service interface level. > > > >Am I missing something here or is this not the service interface you > >meant? > > > >-Chris > > > >On Jul 15, 2013, at 12:29 AM, Chiradeep Vittal > ><chiradeep.vit...@citrix.com> wrote: > > > >> APIs should call the service interface directly and not call other APIs. > >> > >> On 7/12/13 1:40 AM, "SuichII, Christopher" <chris.su...@netapp.com> > >>wrote: > >> > >>> Er, I should have mentioned that it is not as easy as simply > >>>invoking one API command from another since all the CS API commands > >>>have private @paramenter members. Because of this, I cannot simply > >>>instantiate a command, populate it with the parameters and call > >>>execute() on it. > >>> > >>> -Chris > >>> > >>> On Jul 11, 2013, at 4:09 PM, Chris Suich <chris.su...@netapp.com> > >>> wrote: > >>> > >>>> I'm writing an API plugin that needs to consume an API that already > >>>>exists in CS. The only way I can find to do this would be to send > >>>>the REST/HTTP request from my plugin, but I'm hoping there is an > >>>>easier way. > >>>> Since both plugins are on the same Java classpath they have the > >>>>ability to invoke each other. > >>>> > >>>> Is there a simple way to do this that I'm missing? > >>>> > >>>> -Chris > >>> > >> > >