From d72465d9bac53a4e5cfed5a31b5e76c7265d9872 Mon Sep 17 00:00:00 2001 From: Costa Tsaousis Date: Mon, 10 Feb 2025 17:40:21 +0000 Subject: [PATCH] Allow indirect access when agent is claimed, but offline (indirect cloud connectivity) (#19611) use the parent claim id when agent is claimed but not connected to netdata cloud --- src/claim/claim_id.c | 2 +- src/claim/cloud-status.c | 2 +- src/registry/registry.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/claim/claim_id.c b/src/claim/claim_id.c index 07f2d975480004..b4619f5cd7a64c 100644 --- a/src/claim/claim_id.c +++ b/src/claim/claim_id.c @@ -106,7 +106,7 @@ CLAIM_ID rrdhost_claim_id_get(RRDHOST *host) { if(host == localhost) { ret.uuid = claim_id_get_uuid(); - if(UUIDiszero(ret.uuid)) + if(UUIDiszero(ret.uuid) || (!aclk_online() && !UUIDiszero(host->aclk.claim_id_of_parent))) ret.uuid = host->aclk.claim_id_of_parent; } else { diff --git a/src/claim/cloud-status.c b/src/claim/cloud-status.c index 939b2ccf0622ee..641d8fd2d290d9 100644 --- a/src/claim/cloud-status.c +++ b/src/claim/cloud-status.c @@ -107,7 +107,7 @@ CLOUD_STATUS buffer_json_cloud_status(BUFFER *wb, time_t now_s) { case CLOUD_STATUS_OFFLINE: { // the agent is claimed, but cannot get online - CLAIM_ID claim_id = claim_id_get(); + CLAIM_ID claim_id = rrdhost_claim_id_get(localhost); buffer_json_member_add_string(wb, "claim_id", claim_id.str); buffer_json_member_add_string(wb, "url", cloud_status_aclk_base_url()); buffer_json_member_add_string(wb, "reason", cloud_status_aclk_offline_reason()); diff --git a/src/registry/registry.c b/src/registry/registry.c index 9bd2040783accc..591670ef55d25b 100644 --- a/src/registry/registry.c +++ b/src/registry/registry.c @@ -174,7 +174,7 @@ int registry_request_hello_json(RRDHOST *host, struct web_client *w, bool do_not if(!UUIDiszero(localhost->node_id)) buffer_json_member_add_uuid(w->response.data, "node_id", localhost->node_id.uuid); - CLAIM_ID claim_id = claim_id_get(); + CLAIM_ID claim_id = rrdhost_claim_id_get(host); if (claim_id_is_set(claim_id)) buffer_json_member_add_string(w->response.data, "claim_id", claim_id.str);