From 86f808dde0595769d045eb82ef414174953ab67e Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Fri, 20 Apr 2018 19:17:04 -0400 Subject: [PATCH] Clean up monitoring format/naming * change show "serial" to "config_files" to reflect its function * suppress display of empty strings for unset / irrelevant values when returning routes / communities --- common/tr_comm_encoders.c | 26 +++++++++----------------- include/mon_internal.h | 2 +- mon/mon_common.c | 6 +++--- mon/tests/test_mon_req_decode.c | 2 +- mon/tests/test_mon_req_encode.c | 2 +- mon/tests/test_mon_resp_encode.c | 4 ++-- tr/tr_main.c | 2 +- trp/trp_route_encoders.c | 26 ++++++++++++++++---------- 8 files changed, 34 insertions(+), 36 deletions(-) diff --git a/common/tr_comm_encoders.c b/common/tr_comm_encoders.c index bd3278e..2655fe5 100644 --- a/common/tr_comm_encoders.c +++ b/common/tr_comm_encoders.c @@ -38,17 +38,6 @@ #include #include -/** - * Convert TR_NAME n to a JSON string, returning the empty string if n is null - */ -static json_t *safe_name_to_json_string(TR_NAME *n) -{ - if (n) - return tr_name_to_json_string(n); - else - return json_string(""); -} - static json_t *expiry_to_json_string(TR_COMM_MEMB *memb) { struct timespec ts_zero = {0, 0}; @@ -114,7 +103,7 @@ static json_t *tr_comm_memb_to_json(TR_COMM_MEMB *memb) OBJECT_SET_OR_FAIL(memb_json, "origin", json_string("file")); } else { OBJECT_SET_OR_FAIL(memb_json, "origin", - safe_name_to_json_string(tr_comm_memb_get_origin(memb))); + tr_name_to_json_string(tr_comm_memb_get_origin(memb))); OBJECT_SET_OR_FAIL(memb_json, "provenance", provenance_to_json(memb)); OBJECT_SET_OR_FAIL(memb_json, "expires", @@ -241,11 +230,14 @@ static json_t *tr_comm_to_json(TR_COMM_TABLE *ctable, TR_COMM *comm) } OBJECT_SET_OR_FAIL(comm_json, "name", tr_name_to_json_string(tr_comm_get_id(comm))); - OBJECT_SET_OR_FAIL(comm_json, "owner_realm", - safe_name_to_json_string(tr_comm_get_owner_realm(comm))); - OBJECT_SET_OR_FAIL(comm_json, "owner_contact", - safe_name_to_json_string(tr_comm_get_owner_contact(comm))); - + if (tr_comm_get_owner_realm(comm)) { + OBJECT_SET_OR_FAIL(comm_json, "owner_realm", + tr_name_to_json_string(tr_comm_get_owner_realm(comm))); + } + if (tr_comm_get_owner_contact(comm)) { + OBJECT_SET_OR_FAIL(comm_json, "owner_contact", + tr_name_to_json_string(tr_comm_get_owner_contact(comm))); + } OBJECT_SET_OR_FAIL(comm_json, "idp_realms", tr_comm_realms_to_json(ctable, tr_comm_get_id(comm), TR_ROLE_IDP)); OBJECT_SET_OR_FAIL(comm_json, "rp_realms", diff --git a/include/mon_internal.h b/include/mon_internal.h index ff2be72..29ea514 100644 --- a/include/mon_internal.h +++ b/include/mon_internal.h @@ -95,7 +95,7 @@ enum mon_opt_type { // System information OPT_TYPE_SHOW_VERSION, - OPT_TYPE_SHOW_SERIAL, + OPT_TYPE_SHOW_CONFIG_FILES, // System statistics OPT_TYPE_SHOW_UPTIME, diff --git a/mon/mon_common.c b/mon/mon_common.c index b03afda..a237b5d 100644 --- a/mon/mon_common.c +++ b/mon/mon_common.c @@ -87,8 +87,8 @@ const char *mon_opt_type_to_string(MON_OPT_TYPE opt_type) case OPT_TYPE_SHOW_VERSION: return "version"; - case OPT_TYPE_SHOW_SERIAL: - return "serial"; + case OPT_TYPE_SHOW_CONFIG_FILES: + return "config_files"; case OPT_TYPE_SHOW_UPTIME: return "uptime"; @@ -130,7 +130,7 @@ const char *mon_opt_type_to_string(MON_OPT_TYPE opt_type) MON_OPT_TYPE mon_opt_type_from_string(const char *s) { return_if_matches(s, OPT_TYPE_SHOW_VERSION); - return_if_matches(s, OPT_TYPE_SHOW_SERIAL); + return_if_matches(s, OPT_TYPE_SHOW_CONFIG_FILES); return_if_matches(s, OPT_TYPE_SHOW_UPTIME); return_if_matches(s, OPT_TYPE_SHOW_TID_REQ_COUNT); return_if_matches(s, OPT_TYPE_SHOW_TID_REQ_ERR_COUNT); diff --git a/mon/tests/test_mon_req_decode.c b/mon/tests/test_mon_req_decode.c index 5391857..19ad64d 100644 --- a/mon/tests/test_mon_req_decode.c +++ b/mon/tests/test_mon_req_decode.c @@ -52,7 +52,7 @@ static MON_REQ *show_options(const MON_OPT_TYPE *opts) static MON_REQ *show_all_options() { MON_OPT_TYPE opts[] = { - OPT_TYPE_SHOW_SERIAL, + OPT_TYPE_SHOW_CONFIG_FILES, OPT_TYPE_SHOW_VERSION, OPT_TYPE_SHOW_UPTIME, OPT_TYPE_SHOW_TID_REQ_COUNT, diff --git a/mon/tests/test_mon_req_encode.c b/mon/tests/test_mon_req_encode.c index 80811fd..d3ae49c 100644 --- a/mon/tests/test_mon_req_encode.c +++ b/mon/tests/test_mon_req_encode.c @@ -107,7 +107,7 @@ int main(void) free(expected); // Test show with many options - opts[0] = OPT_TYPE_SHOW_SERIAL; + opts[0] = OPT_TYPE_SHOW_CONFIG_FILES; opts[1] = OPT_TYPE_SHOW_VERSION; opts[2] = OPT_TYPE_SHOW_UPTIME; opts[3] = OPT_TYPE_SHOW_TID_REQ_COUNT; diff --git a/mon/tests/test_mon_resp_encode.c b/mon/tests/test_mon_resp_encode.c index 081ed2d..6945b76 100644 --- a/mon/tests/test_mon_resp_encode.c +++ b/mon/tests/test_mon_resp_encode.c @@ -64,10 +64,10 @@ static char *show_success() mon_opt_type_to_string(OPT_TYPE_SHOW_VERSION), json_string("1.2.3-4"))); assert(! json_object_set_new(payload, - mon_opt_type_to_string(OPT_TYPE_SHOW_SERIAL), + mon_opt_type_to_string(OPT_TYPE_SHOW_CONFIG_FILES), json_integer(1234567890))); assert(! json_object_set_new(payload, - mon_opt_type_to_string(OPT_TYPE_SHOW_SERIAL), + mon_opt_type_to_string(OPT_TYPE_SHOW_CONFIG_FILES), json_integer(86400))); assert(! json_object_set_new(payload, mon_opt_type_to_string(OPT_TYPE_SHOW_TID_REQ_PENDING), diff --git a/tr/tr_main.c b/tr/tr_main.c index 35c32e0..5f8215d 100644 --- a/tr/tr_main.c +++ b/tr/tr_main.c @@ -250,7 +250,7 @@ int main(int argc, char *argv[]) /* Register monitoring handlers */ mons_register_handler(tr->mons, MON_CMD_SHOW, OPT_TYPE_SHOW_VERSION, tr_handle_version, NULL); - mons_register_handler(tr->mons, MON_CMD_SHOW, OPT_TYPE_SHOW_SERIAL, tr_handle_show_cfg_serial, tr->cfg_mgr); + mons_register_handler(tr->mons, MON_CMD_SHOW, OPT_TYPE_SHOW_CONFIG_FILES, tr_handle_show_cfg_serial, tr->cfg_mgr); mons_register_handler(tr->mons, MON_CMD_SHOW, OPT_TYPE_SHOW_UPTIME, tr_handle_uptime, &start_time); mons_register_handler(tr->mons, MON_CMD_SHOW, OPT_TYPE_SHOW_RP_CLIENTS, tr_handle_show_rp_clients, tr->cfg_mgr); tr_tid_register_mons_handlers(tr->tids, tr->mons); diff --git a/trp/trp_route_encoders.c b/trp/trp_route_encoders.c index 1d30cbc..8e1809b 100644 --- a/trp/trp_route_encoders.c +++ b/trp/trp_route_encoders.c @@ -88,15 +88,13 @@ static json_t *expiry_to_json_string(TRP_ROUTE *route) char *s = NULL; json_t *jstr = NULL; - if (tr_cmp_timespec(trp_route_get_expiry(route), &ts_zero) == 0) { - s = strdup(""); - } else { + if (tr_cmp_timespec(trp_route_get_expiry(route), &ts_zero) > 0) { s = timespec_to_str(trp_route_get_expiry(route)); - } - if (s) { - jstr = json_string(s); - free(s); + if (s) { + jstr = json_string(s); + free(s); + } } return jstr; @@ -111,6 +109,12 @@ do { \ goto cleanup; \ } while (0) +#define OBJECT_SET_OR_SKIP(jobj, key, val) \ +do { \ + if (val) \ + json_object_set_new((jobj),(key),(val)); \ +} while (0) + json_t *trp_route_to_json(TRP_ROUTE *route) { json_t *route_json = NULL; @@ -122,13 +126,15 @@ json_t *trp_route_to_json(TRP_ROUTE *route) OBJECT_SET_OR_FAIL(route_json, "community", tr_name_to_json_string(trp_route_get_comm(route))); OBJECT_SET_OR_FAIL(route_json, "realm", tr_name_to_json_string(trp_route_get_realm(route))); - OBJECT_SET_OR_FAIL(route_json, "peer", tr_name_to_json_string(trp_route_get_peer(route))); + if (trp_route_get_peer(route)->len > 0) + OBJECT_SET_OR_FAIL(route_json, "peer", tr_name_to_json_string(trp_route_get_peer(route))); OBJECT_SET_OR_FAIL(route_json, "metric", json_integer(trp_route_get_metric(route))); OBJECT_SET_OR_FAIL(route_json, "trust_router", tr_name_to_json_string(trp_route_get_trust_router(route))); - OBJECT_SET_OR_FAIL(route_json, "next_hop", tr_name_to_json_string(trp_route_get_next_hop(route))); + if (trp_route_get_next_hop(route)->len > 0) + OBJECT_SET_OR_FAIL(route_json, "next_hop", tr_name_to_json_string(trp_route_get_next_hop(route))); OBJECT_SET_OR_FAIL(route_json, "selected", json_boolean(trp_route_is_selected(route))); OBJECT_SET_OR_FAIL(route_json, "local", json_boolean(trp_route_is_local(route))); - OBJECT_SET_OR_FAIL(route_json, "expires", expiry_to_json_string(route)); + OBJECT_SET_OR_SKIP(route_json, "expires", expiry_to_json_string(route)); /* succeeded - set the return value and increment the reference count */ retval = route_json; -- 2.1.4