From 15523217b5a6a932ef59e5b93b7d1e1c951b4fd5 Mon Sep 17 00:00:00 2001 From: Ayush Sharma Date: Mon, 16 Sep 2024 12:06:25 +0000 Subject: [PATCH] [PLAT-15205] YBA callhome improvements Summary: Change YBA callhome url to the new diagnostics endpoint and only collect email domains. Test Plan: Manually verfied that YBA is able to send the correct payload to the new endpoint. Reviewers: #yba-api-review!, svarshney Reviewed By: svarshney Subscribers: yugaware Differential Revision: https://phorge.dev.yugabyte.com/D38072 --- .../java/com/yugabyte/yw/common/CallHomeManager.java | 10 +++++++--- .../src/main/java/com/yugabyte/yw/models/Users.java | 8 ++++++-- .../com/yugabyte/yw/common/CallHomeManagerTest.java | 2 +- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/managed/src/main/java/com/yugabyte/yw/common/CallHomeManager.java b/managed/src/main/java/com/yugabyte/yw/common/CallHomeManager.java index 030b7d07709d..1267613ebcaa 100644 --- a/managed/src/main/java/com/yugabyte/yw/common/CallHomeManager.java +++ b/managed/src/main/java/com/yugabyte/yw/common/CallHomeManager.java @@ -72,7 +72,7 @@ public CallHomeManager(ApiHelper apiHelper, ConfigHelper configHelper) { } // Email address from YugaByte to which to send diagnostics, if enabled. - private final String YB_CALLHOME_URL = "https://yw-diagnostics.yugabyte.com"; + private final String YB_CALLHOME_URL = "https://diagnostics.yugabyte.com"; public static final Logger LOG = LoggerFactory.getLogger(CallHomeManager.class); @@ -81,7 +81,11 @@ public void sendDiagnostics(Customer c) { if (!callhomeLevel.isDisabled()) { LOG.info("Starting collecting diagnostics"); JsonNode payload = collectDiagnostics(c, callhomeLevel); - LOG.info("Sending collected diagnostics to " + YB_CALLHOME_URL); + LOG.trace( + "Sending collected diagnostics to " + + YB_CALLHOME_URL + + " with payload " + + payload.toPrettyString()); // Api Helper handles exceptions Map headers = new HashMap<>(); headers.put( @@ -97,7 +101,7 @@ public JsonNode collectDiagnostics(Customer c, CollectionLevel callhomeLevel) { // Build customer details json payload.put("customer_uuid", c.getUuid().toString()); payload.put("code", c.getCode()); - payload.put("email", Users.getAllEmailsForCustomer(c.getUuid())); + payload.put("email", Users.getAllEmailDomainsForCustomer(c.getUuid())); payload.put("creation_date", c.getCreationDate().toString()); // k8s operator info diff --git a/managed/src/main/java/com/yugabyte/yw/models/Users.java b/managed/src/main/java/com/yugabyte/yw/models/Users.java index c97683f8185b..b2cc33be4e5b 100644 --- a/managed/src/main/java/com/yugabyte/yw/models/Users.java +++ b/managed/src/main/java/com/yugabyte/yw/models/Users.java @@ -541,9 +541,13 @@ public void deleteAuthToken() { save(); } - public static String getAllEmailsForCustomer(UUID customerUUID) { + public static String getAllEmailDomainsForCustomer(UUID customerUUID) { List users = Users.getAll(customerUUID); - return users.stream().map(user -> user.getEmail()).collect(Collectors.joining(",")); + return users.stream() + .map(user -> user.getEmail().substring(user.getEmail().indexOf("@") + 1)) + .collect(Collectors.toSet()) + .stream() + .collect(Collectors.joining(",")); } public static List getAllReadOnly() { diff --git a/managed/src/test/java/com/yugabyte/yw/common/CallHomeManagerTest.java b/managed/src/test/java/com/yugabyte/yw/common/CallHomeManagerTest.java index 869f752ff667..a7109501f89f 100644 --- a/managed/src/test/java/com/yugabyte/yw/common/CallHomeManagerTest.java +++ b/managed/src/test/java/com/yugabyte/yw/common/CallHomeManagerTest.java @@ -127,7 +127,7 @@ public void testSendDiagnostics() { String expectedToken = Base64.getEncoder().encodeToString(defaultCustomer.getUuid().toString().getBytes()); assertEquals(expectedToken, headers.getValue().get("X-AUTH-TOKEN")); - assertEquals("https://yw-diagnostics.yugabyte.com", url.getValue()); + assertEquals("https://diagnostics.yugabyte.com", url.getValue()); } @Test