From 3f06aa65ae56a78ba810d1b10d064be5c5100ed5 Mon Sep 17 00:00:00 2001
From: "Austin S. Hemmelgarn" <austin@netdata.cloud>
Date: Fri, 14 Jan 2022 10:36:09 -0500
Subject: [PATCH] Better handle creation of UUID for claiming. (#11974)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

* Properly check for the availability of `uuidgen` before blindly using
  it.
* Fall back on Linux to the kernel-provided interface for generating
  UUIDs if `uuidgen` is not present.
* Provide a more useful error message if we can’t use either option.
---
 claim/netdata-claim.sh.in | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/claim/netdata-claim.sh.in b/claim/netdata-claim.sh.in
index 8f58cfe3b2..f2120ae9cd 100755
--- a/claim/netdata-claim.sh.in
+++ b/claim/netdata-claim.sh.in
@@ -151,7 +151,14 @@ NETDATA_USER=$(get_config_value netdata global "run as user")
 gen_id() {
     local id
 
-    id="$(uuidgen)"
+    if command -v uuidgen > /dev/null 2>&1; then
+        id="$(uuidgen)"
+    elif [ -r /proc/sys/kernel/random/uuid ]; then
+        id="$(cat /proc/sys/kernel/random/uuid)"
+    else
+        echo >&2 "Unable to generate machine ID."
+        exit 18
+    fi
 
     if [ "${id}" = "8a795b0c-2311-11e6-8563-000c295076a6" ] || [ "${id}" = "4aed1458-1c3e-11e6-a53f-000c290fc8f5" ]; then
         gen_id