Queries against component classes that don't implement the query method
currently return a special UNSUPPORTED status. There is however no need
for a different status than the one a query method returns when it
doesn't know about the object, INVALID_OBJECT.
Make the default implemention of "query" return INVALID_OBJECT, and
remove any trace of UNSUPPORTED, including in the Python bindings.
Change-Id: I43f59ef749f3803a832a1ad14e640d03424b3420
Signed-off-by: Simon Marchi <simon.marchi@efficios.com>
Reviewed-on: https://review.lttng.org/c/babeltrace/+/1755
Reviewed-by: Philippe Proulx <eeppeliteloop@gmail.com>
Tested-by: jenkins <jenkins@lttng.org>
#undef __BT_FUNC_STATUS_END
#undef __BT_FUNC_STATUS_NOT_FOUND
#undef __BT_FUNC_STATUS_AGAIN
#undef __BT_FUNC_STATUS_END
#undef __BT_FUNC_STATUS_NOT_FOUND
#undef __BT_FUNC_STATUS_AGAIN
-#undef __BT_FUNC_STATUS_UNSUPPORTED
#undef __BT_FUNC_STATUS_CANCELED
#undef __BT_IN_BABELTRACE_H
#undef __BT_UPCAST
#undef __BT_FUNC_STATUS_CANCELED
#undef __BT_IN_BABELTRACE_H
#undef __BT_UPCAST
# define __BT_FUNC_STATUS_AGAIN 11
#endif
# define __BT_FUNC_STATUS_AGAIN 11
#endif
-/* Unsupported operation */
-#ifndef __BT_FUNC_STATUS_UNSUPPORTED
-# define __BT_FUNC_STATUS_UNSUPPORTED 95
-#endif
-
/* Object is canceled */
#ifndef __BT_FUNC_STATUS_CANCELED
# define __BT_FUNC_STATUS_CANCELED 125
/* Object is canceled */
#ifndef __BT_FUNC_STATUS_CANCELED
# define __BT_FUNC_STATUS_CANCELED 125
typedef enum bt_query_executor_query_status {
BT_QUERY_EXECUTOR_QUERY_STATUS_OK = __BT_FUNC_STATUS_OK,
BT_QUERY_EXECUTOR_QUERY_STATUS_AGAIN = __BT_FUNC_STATUS_AGAIN,
typedef enum bt_query_executor_query_status {
BT_QUERY_EXECUTOR_QUERY_STATUS_OK = __BT_FUNC_STATUS_OK,
BT_QUERY_EXECUTOR_QUERY_STATUS_AGAIN = __BT_FUNC_STATUS_AGAIN,
- BT_QUERY_EXECUTOR_QUERY_STATUS_UNSUPPORTED = __BT_FUNC_STATUS_UNSUPPORTED,
BT_QUERY_EXECUTOR_QUERY_STATUS_CANCELED = __BT_FUNC_STATUS_CANCELED,
BT_QUERY_EXECUTOR_QUERY_STATUS_ERROR = __BT_FUNC_STATUS_ERROR,
BT_QUERY_EXECUTOR_QUERY_STATUS_MEMORY_ERROR = __BT_FUNC_STATUS_MEMORY_ERROR,
BT_QUERY_EXECUTOR_QUERY_STATUS_CANCELED = __BT_FUNC_STATUS_CANCELED,
BT_QUERY_EXECUTOR_QUERY_STATUS_ERROR = __BT_FUNC_STATUS_ERROR,
BT_QUERY_EXECUTOR_QUERY_STATUS_MEMORY_ERROR = __BT_FUNC_STATUS_MEMORY_ERROR,
-class Unsupported(Exception):
- pass
-
-
class TryAgain(Exception):
pass
class TryAgain(Exception):
pass
static PyObject *py_mod_bt2_exc_msg_iter_canceled_type = NULL;
static PyObject *py_mod_bt2_exc_invalid_object_type = NULL;
static PyObject *py_mod_bt2_exc_invalid_params_type = NULL;
static PyObject *py_mod_bt2_exc_msg_iter_canceled_type = NULL;
static PyObject *py_mod_bt2_exc_invalid_object_type = NULL;
static PyObject *py_mod_bt2_exc_invalid_params_type = NULL;
-static PyObject *py_mod_bt2_exc_unsupported_type = NULL;
static
void bt_bt2_cc_init_from_bt2(void)
static
void bt_bt2_cc_init_from_bt2(void)
py_mod_bt2_exc_invalid_params_type =
PyObject_GetAttrString(py_mod_bt2, "InvalidParams");
BT_ASSERT(py_mod_bt2_exc_invalid_params_type);
py_mod_bt2_exc_invalid_params_type =
PyObject_GetAttrString(py_mod_bt2, "InvalidParams");
BT_ASSERT(py_mod_bt2_exc_invalid_params_type);
- py_mod_bt2_exc_unsupported_type =
- PyObject_GetAttrString(py_mod_bt2, "Unsupported");
- BT_ASSERT(py_mod_bt2_exc_unsupported_type);
} else if (PyErr_GivenExceptionMatches(exc,
py_mod_bt2_exc_invalid_params_type)) {
status = __BT_FUNC_STATUS_INVALID_PARAMS;
} else if (PyErr_GivenExceptionMatches(exc,
py_mod_bt2_exc_invalid_params_type)) {
status = __BT_FUNC_STATUS_INVALID_PARAMS;
- } else if (PyErr_GivenExceptionMatches(exc,
- py_mod_bt2_exc_unsupported_type)) {
- status = __BT_FUNC_STATUS_UNSUPPORTED;
} else {
/* Unknown exception: convert to general error */
log_exception_and_maybe_append_error(BT_LOG_WARNING, true,
} else {
/* Unknown exception: convert to general error */
log_exception_and_maybe_append_error(BT_LOG_WARNING, true,
raise bt2.InvalidParams
else:
raise bt2.InvalidParams(msg)
raise bt2.InvalidParams
else:
raise bt2.InvalidParams(msg)
- elif status == native_bt.__BT_FUNC_STATUS_UNSUPPORTED:
- if msg is None:
- raise bt2.Unsupported
- else:
- raise bt2.Unsupported(msg)
case BT_QUERY_EXECUTOR_QUERY_STATUS_INVALID_PARAMS:
*fail_reason = "invalid query parameters";
goto error;
case BT_QUERY_EXECUTOR_QUERY_STATUS_INVALID_PARAMS:
*fail_reason = "invalid query parameters";
goto error;
- case BT_QUERY_EXECUTOR_QUERY_STATUS_UNSUPPORTED:
- *fail_reason = "unsupported action";
- goto error;
case BT_QUERY_EXECUTOR_QUERY_STATUS_MEMORY_ERROR:
*fail_reason = "not enough memory";
goto error;
case BT_QUERY_EXECUTOR_QUERY_STATUS_MEMORY_ERROR:
*fail_reason = "not enough memory";
goto error;
return "NOT_FOUND";
case __BT_FUNC_STATUS_AGAIN:
return "AGAIN";
return "NOT_FOUND";
case __BT_FUNC_STATUS_AGAIN:
return "AGAIN";
- case __BT_FUNC_STATUS_UNSUPPORTED:
- return "UNSUPPORTED";
case __BT_FUNC_STATUS_CANCELED:
return "CANCELED";
default:
case __BT_FUNC_STATUS_CANCELED:
return "CANCELED";
default:
#define BT_FUNC_STATUS_END __BT_FUNC_STATUS_END
#define BT_FUNC_STATUS_NOT_FOUND __BT_FUNC_STATUS_NOT_FOUND
#define BT_FUNC_STATUS_AGAIN __BT_FUNC_STATUS_AGAIN
#define BT_FUNC_STATUS_END __BT_FUNC_STATUS_END
#define BT_FUNC_STATUS_NOT_FOUND __BT_FUNC_STATUS_NOT_FOUND
#define BT_FUNC_STATUS_AGAIN __BT_FUNC_STATUS_AGAIN
-#define BT_FUNC_STATUS_UNSUPPORTED __BT_FUNC_STATUS_UNSUPPORTED
#define BT_FUNC_STATUS_CANCELED __BT_FUNC_STATUS_CANCELED
#endif /* BABELTRACE_FUNC_STATUS_INTERNAL_H */
#define BT_FUNC_STATUS_CANCELED __BT_FUNC_STATUS_CANCELED
#endif /* BABELTRACE_FUNC_STATUS_INTERNAL_H */
/* Not an error: nothing to query */
BT_LIB_LOGD("Component class has no registered query method: "
"%!+C", comp_cls);
/* Not an error: nothing to query */
BT_LIB_LOGD("Component class has no registered query method: "
"%!+C", comp_cls);
- status = BT_FUNC_STATUS_UNSUPPORTED;
+ status = BT_FUNC_STATUS_INVALID_OBJECT;