I wrote a search operator that takes actions external to splunk. It has to take an action to 'complete' its operations. How can my search operator know when it is done being called, given that it could be called any number of times?
The search operator is currently 'streaming = true' since it could be handling extremely large data volumes. Can this perhaps be set to false for this purpose?
I don't know the answer to whether it can be told whether it is "complete". (And with 4.1 real-time search, it may actually never be complete.)
However, setting "streaming = false" will simply limit your script to being called just once with at most "maxinputs" results.
Never completing (endless input) would be fine. The data would keep being quantized acceptably. However, the last unfinished quanta must be processed somehow. Only handling maxinputs is not really acceptable.