lib: bt_plugin_find*(): return status code; add "fail on load error" param
[babeltrace.git] / src / cli / babeltrace2.c
index 396673d0d63ed996c7b9b601ad8d3c96c9511fa1..c89fabce97ad9e3dd5e43f979517c1fad8d38bd8 100644 (file)
@@ -797,7 +797,8 @@ int load_dynamic_plugins(const bt_value *plugin_paths)
        for (i = 0; i < nr_paths; i++) {
                const bt_value *plugin_path_value = NULL;
                const char *plugin_path;
-               const bt_plugin_set *plugin_set;
+               const bt_plugin_set *plugin_set = NULL;
+               bt_plugin_status status;
 
                plugin_path_value =
                        bt_value_array_borrow_element_by_index_const(
@@ -815,13 +816,20 @@ int load_dynamic_plugins(const bt_value *plugin_paths)
                        continue;
                }
 
-               plugin_set = bt_plugin_find_all_from_dir(plugin_path, false);
-               if (!plugin_set) {
-                       BT_LOGI("Unable to load dynamic plugins from directory: "
+               status = bt_plugin_find_all_from_dir(plugin_path, BT_FALSE,
+                       BT_FALSE, &plugin_set);
+               if (status < 0) {
+                       BT_LOGE("Unable to load dynamic plugins from directory: "
                                "path=\"%s\"", plugin_path);
                        continue;
+               } else if (status == BT_PLUGIN_STATUS_NOT_FOUND) {
+                       BT_LOGI("No plugins found in directory: path=\"%s\"",
+                               plugin_path);
+                       continue;
                }
 
+               BT_ASSERT(status == BT_PLUGIN_STATUS_OK);
+               BT_ASSERT(plugin_set);
                add_to_loaded_plugins(plugin_set);
                bt_plugin_set_put_ref(plugin_set);
        }
@@ -834,15 +842,21 @@ int load_static_plugins(void)
 {
        int ret = 0;
        const bt_plugin_set *plugin_set;
+       bt_plugin_status status;
 
        BT_LOGI("Loading static plugins.");
-       plugin_set = bt_plugin_find_all_from_static();
-       if (!plugin_set) {
+       status = bt_plugin_find_all_from_static(BT_FALSE, &plugin_set);
+       if (status < 0) {
                BT_LOGE("Unable to load static plugins.");
                ret = -1;
                goto end;
+       } else if (status == BT_PLUGIN_STATUS_NOT_FOUND) {
+               BT_LOGI("No static plugins found.");
+               goto end;
        }
 
+       BT_ASSERT(status == BT_PLUGIN_STATUS_OK);
+       BT_ASSERT(plugin_set);
        add_to_loaded_plugins(plugin_set);
        bt_plugin_set_put_ref(plugin_set);
 end:
@@ -1809,24 +1823,6 @@ int cmd_run_ctx_connect_upstream_port_to_downstream_component(
                        BT_LOGI_STR("Graph was canceled by user.");
                        status = BT_GRAPH_STATUS_OK;
                        break;
-               case BT_GRAPH_STATUS_COMPONENT_REFUSES_PORT_CONNECTION:
-                       BT_LOGE("A component refused a connection to one of its ports: "
-                               "upstream-comp-addr=%p, upstream-comp-name=\"%s\", "
-                               "upstream-port-addr=%p, upstream-port-name=\"%s\", "
-                               "downstream-comp-addr=%p, downstream-comp-name=\"%s\", "
-                               "downstream-port-addr=%p, downstream-port-name=\"%s\", "
-                               "conn-arg=\"%s\"",
-                               upstream_comp, bt_component_get_name(upstream_comp),
-                               upstream_port, bt_port_get_name(upstream_port),
-                               downstream_comp, cfg_conn->downstream_comp_name->str,
-                               downstream_port, downstream_port_name,
-                               cfg_conn->arg->str);
-                       fprintf(stderr,
-                               "A component refused a connection to one of its ports (`%s` to `%s`): %s\n",
-                               bt_port_get_name(upstream_port),
-                               downstream_port_name,
-                               cfg_conn->arg->str);
-                       break;
                default:
                        BT_LOGE("Cannot create connection: graph refuses to connect ports: "
                                "upstream-comp-addr=%p, upstream-comp-name=\"%s\", "
@@ -2574,8 +2570,6 @@ const char *bt_graph_status_str(bt_graph_status status)
                return "BT_GRAPH_STATUS_END";
        case BT_GRAPH_STATUS_AGAIN:
                return "BT_GRAPH_STATUS_AGAIN";
-       case BT_GRAPH_STATUS_COMPONENT_REFUSES_PORT_CONNECTION:
-               return "BT_GRAPH_STATUS_COMPONENT_REFUSES_PORT_CONNECTION";
        case BT_GRAPH_STATUS_CANCELED:
                return "BT_GRAPH_STATUS_CANCELED";
        case BT_GRAPH_STATUS_ERROR:
This page took 0.025828 seconds and 4 git commands to generate.