Joe Skora - does Jeremy's JIRA cover your use case needs?
On Fri, Apr 22, 2016 at 12:44 PM, Jeremy Dyer <jdy...@gmail.com> wrote: > Mark, > > ok that makes sense. I have created a jira for this improvement > https://issues.apache.org/jira/browse/NIFI-1805 > > On Fri, Apr 22, 2016 at 12:27 PM, Mark Payne <marka...@hotmail.com> wrote: > >> Jeremy, >> >> It should be relatively easy. In FlowController, we would have to update >> getGroupStatus() to set the values on ConnectionStatus >> and of course update ConnectionStatus to have getters & setters for the >> new values. That should be about it, I think. >> >> -Mark >> >> >> > On Apr 22, 2016, at 12:17 PM, Jeremy Dyer <jdy...@gmail.com> wrote: >> > >> > Mark, >> > >> > What would the process look like for doing that? Would that be something >> > trivial or require some reworking? >> > >> > On Fri, Apr 22, 2016 at 10:26 AM, Mark Payne <marka...@hotmail.com> >> wrote: >> > >> >> 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 <jdy...@gmail.com> 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 <bbe...@gmail.com> >> 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 <jdy...@gmail.com> >> 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 <bbe...@gmail.com> >> 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 <jsk...@gmail.com> >> 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. >> >>>>>>> >> >>>>>> >> >>>>> >> >>>> >> >> >> >> >> >>