summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLorenz Kästle <12514511+RincewindsHat@users.noreply.github.com>2025-03-30 22:34:42 +0200
committerLorenz Kästle <12514511+RincewindsHat@users.noreply.github.com>2025-03-30 22:34:42 +0200
commitf413ac38e30e606beda4ef7f6bf1db40b49682d3 (patch)
tree13fba7932b2cf22f7da5f5a6b48b02e35a9f4013
parentf84f614f219b395810e4ca35d5eb5f5a8d2f1d5b (diff)
downloadmonitoring-plugins-f413ac38e30e606beda4ef7f6bf1db40b49682d3.tar.gz
Add selectable level of detail for output
-rw-r--r--lib/output.c8
-rw-r--r--lib/output.h16
2 files changed, 20 insertions, 4 deletions
diff --git a/lib/output.c b/lib/output.c
index 01e50770..c408a2f5 100644
--- a/lib/output.c
+++ b/lib/output.c
@@ -253,7 +253,9 @@ char *mp_fmt_output(mp_check check) {
253 mp_subcheck_list *subchecks = check.subchecks; 253 mp_subcheck_list *subchecks = check.subchecks;
254 254
255 while (subchecks != NULL) { 255 while (subchecks != NULL) {
256 asprintf(&result, "%s\n%s", result, fmt_subcheck_output(MP_FORMAT_MULTI_LINE, subchecks->subcheck, 1)); 256 if (level_of_detail == MP_DETAIL_ALL || mp_compute_subcheck_state(subchecks->subcheck) != STATE_OK) {
257 asprintf(&result, "%s\n%s", result, fmt_subcheck_output(MP_FORMAT_MULTI_LINE, subchecks->subcheck, 1));
258 }
257 subchecks = subchecks->next; 259 subchecks = subchecks->next;
258 } 260 }
259 261
@@ -545,3 +547,7 @@ parsed_output_format mp_parse_output_format(char *format_string) {
545void mp_set_format(mp_output_format format) { output_format = format; } 547void mp_set_format(mp_output_format format) { output_format = format; }
546 548
547mp_output_format mp_get_format(void) { return output_format; } 549mp_output_format mp_get_format(void) { return output_format; }
550
551void mp_set_level_of_detail(mp_output_detail_level level) { level_of_detail = level; }
552
553mp_output_detail_level mp_get_level_of_detail(void) { return level_of_detail; }
diff --git a/lib/output.h b/lib/output.h
index 2bdfa074..3bd91f90 100644
--- a/lib/output.h
+++ b/lib/output.h
@@ -38,8 +38,18 @@ typedef enum output_format {
38/* 38/*
39 * Format related functions 39 * Format related functions
40 */ 40 */
41 void mp_set_format(mp_output_format format); 41void mp_set_format(mp_output_format format);
42 mp_output_format mp_get_format(void); 42mp_output_format mp_get_format(void);
43
44// Output detail level
45
46typedef enum output_detail_level {
47 MP_DETAIL_ALL,
48 MP_DETAIL_NON_OK_ONLY,
49} mp_output_detail_level;
50
51void mp_set_level_of_detail(mp_output_detail_level level);
52mp_output_detail_level mp_get_level_of_detail(void);
43 53
44/* 54/*
45 * The main state object of a plugin. Exists only ONCE per plugin. 55 * The main state object of a plugin. Exists only ONCE per plugin.
@@ -48,7 +58,7 @@ typedef enum output_format {
48 * in the first layer of subchecks 58 * in the first layer of subchecks
49 */ 59 */
50typedef struct { 60typedef struct {
51 char *summary; // Overall summary, if not set a summary will be automatically generated 61 char *summary; // Overall summary, if not set a summary will be automatically generated
52 mp_subcheck_list *subchecks; 62 mp_subcheck_list *subchecks;
53} mp_check; 63} mp_check;
54 64