summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorØyvind Grønnesby <oyving@verizonmedia.com>2022-01-24 13:59:04 +0100
committerØyvind Grønnesby <oyving@verizonmedia.com>2022-01-24 14:01:06 +0100
commit545c03abbc3d3f1cb74eb6606d259531efebfe99 (patch)
tree8dfed383e5f30a4c911b7d5a2cd235d906576a13 /controller-server
parentd4c1a852168e39f7f1261b594109ac8277a364b4 (diff)
name -> contactName, email -> contactEmail for validation
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java12
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java23
2 files changed, 19 insertions, 16 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 2f8a014bfce..bca209c51e4 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
@@ -473,16 +473,16 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
.withBillingContact(updateTenantInfoBillingContact(insp.field("billingContact"), oldInfo.billingContact()));
// Assert that we have a valid tenant info
- if (mergedInfo.name().isBlank()) {
- return new MessageResponse(400, "'name' cannot be empty");
+ if (mergedInfo.contactName().isBlank()) {
+ return new MessageResponse(400, "'contactName' cannot be empty");
}
- if (mergedInfo.email().isBlank()) {
- return new MessageResponse(400, "'email' cannot be empty");
+ if (mergedInfo.contactEmail().isBlank()) {
+ return new MessageResponse(400, "'contactEmail' cannot be empty");
}
- if (! mergedInfo.email().contains("@")) {
+ if (! mergedInfo.contactEmail().contains("@")) {
// email address validation is notoriously hard - we should probably just try to send a
// verification email to this address. checking for @ is a simple best-effort.
- return new MessageResponse(400, "'email' needs to be an email address");
+ return new MessageResponse(400, "'contactEmail' needs to be an email address");
}
// Store changes
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java
index 67e20210004..63881e4eb7b 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java
@@ -6,6 +6,8 @@ import com.yahoo.config.provision.ApplicationId;
import com.yahoo.config.provision.ApplicationName;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.TenantName;
+import com.yahoo.slime.Slime;
+import com.yahoo.slime.SlimeUtils;
import com.yahoo.vespa.flags.InMemoryFlagSource;
import com.yahoo.vespa.flags.PermanentFlags;
import com.yahoo.vespa.hosted.controller.ControllerTester;
@@ -30,6 +32,7 @@ import org.junit.Test;
import javax.ws.rs.ForbiddenException;
import java.io.File;
+import java.io.IOException;
import java.util.Collections;
import java.util.Optional;
import java.util.Set;
@@ -85,7 +88,7 @@ public class ApplicationApiCloudTest extends ControllerContainerCloudTest {
.roles(Set.of(Role.reader(tenantName)));
tester.assertResponse(infoRequest, "{}", 200);
- String partialInfo = "{\"name\":\"newName\", \"email\": \"foo@example.com\", \"billingContact\":{\"name\":\"billingName\"}}";
+ String partialInfo = "{\"contactName\":\"newName\", \"contactEmail\": \"foo@example.com\", \"billingContact\":{\"name\":\"billingName\"}}";
var postPartial =
request("/application/v4/tenant/scoober/info", PUT)
@@ -94,11 +97,11 @@ public class ApplicationApiCloudTest extends ControllerContainerCloudTest {
tester.assertResponse(postPartial, "{\"message\":\"Tenant info updated\"}", 200);
// Read back the updated info
- tester.assertResponse(infoRequest, "{\"name\":\"newName\",\"email\":\"foo@example.com\",\"website\":\"\",\"invoiceEmail\":\"\",\"contactName\":\"\",\"contactEmail\":\"\",\"billingContact\":{\"name\":\"billingName\",\"email\":\"\",\"phone\":\"\"}}", 200);
+ tester.assertResponse(infoRequest, "{\"name\":\"\",\"email\":\"\",\"website\":\"\",\"invoiceEmail\":\"\",\"contactName\":\"newName\",\"contactEmail\":\"foo@example.com\",\"billingContact\":{\"name\":\"billingName\",\"email\":\"\",\"phone\":\"\"}}", 200);
String fullAddress = "{\"addressLines\":\"addressLines\",\"postalCodeOrZip\":\"postalCodeOrZip\",\"city\":\"city\",\"stateRegionProvince\":\"stateRegionProvince\",\"country\":\"country\"}";
String fullBillingContact = "{\"name\":\"name\",\"email\":\"email\",\"phone\":\"phone\",\"address\":" + fullAddress + "}";
- String fullInfo = "{\"name\":\"name\",\"email\":\"foo@example\",\"website\":\"webSite\",\"invoiceEmail\":\"invoiceEmail\",\"contactName\":\"contactName\",\"contactEmail\":\"contanctEmail\",\"address\":" + fullAddress + ",\"billingContact\":" + fullBillingContact + "}";
+ String fullInfo = "{\"name\":\"name\",\"email\":\"foo@example\",\"website\":\"webSite\",\"invoiceEmail\":\"invoiceEmail\",\"contactName\":\"contactName\",\"contactEmail\":\"contact@example.com\",\"address\":" + fullAddress + ",\"billingContact\":" + fullBillingContact + "}";
// Now set all fields
var postFull =
@@ -120,27 +123,27 @@ public class ApplicationApiCloudTest extends ControllerContainerCloudTest {
tester.assertResponse(infoRequest, "{}", 200);
// name needs to be present and not blank
- var partialInfoMissingName = "{\"name\": \" \"}";
+ var partialInfoMissingName = "{\"contactName\": \" \"}";
var missingNameResponse = request("/application/v4/tenant/scoober/info", PUT)
.data(partialInfoMissingName)
.roles(Set.of(Role.administrator(tenantName)));
- tester.assertResponse(missingNameResponse, "{\"message\":\"'name' cannot be empty\"}", 400);
+ tester.assertResponse(missingNameResponse, "{\"message\":\"'contactName' cannot be empty\"}", 400);
// email needs to be present, not blank, and contain an @
- var partialInfoMissingEmail = "{\"name\": \"Scoober Rentals Inc.\", \"email\": \" \"}";
+ var partialInfoMissingEmail = "{\"contactName\": \"Scoober Rentals Inc.\", \"contactEmail\": \" \"}";
var missingEmailResponse = request("/application/v4/tenant/scoober/info", PUT)
.data(partialInfoMissingEmail)
.roles(Set.of(Role.administrator(tenantName)));
- tester.assertResponse(missingEmailResponse, "{\"message\":\"'email' cannot be empty\"}", 400);
+ tester.assertResponse(missingEmailResponse, "{\"message\":\"'contactEmail' cannot be empty\"}", 400);
- var partialInfoBadEmail = "{\"name\": \"Scoober Rentals Inc.\", \"email\": \"somethingweird\"}";
+ var partialInfoBadEmail = "{\"contactName\": \"Scoober Rentals Inc.\", \"contactEmail\": \"somethingweird\"}";
var badEmailResponse = request("/application/v4/tenant/scoober/info", PUT)
.data(partialInfoBadEmail)
.roles(Set.of(Role.administrator(tenantName)));
- tester.assertResponse(badEmailResponse, "{\"message\":\"'email' needs to be an email address\"}", 400);
+ tester.assertResponse(badEmailResponse, "{\"message\":\"'contactEmail' needs to be an email address\"}", 400);
// updating a tenant that already has the fields set works
- var basicInfo = "{\"name\": \"Scoober Rentals Inc.\", \"email\": \"foo@example.com\"}";
+ var basicInfo = "{\"contactName\": \"Scoober Rentals Inc.\", \"contactEmail\": \"foo@example.com\"}";
var basicInfoResponse = request("/application/v4/tenant/scoober/info", PUT)
.data(basicInfo)
.roles(Set.of(Role.administrator(tenantName)));