I definitely don't think we should be exposing the FlowController to a Reporting Task. However, I think exposing information about whether or not backpressure is being applied (or even is configured) is a very reasonable idea.
-Mark > On Apr 22, 2016, at 10:22 AM, Jeremy Dyer <[email protected]> wrote: > > I could see the argument for not making that available. What about some > sort of reference that would allow the ReportingTask to to determine if > backpressure is being applied to a Connection? It currently seems you can > see the number of bytes and/or objects count queued in a connection but > don't have any reference to the values a user has setup for backpressure in > the UI. Is there a way to get those values in the scope of the > ReportingTask? > > On Fri, Apr 22, 2016 at 10:03 AM, Bryan Bende <[email protected]> wrote: > >> I think the only way you could do it directly without the REST API is by >> having access to the FlowController, >> but that is purposely not exposed to extension points... actually >> StandardFlowController is what implements the >> EventAccess interface which ends up providing the path way to the status >> objects. >> >> I would have to defer to Joe, Mark, and others about whether we would want >> to expose direct access to components >> through controller services, or some other extension point. >> >> On Fri, Apr 22, 2016 at 9:46 AM, Jeremy Dyer <[email protected]> wrote: >> >>> Bryan, >>> >>> The ReportingTask enumeration makes sense and was helpful for something >>> else I am working on as well. >>> >>> Like Joe however I'm looking for a way to not just get the *Status >> objects >>> but rather start and stop processors. Is there a way to do that from the >>> ReportContext scope? I imagine you could pull the Processor "Id" from the >>> ProcessorStatus and then use the REST API but was looking for something >>> more direct than having to use the REST API >>> >>> >>> On Fri, Apr 22, 2016 at 9:23 AM, Bryan Bende <[email protected]> wrote: >>> >>>> Hi Joe, >>>> >>>> I'm not sure if a controller service can do this, but a ReportingTask >> has >>>> access to similar information. >>>> >>>> A ReportingTask gets access to a ReportingContext, which can access >>>> EventAccess which can access ProcessGroupStatus. >>>> >>>> From ProcessGroupStatus you are at the root process group and can >>> enumerate >>>> the flow: >>>> >>>> private Collection<ConnectionStatus> connectionStatus = new >>> ArrayList<>(); >>>> private Collection<ProcessorStatus> processorStatus = new >> ArrayList<>(); >>>> private Collection<ProcessGroupStatus> processGroupStatus = new >>>> ArrayList<>(); >>>> private Collection<RemoteProcessGroupStatus> remoteProcessGroupStatus = >>> new >>>> ArrayList<>(); >>>> private Collection<PortStatus> inputPortStatus = new ArrayList<>(); >>>> private Collection<PortStatus> outputPortStatus = new ArrayList<>(); >>>> >>>> Not sure if that is what you were looking for. >>>> >>>> -Bryan >>>> >>>> >>>> On Fri, Apr 22, 2016 at 8:25 AM, Joe Skora <[email protected]> wrote: >>>> >>>>> Is it possible and if so what is the best way for a controller >> service >>> to >>>>> get the collection of all processors or queues? >>>>> >>>>> The goal being to iterate over the collection of processors or queues >>> to >>>>> gather information or make adjustments to the flow. >>>>> >>>> >>> >>
