lib: bt_plugin_find*(): return status code; add "fail on load error" param
[babeltrace.git] / src / cli / babeltrace2.c
index db2ed837ca893c83ae5ab87ba5f9ee3d5f054dbd..c89fabce97ad9e3dd5e43f979517c1fad8d38bd8 100644 (file)
  * modules.
  */
 static const char* log_level_env_var_names[] = {
-       "BABELTRACE_PLUGIN_CTF_BFCR_LOG_LEVEL",
        "BABELTRACE_PLUGIN_CTF_METADATA_LOG_LEVEL",
-       "BABELTRACE_PLUGIN_CTF_MSG_ITER_LOG_LEVEL",
-       "BABELTRACE_PLUGIN_CTF_UTILS_LOG_LEVEL",
        "BABELTRACE_PYTHON_BT2_LOG_LEVEL",
-       "BABELTRACE_SINK_CTF_FS_LOG_LEVEL",
-       "BABELTRACE_SINK_TEXT_DETAILS_LOG_LEVEL",
-       "BABELTRACE_SRC_CTF_FS_LOG_LEVEL",
-       "BABELTRACE_SRC_CTF_LTTNG_LIVE_LOG_LEVEL",
        NULL,
 };
 
@@ -804,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(
@@ -822,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);
        }
@@ -841,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:
@@ -1816,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\", "
@@ -2381,7 +2370,7 @@ int cmd_run_ctx_create_components_from_config_components(
                        goto error;
                }
 
-               BT_ASSERT(cfg_comp->log_level >= BT_LOG_VERBOSE);
+               BT_ASSERT(cfg_comp->log_level >= BT_LOG_TRACE);
 
                switch (cfg_comp->type) {
                case BT_COMPONENT_CLASS_TYPE_SOURCE:
@@ -2581,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:
@@ -2653,7 +2640,7 @@ int cmd_run(struct bt_config *cfg)
                printf("%s", bt_common_color_reset());
                fflush(stdout);
                fprintf(stderr, "%s", bt_common_color_reset());
-               BT_LOGV("bt_graph_run() returned: status=%s",
+               BT_LOGT("bt_graph_run() returned: status=%s",
                        bt_graph_status_str(graph_status));
 
                switch (graph_status) {
@@ -2669,7 +2656,7 @@ int cmd_run(struct bt_config *cfg)
                        }
 
                        if (cfg->cmd_data.run.retry_duration_us > 0) {
-                               BT_LOGV("Got BT_GRAPH_STATUS_AGAIN: sleeping: "
+                               BT_LOGT("Got BT_GRAPH_STATUS_AGAIN: sleeping: "
                                        "time-us=%" PRIu64,
                                        cfg->cmd_data.run.retry_duration_us);
 
@@ -2746,7 +2733,7 @@ void set_auto_log_levels(struct bt_config *cfg)
         */
        if (getenv("BABELTRACE_DEBUG") &&
                        strcmp(getenv("BABELTRACE_DEBUG"), "1") == 0) {
-               cfg->log_level = BT_LOG_VERBOSE;
+               cfg->log_level = BT_LOG_TRACE;
        } else if (getenv("BABELTRACE_VERBOSE") &&
                        strcmp(getenv("BABELTRACE_VERBOSE"), "1") == 0) {
                cfg->log_level = BT_LOG_INFO;
@@ -2758,15 +2745,15 @@ void set_auto_log_levels(struct bt_config *cfg)
         * --verbose. So:
         *
         *     --verbose: INFO log level
-        *     --debug:   VERBOSE log level (includes DEBUG, which is
-        *                is less verbose than VERBOSE in the internal
+        *     --debug:   TRACE log level (includes DEBUG, which is
+        *                is less verbose than TRACE in the internal
         *                logging framework)
         */
-       if (!getenv("BABELTRACE_LOGGING_GLOBAL_LEVEL")) {
+       if (!getenv("LIBBABELTRACE2_INIT_LOG_LEVEL")) {
                if (cfg->verbose) {
                        bt_logging_set_global_level(BT_LOG_INFO);
                } else if (cfg->debug) {
-                       bt_logging_set_global_level(BT_LOG_VERBOSE);
+                       bt_logging_set_global_level(BT_LOG_TRACE);
                } else {
                        /*
                         * Set library's default log level if not
@@ -2780,7 +2767,7 @@ void set_auto_log_levels(struct bt_config *cfg)
                if (cfg->verbose) {
                        bt_cli_log_level = BT_LOG_INFO;
                } else if (cfg->debug) {
-                       bt_cli_log_level = BT_LOG_VERBOSE;
+                       bt_cli_log_level = BT_LOG_TRACE;
                } else {
                        /*
                         * Set CLI's default log level if not explicitly
@@ -2795,9 +2782,9 @@ void set_auto_log_levels(struct bt_config *cfg)
        while (*env_var_name) {
                if (!getenv(*env_var_name)) {
                        if (cfg->verbose) {
-                               g_setenv(*env_var_name, "I", 1);
+                               g_setenv(*env_var_name, "INFO", 1);
                        } else if (cfg->debug) {
-                               g_setenv(*env_var_name, "V", 1);
+                               g_setenv(*env_var_name, "TRACE", 1);
                        } else {
                                char val[2] = { 0 };
 
This page took 0.028295 seconds and 4 git commands to generate.