summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorsmorgrav <smorgrav@verizonmedia.com>2020-11-05 14:11:31 +0100
committersmorgrav <smorgrav@verizonmedia.com>2020-11-05 14:11:31 +0100
commite1232b322f9634e6dec40730254406e442cf05e5 (patch)
tree6febb6c5d4dbe2c679bf330ccda3184d7f74170a /controller-server
parentb72f91cde801d4408db4869285d4e08f95325776 (diff)
Move this to a PUT and complete the unit test
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java2
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiCloudTest.java35
2 files changed, 26 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 128c6093913..7b1b0f2f36e 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
@@ -259,6 +259,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler {
private HttpResponse handlePUT(Path path, HttpRequest request) {
if (path.matches("/application/v4/tenant/{tenant}")) return updateTenant(path.get("tenant"), request);
+ if (path.matches("/application/v4/tenant/{tenant}/info")) return updateTenantInfo(path.get("tenant"), request);
if (path.matches("/application/v4/tenant/{tenant}/application/{application}/instance/{instance}/environment/{environment}/region/{region}/global-rotation/override")) return setGlobalRotationOverride(path.get("tenant"), path.get("application"), path.get("instance"), path.get("environment"), path.get("region"), false, request);
if (path.matches("/application/v4/tenant/{tenant}/application/{application}/environment/{environment}/region/{region}/instance/{instance}/global-rotation/override")) return setGlobalRotationOverride(path.get("tenant"), path.get("application"), path.get("instance"), path.get("environment"), path.get("region"), false, request);
return ErrorResponse.notFoundError("Nothing at " + path);
@@ -266,7 +267,6 @@ public class ApplicationApiHandler extends LoggingRequestHandler {
private HttpResponse handlePOST(Path path, HttpRequest request) {
if (path.matches("/application/v4/tenant/{tenant}")) return createTenant(path.get("tenant"), request);
- if (path.matches("/application/v4/tenant/{tenant}/info")) return updateTenantInfo(path.get("tenant"), request);
if (path.matches("/application/v4/tenant/{tenant}/key")) return addDeveloperKey(path.get("tenant"), request);
if (path.matches("/application/v4/tenant/{tenant}/application/{application}")) return createApplication(path.get("tenant"), path.get("application"), request);
if (path.matches("/application/v4/tenant/{tenant}/application/{application}/deploying/platform")) return deployPlatform(path.get("tenant"), path.get("application"), "default", false, request);
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 2b738226485..06d6bfc5321 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,7 +6,6 @@ import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.TenantName;
import com.yahoo.vespa.flags.Flags;
import com.yahoo.vespa.flags.InMemoryFlagSource;
-import com.yahoo.vespa.hosted.controller.api.integration.user.User;
import com.yahoo.vespa.hosted.controller.ControllerTester;
import com.yahoo.vespa.hosted.controller.api.role.Role;
import com.yahoo.vespa.hosted.controller.application.TenantAndApplicationId;
@@ -24,6 +23,7 @@ import java.util.Collections;
import java.util.Set;
import static com.yahoo.application.container.handler.Request.Method.GET;
+import static com.yahoo.application.container.handler.Request.Method.PUT;
import static com.yahoo.application.container.handler.Request.Method.POST;
import static com.yahoo.vespa.hosted.controller.restapi.application.ApplicationApiTest.createApplicationSubmissionData;
@@ -36,7 +36,6 @@ public class ApplicationApiCloudTest extends ControllerContainerCloudTest {
private static final TenantName tenantName = TenantName.from("scoober");
private static final ApplicationName applicationName = ApplicationName.from("albums");
- private static final User developerUser = new User("developer", "Joe Developer", "", "");
@Before
public void before() {
@@ -63,20 +62,36 @@ public class ApplicationApiCloudTest extends ControllerContainerCloudTest {
}
@Test
- public void get_empty_tenant_info() {
+ public void tenant_info_workflow() {
var infoRequest =
request("/application/v4/tenant/scoober/info", GET)
.roles(Set.of(Role.reader(tenantName)));
tester.assertResponse(infoRequest, "{}", 200);
- }
- @Test
- public void post_partial_tenant_info() {
- var infoRequest =
- request("/application/v4/tenant/scoober/info", POST)
- .data("{\"name\":\"newName\", \"billingContact\":{\"name\":\"billingName\"}}")
+ String partialInfo = "{\"name\":\"newName\", \"billingContact\":{\"name\":\"billingName\"}}";
+
+ var postPartial =
+ request("/application/v4/tenant/scoober/info", PUT)
+ .data(partialInfo)
.roles(Set.of(Role.administrator(tenantName)));
- tester.assertResponse(infoRequest, "{}", 200);
+ tester.assertResponse(postPartial, "{\"message\":\"Tenant info updated\"}", 200);
+
+ // Read back the updated info
+ tester.assertResponse(infoRequest, "{\"name\":\"newName\",\"email\":\"\",\"website\":\"\",\"invoiceEmail\":\"\",\"contactName\":\"\",\"contactEmail\":\"\",\"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\":\"email\",\"website\":\"webSite\",\"invoiceEmail\":\"invoiceEmail\",\"contactName\":\"contactName\",\"contactEmail\":\"contanctEmail\",\"address\":" + fullAddress + ",\"billingContact\":" + fullBillingContact + "}";
+
+ // Now set all fields
+ var postFull =
+ request("/application/v4/tenant/scoober/info", PUT)
+ .data(fullInfo)
+ .roles(Set.of(Role.administrator(tenantName)));
+ tester.assertResponse(postFull, "{\"message\":\"Tenant info updated\"}", 200);
+
+ // Now compare the updated info with the full info we sent
+ tester.assertResponse(infoRequest, fullInfo, 200);
}
private ApplicationPackageBuilder prodBuilder() {