diff options
author | Valerij Fredriksen <valerijf@yahooinc.com> | 2022-02-18 15:34:59 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@yahooinc.com> | 2022-02-18 15:34:59 +0100 |
commit | fb4e9378d2ed85236b958962fdf88b9ff73fc8ff (patch) | |
tree | 35f02a699aa2e4ccb0beeb8564ef4953075c098b /controller-server | |
parent | b33b6cbd6ad7ec2ec441d59486a7b473e745e8ad (diff) |
Allow to excludeMessages
Diffstat (limited to 'controller-server')
3 files changed, 8 insertions, 11 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java index f6bc37835b8..faa60afa176 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java @@ -548,6 +548,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { private HttpResponse notifications(HttpRequest request, Optional<String> tenant, boolean includeTenantFieldInResponse) { boolean productionOnly = showOnlyProductionInstances(request); + boolean excludeMessages = "true".equals(request.getProperty("excludeMessages")); Slime slime = new Slime(); Cursor notificationsArray = slime.setObject().setArray("notifications"); @@ -561,7 +562,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { propertyEquals(request, "job", JobType::fromJobName, notification.source().jobType()) && propertyEquals(request, "type", Notification.Type::valueOf, Optional.of(notification.type())) && propertyEquals(request, "level", Notification.Level::valueOf, Optional.of(notification.level()))) - .forEach(notification -> toSlime(notificationsArray.addObject(), notification, includeTenantFieldInResponse)); + .forEach(notification -> toSlime(notificationsArray.addObject(), notification, includeTenantFieldInResponse, excludeMessages)); return new SlimeJsonResponse(slime); } private static <T> boolean propertyEquals(HttpRequest request, String property, Function<String, T> mapper, Optional<T> value) { @@ -570,12 +571,14 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { .orElse(true); } - private static void toSlime(Cursor cursor, Notification notification, boolean includeTenantFieldInResponse) { + private static void toSlime(Cursor cursor, Notification notification, boolean includeTenantFieldInResponse, boolean excludeMessages) { cursor.setLong("at", notification.at().toEpochMilli()); cursor.setString("level", notificationLevelAsString(notification.level())); cursor.setString("type", notificationTypeAsString(notification.type())); - Cursor messagesArray = cursor.setArray("messages"); - notification.messages().forEach(messagesArray::addString); + if (!excludeMessages) { + Cursor messagesArray = cursor.setArray("messages"); + notification.messages().forEach(messagesArray::addString); + } if (includeTenantFieldInResponse) cursor.setString("tenant", notification.source().tenant().value()); notification.source().application().ifPresent(application -> cursor.setString("application", application.value())); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java index 38340c1a988..61e9ea02acc 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiTest.java @@ -863,7 +863,7 @@ public class ApplicationApiTest extends ControllerContainerTest { addNotifications(TenantName.from("tenant1")); addNotifications(TenantName.from("tenant2")); tester.assertResponse(request("/application/v4/notifications", GET) - .properties(Map.of("type", "applicationPackage")).userIdentity(HOSTED_VESPA_OPERATOR), + .properties(Map.of("type", "applicationPackage", "excludeMessages", "true")).userIdentity(HOSTED_VESPA_OPERATOR), new File("notifications-applicationPackage.json")); tester.assertResponse(request("/application/v4/tenant/tenant1/notifications", GET).userIdentity(USER_ID), new File("notifications-tenant1.json")); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/notifications-applicationPackage.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/notifications-applicationPackage.json index d5a44538d12..c0833ae0f05 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/notifications-applicationPackage.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/notifications-applicationPackage.json @@ -4,9 +4,6 @@ "at": "(ignore)", "level": "warning", "type": "applicationPackage", - "messages": [ - "Something something deprecated..." - ], "tenant": "tenant1", "application": "app1" }, @@ -14,9 +11,6 @@ "at": "(ignore)", "level": "warning", "type": "applicationPackage", - "messages": [ - "Something something deprecated..." - ], "tenant": "tenant2", "application": "app1" } |