summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2022-03-14 23:08:26 +0100
committerValerij Fredriksen <valerijf@yahooinc.com>2022-03-14 23:17:43 +0100
commit9ad7ce1756ee6f5b3045b7f1aa0361d43ac6b80d (patch)
tree97f6c8b0381353a214023f74e0713890af381e1e /controller-server
parent65f2907ca912a53cca21f6b8f5d901e673b5a0d6 (diff)
Cleanup
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java49
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java19
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java8
3 files changed, 28 insertions, 48 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java
index bdc79bb28cf..cf68ca034a7 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializer.java
@@ -9,24 +9,24 @@ import com.yahoo.slime.ArrayTraverser;
import com.yahoo.slime.Cursor;
import com.yahoo.slime.Inspector;
import com.yahoo.slime.Slime;
-import com.yahoo.vespa.athenz.api.AthenzDomain;
import com.yahoo.slime.SlimeUtils;
+import com.yahoo.vespa.athenz.api.AthenzDomain;
import com.yahoo.vespa.hosted.controller.api.identifiers.Property;
import com.yahoo.vespa.hosted.controller.api.identifiers.PropertyId;
+import com.yahoo.vespa.hosted.controller.api.integration.organization.BillingInfo;
+import com.yahoo.vespa.hosted.controller.api.integration.organization.Contact;
import com.yahoo.vespa.hosted.controller.api.integration.secrets.TenantSecretStore;
import com.yahoo.vespa.hosted.controller.api.role.SimplePrincipal;
-import com.yahoo.vespa.hosted.controller.api.integration.organization.Contact;
-import com.yahoo.vespa.hosted.controller.api.integration.organization.BillingInfo;
import com.yahoo.vespa.hosted.controller.tenant.AthenzTenant;
import com.yahoo.vespa.hosted.controller.tenant.CloudTenant;
import com.yahoo.vespa.hosted.controller.tenant.DeletedTenant;
import com.yahoo.vespa.hosted.controller.tenant.LastLoginInfo;
import com.yahoo.vespa.hosted.controller.tenant.Tenant;
import com.yahoo.vespa.hosted.controller.tenant.TenantAddress;
+import com.yahoo.vespa.hosted.controller.tenant.TenantBilling;
import com.yahoo.vespa.hosted.controller.tenant.TenantContact;
import com.yahoo.vespa.hosted.controller.tenant.TenantContacts;
import com.yahoo.vespa.hosted.controller.tenant.TenantInfo;
-import com.yahoo.vespa.hosted.controller.tenant.TenantBilling;
import java.net.URI;
import java.security.Principal;
@@ -229,19 +229,14 @@ public class TenantSerializer {
}
private List<TenantSecretStore> secretStoresFromSlime(Inspector secretStoresObject) {
- List<TenantSecretStore> secretStores = new ArrayList<>();
- if (!secretStoresObject.valid()) return secretStores;
-
- secretStoresObject.traverse((ArrayTraverser) (index, inspector) -> {
- secretStores.add(
- new TenantSecretStore(
- inspector.field(nameField).asString(),
- inspector.field(awsIdField).asString(),
- inspector.field(roleField).asString()
- )
- );
- });
- return secretStores;
+ if (!secretStoresObject.valid()) return List.of();
+
+ return SlimeUtils.entriesStream(secretStoresObject)
+ .map(inspector -> new TenantSecretStore(
+ inspector.field(nameField).asString(),
+ inspector.field(awsIdField).asString(),
+ inspector.field(roleField).asString()))
+ .collect(Collectors.toUnmodifiableList());
}
private LastLoginInfo lastLoginInfoFromSlime(Inspector lastLoginInfoObject) {
@@ -300,24 +295,14 @@ public class TenantSerializer {
private void toSlime(TenantContacts contacts, Cursor parent) {
if (contacts.isEmpty()) return;
var cursor = parent.setArray("contacts");
- contacts.all().forEach(contact -> {
- writeContact(contact, cursor.addObject());
- });
+ contacts.all().forEach(contact -> writeContact(contact, cursor.addObject()));
}
private TenantContacts tenantContactsFrom(Inspector object) {
- var contacts = new ArrayList<TenantContacts.Contact<?>>();
-
- object.traverse((ArrayTraverser)(index, inspector) -> {
- TenantContacts.Contact<?> contact = readContact(inspector);
- contacts.add(contact);
- });
-
- if (contacts.isEmpty()) {
- return TenantContacts.empty();
- } else {
- return TenantContacts.from(contacts);
- }
+ List<TenantContacts.Contact<?>> contacts = SlimeUtils.entriesStream(object)
+ .map(this::readContact)
+ .collect(Collectors.toUnmodifiableList());
+ return new TenantContacts(contacts);
}
private Optional<Contact> contactFrom(Inspector object) {
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 7ed81975978..c55be24fcb4 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
@@ -32,7 +32,6 @@ import com.yahoo.restapi.Path;
import com.yahoo.restapi.ResourceResponse;
import com.yahoo.restapi.SlimeJsonResponse;
import com.yahoo.security.KeyUtils;
-import com.yahoo.slime.ArrayTraverser;
import com.yahoo.slime.Cursor;
import com.yahoo.slime.Inspector;
import com.yahoo.slime.JsonParseException;
@@ -99,7 +98,6 @@ import com.yahoo.vespa.hosted.controller.maintenance.ResourceMeterMaintainer;
import com.yahoo.vespa.hosted.controller.notification.Notification;
import com.yahoo.vespa.hosted.controller.notification.NotificationSource;
import com.yahoo.vespa.hosted.controller.persistence.SupportAccessSerializer;
-import com.yahoo.vespa.hosted.controller.persistence.TenantSerializer;
import com.yahoo.vespa.hosted.controller.routing.RoutingStatus;
import com.yahoo.vespa.hosted.controller.routing.context.DeploymentRoutingContext;
import com.yahoo.vespa.hosted.controller.routing.rotation.RotationId;
@@ -114,10 +112,10 @@ import com.yahoo.vespa.hosted.controller.tenant.DeletedTenant;
import com.yahoo.vespa.hosted.controller.tenant.LastLoginInfo;
import com.yahoo.vespa.hosted.controller.tenant.Tenant;
import com.yahoo.vespa.hosted.controller.tenant.TenantAddress;
+import com.yahoo.vespa.hosted.controller.tenant.TenantBilling;
import com.yahoo.vespa.hosted.controller.tenant.TenantContact;
import com.yahoo.vespa.hosted.controller.tenant.TenantContacts;
import com.yahoo.vespa.hosted.controller.tenant.TenantInfo;
-import com.yahoo.vespa.hosted.controller.tenant.TenantBilling;
import com.yahoo.vespa.hosted.controller.versions.VersionStatus;
import com.yahoo.vespa.hosted.controller.versions.VespaVersion;
import com.yahoo.vespa.serviceview.bindings.ApplicationView;
@@ -140,7 +138,6 @@ import java.time.DayOfWeek;
import java.time.Duration;
import java.time.Instant;
import java.time.temporal.ChronoUnit;
-import java.util.ArrayList;
import java.util.Arrays;
import java.util.Base64;
import java.util.Collection;
@@ -681,17 +678,15 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
private TenantContacts updateTenantInfoContacts(Inspector insp, TenantContacts oldContacts) {
if (!insp.valid()) return oldContacts;
- var contacts = new ArrayList<TenantContacts.Contact<?>>();
-
- insp.traverse((ArrayTraverser)(index, inspector) -> {
- var email = new TenantContacts.EmailContact(inspector.field("email").asString());
- var audiences = SlimeUtils.entriesStream(inspector.field("audiences"))
+ List<TenantContacts.Contact<?>> contacts = SlimeUtils.entriesStream(insp).map(inspector -> {
+ TenantContacts.EmailContact email = new TenantContacts.EmailContact(inspector.field("email").asString());
+ List<TenantContacts.Audience> audiences = SlimeUtils.entriesStream(inspector.field("audiences"))
.map(audience -> fromAudience(audience.asString()))
.collect(Collectors.toUnmodifiableList());
- contacts.add( new TenantContacts.Contact<>(TenantContacts.Type.EMAIL, email, audiences ));
- });
+ return new TenantContacts.Contact<>(TenantContacts.Type.EMAIL, audiences, email);
+ }).collect(toUnmodifiableList());
- return TenantContacts.from(contacts);
+ return new TenantContacts(contacts);
}
private HttpResponse notifications(HttpRequest request, Optional<String> tenant, boolean includeTenantFieldInResponse) {
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java
index 6503005962b..d7a3be82968 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/TenantSerializerTest.java
@@ -17,10 +17,10 @@ import com.yahoo.vespa.hosted.controller.tenant.CloudTenant;
import com.yahoo.vespa.hosted.controller.tenant.DeletedTenant;
import com.yahoo.vespa.hosted.controller.tenant.LastLoginInfo;
import com.yahoo.vespa.hosted.controller.tenant.TenantAddress;
+import com.yahoo.vespa.hosted.controller.tenant.TenantBilling;
import com.yahoo.vespa.hosted.controller.tenant.TenantContact;
import com.yahoo.vespa.hosted.controller.tenant.TenantContacts;
import com.yahoo.vespa.hosted.controller.tenant.TenantInfo;
-import com.yahoo.vespa.hosted.controller.tenant.TenantBilling;
import org.junit.Test;
import java.net.URI;
@@ -174,9 +174,9 @@ public class TenantSerializerTest {
@Test
public void cloud_tenant_with_tenant_info_contacts() {
TenantInfo tenantInfo = TenantInfo.empty()
- .withContacts(TenantContacts.empty()
- .add(new TenantContacts.Contact<>(TenantContacts.Type.EMAIL, List.of(TenantContacts.Audience.TENANT), new TenantContacts.EmailContact("email1@email.com")))
- .add(new TenantContacts.Contact<>(TenantContacts.Type.EMAIL, List.of(TenantContacts.Audience.TENANT, TenantContacts.Audience.NOTIFICATIONS), new TenantContacts.EmailContact("email2@email.com"))));
+ .withContacts(new TenantContacts(List.of(
+ new TenantContacts.Contact<>(TenantContacts.Type.EMAIL, List.of(TenantContacts.Audience.TENANT), new TenantContacts.EmailContact("email1@email.com")),
+ new TenantContacts.Contact<>(TenantContacts.Type.EMAIL, List.of(TenantContacts.Audience.TENANT, TenantContacts.Audience.NOTIFICATIONS), new TenantContacts.EmailContact("email2@email.com")))));
Slime slime = new Slime();
Cursor parentCursor = slime.setObject();
serializer.toSlime(tenantInfo, parentCursor);