From: Jérémie Galarneau Date: Tue, 14 Jun 2016 16:36:07 +0000 (-0400) Subject: Add name omission and output omission on save to lttng-ctl X-Git-Tag: v2.9.0-rc1~126 X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=commitdiff_plain;h=30f9c3276ad06d4c2e30444ad1ce45e57f9ad708 Add name omission and output omission on save to lttng-ctl Signed-off-by: Jérémie Galarneau --- diff --git a/include/lttng/save-internal.h b/include/lttng/save-internal.h index aac213e03..c5feb4af4 100644 --- a/include/lttng/save-internal.h +++ b/include/lttng/save-internal.h @@ -34,6 +34,10 @@ struct lttng_save_session_attr { char configuration_url[PATH_MAX]; /* Overwrite the session configuration file if it exists. */ uint8_t overwrite; + /* Omit the sessions' name(s). */ + uint8_t omit_name; + /* Omit the sessions' output(s). */ + uint8_t omit_output; } LTTNG_PACKED; #endif /* LTTNG_SAVE_INTERNAL_ABI_H */ diff --git a/include/lttng/save.h b/include/lttng/save.h index 1fbeb86f6..5ef22f6c9 100644 --- a/include/lttng/save.h +++ b/include/lttng/save.h @@ -59,6 +59,18 @@ const char *lttng_save_session_attr_get_output_url( */ int lttng_save_session_attr_get_overwrite( struct lttng_save_session_attr *attr); +/* + * Return the omit name configuration attribute. This attribute indicates + * whether or not the saved sessions' names should be omitted. + */ +int lttng_save_session_attr_get_omit_name( + struct lttng_save_session_attr *attr); +/* + * Return the omit output configuration attribute. This attribute indicates + * whether or not the saved sessions' output configuration should be omitted. + */ +int lttng_save_session_attr_get_omit_output( + struct lttng_save_session_attr *attr); /* * Save session attribute setter family functions. @@ -86,6 +98,18 @@ int lttng_save_session_attr_set_output_url( */ int lttng_save_session_attr_set_overwrite( struct lttng_save_session_attr *attr, int overwrite); +/* + * Set the omit name attribute. If set to true, the sessions' names are omitted + * from the resulting session configuration file. + */ +int lttng_save_session_attr_set_omit_name( + struct lttng_save_session_attr *attr, int omit_name); +/* + * Set the omit output attribute. If set to true, the sessions' output + * configurations are omitted from the resulting session configuration file. + */ +int lttng_save_session_attr_set_omit_output( + struct lttng_save_session_attr *attr, int omit_output); /* * Save session configuration(s). diff --git a/src/lib/lttng-ctl/save.c b/src/lib/lttng-ctl/save.c index f8b9043b6..555006d0a 100644 --- a/src/lib/lttng-ctl/save.c +++ b/src/lib/lttng-ctl/save.c @@ -68,6 +68,18 @@ int lttng_save_session_attr_get_overwrite( return attr ? attr->overwrite : -LTTNG_ERR_INVALID; } +int lttng_save_session_attr_get_omit_name( + struct lttng_save_session_attr *attr) +{ + return attr ? attr->omit_name : -LTTNG_ERR_INVALID; +} + +int lttng_save_session_attr_get_omit_output( + struct lttng_save_session_attr *attr) +{ + return attr ? attr->omit_output : -LTTNG_ERR_INVALID; +} + int lttng_save_session_attr_set_session_name( struct lttng_save_session_attr *attr, const char *session_name) { @@ -151,6 +163,36 @@ end: return ret; } +int lttng_save_session_attr_set_omit_name( + struct lttng_save_session_attr *attr, int omit_name) +{ + int ret = 0; + + if (!attr) { + ret = -LTTNG_ERR_INVALID; + goto end; + } + + attr->omit_name = !!omit_name; +end: + return ret; +} + +int lttng_save_session_attr_set_omit_output( + struct lttng_save_session_attr *attr, int omit_output) +{ + int ret = 0; + + if (!attr) { + ret = -LTTNG_ERR_INVALID; + goto end; + } + + attr->omit_output = !!omit_output; +end: + return ret; +} + /* * The lttng-ctl API does not expose all the information needed to save the * session configurations. Thus, we must send a save command to the session