I thought about this approach, but all of the commands have private members/parameters and do not have setters.
Chris On Jul 15, 2013, at 11:50 PM, Alex Huang <alex.hu...@citrix.com> wrote: > 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 >>>>> >>>> >>> >