summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Rajnoha <prajnoha@redhat.com>2016-08-08 15:45:46 +0200
committerPeter Rajnoha <prajnoha@redhat.com>2016-08-09 18:49:11 +0200
commit5ac008116be94797f7f9f39d61cb1bd96c60669c (patch)
tree6adb76dacc1ba55ffec15d774674fda39e850e80
parent29f7dc292295bc6cad92e888691cb949d83c0413 (diff)
downloadlvm2-5ac008116be94797f7f9f39d61cb1bd96c60669c.tar.gz
report: add report_reset_cmdlog_seqnum and call it for each new cmd executed in lvm shell
-rw-r--r--lib/report/report.c12
-rw-r--r--lib/report/report.h1
-rw-r--r--tools/lvm.c1
3 files changed, 11 insertions, 3 deletions
diff --git a/lib/report/report.c b/lib/report/report.c
index fab6379cd..ea36795e9 100644
--- a/lib/report/report.c
+++ b/lib/report/report.c
@@ -38,6 +38,9 @@ struct lvm_report_object {
struct label *label;
};
+static uint32_t log_seqnum = 1;
+
+
/*
* Enum for field_num index to use in per-field reserved value definition.
* Each field is represented by enum value with name "field_<id>" where <id>
@@ -3867,9 +3870,7 @@ int report_cmdlog(void *handle, const char *type, const char *context,
const char *object_group_id, const char *msg,
int current_errno, int ret_code)
{
- static uint32_t seq_num = 1;
-
- struct cmd_log_item log_item = {seq_num++, type, context, object_type_name,
+ struct cmd_log_item log_item = {log_seqnum++, type, context, object_type_name,
object_name ? : "", object_id ? : "",
object_group ? : "", object_group_id ? : "",
msg ? : "", current_errno, ret_code};
@@ -3880,6 +3881,11 @@ int report_cmdlog(void *handle, const char *type, const char *context,
return 1;
}
+void report_reset_cmdlog_seqnum(void)
+{
+ log_seqnum = 1;
+}
+
int report_current_object_cmdlog(const char *type, const char *msg, int32_t ret_code)
{
log_report_t log_state = log_get_report_state();
diff --git a/lib/report/report.h b/lib/report/report.h
index cf4145e6b..c787f56ce 100644
--- a/lib/report/report.h
+++ b/lib/report/report.h
@@ -111,6 +111,7 @@ int report_cmdlog(void *handle, const char *type, const char *context,
const char *object_id, const char *object_group,
const char *object_group_id, const char *msg,
int current_errno, int ret_code);
+void report_reset_cmdlog_seqnum(void);
#define REPORT_OBJECT_CMDLOG_NAME "status"
#define REPORT_OBJECT_CMDLOG_SUCCESS "success"
#define REPORT_OBJECT_CMDLOG_FAILURE "failure"
diff --git a/tools/lvm.c b/tools/lvm.c
index 628a29dda..b3af0206b 100644
--- a/tools/lvm.c
+++ b/tools/lvm.c
@@ -229,6 +229,7 @@ int lvm_shell(struct cmd_context *cmd, struct cmdline_context *cmdline)
log_set_report_object_type(LOG_REPORT_OBJECT_TYPE_CMD);
while (1) {
+ report_reset_cmdlog_seqnum();
if (cmd->cmd_report.log_rh) {
/*
* If previous command was lastlog, reset log report selection to