From 59d946ee6b3612ef2fd646055e39282b0e0189ff Mon Sep 17 00:00:00 2001 From: Anton Tiurin Date: Mon, 15 Sep 2025 12:32:39 -0700 Subject: [PATCH] networkd: fia xRequiredOperationalStateForOnline serializtion In integration tests (for example TEST-85-NETWORK-NetworkctlTests) LINK_OPERSTATE_RANGE_INVALID and required_for_online == -1 are serialized as ``` "RequiredForOnline": "true", "RequiredOperationalStateForOnline": [null, null] ``` Such link should be reported as required_for_online=False and not serialize nulls. --- src/network/networkd-json.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/network/networkd-json.c b/src/network/networkd-json.c index d7bea039fd7..3784995845b 100644 --- a/src/network/networkd-json.c +++ b/src/network/networkd-json.c @@ -444,14 +444,15 @@ static int network_append_json(Network *network, sd_json_variant **v) { v, SD_JSON_BUILD_PAIR_STRING("NetworkFile", network->filename), SD_JSON_BUILD_PAIR_STRV("NetworkFileDropins", network->dropins), - SD_JSON_BUILD_PAIR_BOOLEAN("RequiredForOnline", network->required_for_online), - SD_JSON_BUILD_PAIR("RequiredOperationalStateForOnline", - SD_JSON_BUILD_ARRAY(SD_JSON_BUILD_STRING(link_operstate_to_string(network->required_operstate_for_online.min)), - SD_JSON_BUILD_STRING(link_operstate_to_string(network->required_operstate_for_online.max)))), - SD_JSON_BUILD_PAIR_STRING("RequiredFamilyForOnline", - link_required_address_family_to_string(network->required_family_for_online)), - SD_JSON_BUILD_PAIR_STRING("ActivationPolicy", - activation_policy_to_string(network->activation_policy))); + SD_JSON_BUILD_PAIR_BOOLEAN("RequiredForOnline", network->required_for_online > 0), + SD_JSON_BUILD_PAIR_CONDITION( + operational_state_range_is_valid(&network->required_operstate_for_online), + "RequiredOperationalStateForOnline", + SD_JSON_BUILD_ARRAY( + SD_JSON_BUILD_STRING(link_operstate_to_string(network->required_operstate_for_online.min)), + SD_JSON_BUILD_STRING(link_operstate_to_string(network->required_operstate_for_online.max)))), + SD_JSON_BUILD_PAIR_STRING("RequiredFamilyForOnline", link_required_address_family_to_string(network->required_family_for_online)), + SD_JSON_BUILD_PAIR_STRING("ActivationPolicy", activation_policy_to_string(network->activation_policy))); } static int netdev_append_json(NetDev *netdev, sd_json_variant **v) { -- 2.47.3