bt2: raise an exception if an AutoSourceComponentSpec produces no component
authorSimon Marchi <simon.marchi@efficios.com>
Mon, 12 Aug 2019 18:37:58 +0000 (14:37 -0400)
committerPhilippe Proulx <eeppeliteloop@gmail.com>
Mon, 12 Aug 2019 21:13:35 +0000 (17:13 -0400)
We don't do anything special at the moment if an AutoSourceComponentSpec
passed to TraceCollectionMessageIterator produces no component.  The
created graph will have no source component and the message iterator
will produce no message:

    In [5]: list(bt2.TraceCollectionMessageIterator('/yomadame'))
    08-12 14:43:03.938 20284 20284 W CLI-CFG-SRC-AUTO-DISC auto_discover_source_components@autodisc.c:755 No trace was found based on input `/yomadame`.
    Out[5]: []

This patch changes the behavior to be a bit more strict.  If any
AutoSourceComponentSpec passed to TraceCollectionMessageIterator ends up
producing no component, an exception is raised.  In the following example, the
directory `/home/smarchi/lttng-traces` does contain some valid traces, and
therefore produces some components, whereas the string `/yomadame` does not
produce any.

    In [2]: bt2.TraceCollectionMessageIterator(['/home/smarchi/lttng-traces', '/yomadame'])
    08-12 14:45:06.433 24428 24428 W CLI-CFG-SRC-AUTO-DISC auto_discover_source_components@autodisc.c:755 No trace was found based on input `/yomadame`.
    ---------------------------------------------------------------------------
    RuntimeError                              Traceback (most recent call last)
    <ipython-input-2-107461e1b36b> in <module>
    ----> 1 bt2.TraceCollectionMessageIterator(['/home/smarchi/lttng-traces', '/yomadame'])

    ~/build/babeltrace/src/bindings/python/bt2/build/build_lib/bt2/trace_collection_message_iterator.py in __init__(self, source_component_specs, filter_component_specs, stream_intersection_mode, begin, end, plugin_set)
        292         ]
        293         self._src_comp_specs += _auto_discover_source_component_specs(
    --> 294             auto_src_comp_specs, plugin_set
        295         )
        296

    ~/build/babeltrace/src/bindings/python/bt2/build/build_lib/bt2/trace_collection_message_iterator.py in _auto_discover_source_component_specs(auto_source_comp_specs, plugin_set)
        194
        195         msg = 'Some auto source component specs did not produce any component: ' + ', '.join(unused_inputs)
    --> 196         raise RuntimeError(msg)
        197
        198     return comp_specs

    RuntimeError: Some auto source component specs did not produce any component: /yomadame

Change-Id: I6c6df9fad18915e294559948812a8213596affdf
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1885
Tested-by: jenkins <jenkins@lttng.org>
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>

No differences found
This page took 0.027254 seconds and 4 git commands to generate.