Module: check_mk
Branch: master
Commit: 5ccc6124246b1230d532e04962781f9087d499d0
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=5ccc6124246b12…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Fri Jan 20 16:43:35 2012 +0100
Allow ColumnHeaders on after Stats: queries
---
ChangeLog | 6 ++++++
livestatus/src/Query.cc | 30 ++++++++++++++++++++++++++++--
2 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index bae1265..b7bd8d8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -76,6 +76,12 @@
* improve doc/treasures/check_bi_local.py: local check that creates
Nagios services out of BI aggregates
+ Livestatus:
+ * ColumnHeaders: on is now able to switch column header on even if Stats:
+ headers are used. Artifical header names stats_1, stats_2, etc. are
+ begin used. Important: Use "ColumnHeaders: on" after Columns: and
+ after Stats:.
+
1.1.13i2:
Core, Setup, etc.:
* cmk -I: accept host tags and cluster names
diff --git a/livestatus/src/Query.cc b/livestatus/src/Query.cc
index 31a9640..b004a13 100644
--- a/livestatus/src/Query.cc
+++ b/livestatus/src/Query.cc
@@ -427,6 +427,10 @@ void Query::parseStatsLine(char *line)
else
stats_col = new StatsColumn(column, 0, operation);
_stats_columns.push_back(stats_col);
+
+ /* Default to old behaviour: do not output column headers if we
+ do Stats queries */
+ _show_column_headers = false;
}
@@ -717,18 +721,40 @@ void Query::start()
_stats_aggregators[i] = _stats_columns[i]->createAggregator();
}
}
- else if (_show_column_headers)
+
+ if (_show_column_headers)
{
outputDatasetBegin();
+ bool first = true;
+
for (_columns_t::iterator it = _columns.begin();
it != _columns.end();
++it)
{
- if (it != _columns.begin())
+ if (first)
+ first = false;
+ else
outputFieldSeparator();
Column *column = *it;
outputString(column->name());
}
+
+ // Output dummy headers for stats columns
+ int col = 1;
+ char colheader[32];
+ for (_stats_columns_t::iterator it = _stats_columns.begin();
+ it != _stats_columns.end();
+ ++it)
+ {
+ if (first)
+ first = false;
+ else
+ outputFieldSeparator();
+ snprintf(colheader, 32, "stats_%d", col);
+ outputString(colheader);
+ col ++;
+ }
+
outputDatasetEnd();
_need_ds_separator = true;
}