X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fbin%2Flttng-sessiond%2Frotate.cpp;h=cc857544390ea24674b8da75cf035fc59a0fd430;hb=HEAD;hp=cdf95f353dbbfa2cb0ba276cdba6292d26dc92ae;hpb=7966af5763c4aaca39df9bbfa9277ff15715c720;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/rotate.cpp b/src/bin/lttng-sessiond/rotate.cpp deleted file mode 100644 index cdf95f353..000000000 --- a/src/bin/lttng-sessiond/rotate.cpp +++ /dev/null @@ -1,148 +0,0 @@ -/* - * Copyright (C) 2017 Julien Desfossez - * Copyright (C) 2018 Jérémie Galarneau - * - * SPDX-License-Identifier: GPL-2.0-only - * - */ - -#define _LGPL_SOURCE -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "session.h" -#include "rotate.h" -#include "rotation-thread.h" -#include "lttng-sessiond.h" -#include "health-sessiond.h" -#include "cmd.h" -#include "utils.h" -#include "notification-thread-commands.h" - -#include -#include -#include - -int subscribe_session_consumed_size_rotation(struct ltt_session *session, uint64_t size, - struct notification_thread_handle *notification_thread_handle) -{ - int ret; - enum lttng_condition_status condition_status; - enum lttng_notification_channel_status nc_status; - struct lttng_action *action; - const struct lttng_credentials session_creds = { - .uid = LTTNG_OPTIONAL_INIT_VALUE(session->uid), - .gid = LTTNG_OPTIONAL_INIT_VALUE(session->gid), - }; - - session->rotate_condition = lttng_condition_session_consumed_size_create(); - if (!session->rotate_condition) { - ERR("Failed to create session consumed size condition object"); - ret = -1; - goto end; - } - - condition_status = lttng_condition_session_consumed_size_set_threshold( - session->rotate_condition, size); - if (condition_status != LTTNG_CONDITION_STATUS_OK) { - ERR("Could not set session consumed size condition threshold (size = %" PRIu64 ")", - size); - ret = -1; - goto end; - } - - condition_status = - lttng_condition_session_consumed_size_set_session_name( - session->rotate_condition, session->name); - if (condition_status != LTTNG_CONDITION_STATUS_OK) { - ERR("Could not set session consumed size condition session name (name = %s)", - session->name); - ret = -1; - goto end; - } - - action = lttng_action_notify_create(); - if (!action) { - ERR("Could not create notify action"); - ret = -1; - goto end; - } - - session->rotate_trigger = lttng_trigger_create(session->rotate_condition, - action); - if (!session->rotate_trigger) { - ERR("Could not create size-based rotation trigger"); - ret = -1; - goto end; - } - - /* Ensure this trigger is not visible to external users. */ - lttng_trigger_set_hidden(session->rotate_trigger); - lttng_trigger_set_credentials( - session->rotate_trigger, &session_creds); - - nc_status = lttng_notification_channel_subscribe( - rotate_notification_channel, session->rotate_condition); - if (nc_status != LTTNG_NOTIFICATION_CHANNEL_STATUS_OK) { - ERR("Could not subscribe to session consumed size notification"); - ret = -1; - goto end; - } - - ret = notification_thread_command_register_trigger( - notification_thread_handle, session->rotate_trigger, - true); - if (ret < 0 && ret != -LTTNG_ERR_TRIGGER_EXISTS) { - ERR("Register trigger, %s", lttng_strerror(ret)); - ret = -1; - goto end; - } - - ret = 0; - -end: - return ret; -} - -int unsubscribe_session_consumed_size_rotation(struct ltt_session *session, - struct notification_thread_handle *notification_thread_handle) -{ - int ret = 0; - enum lttng_notification_channel_status status; - - status = lttng_notification_channel_unsubscribe( - rotate_notification_channel, - session->rotate_condition); - if (status != LTTNG_NOTIFICATION_CHANNEL_STATUS_OK) { - ERR("Session unsubscribe error: %d", (int) status); - ret = -1; - goto end; - } - - ret = notification_thread_command_unregister_trigger( - notification_thread_handle, session->rotate_trigger); - if (ret != LTTNG_OK) { - ERR("Session unregister trigger error: %d", ret); - goto end; - } - - ret = 0; -end: - return ret; -}