summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorØyvind Grønnesby <oyving@yahooinc.com>2023-06-12 14:06:22 +0200
committerØyvind Grønnesby <oyving@yahooinc.com>2023-06-12 14:06:22 +0200
commitb1f6112e00aac573fa5f5dbaffc6dfae639c4494 (patch)
treecec6c78322b9af686e8b33b35e10a41b14e31545 /controller-server
parent9d4fb4f1c84515a59a720e4e82098726352183f8 (diff)
Test deployment with enclave
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java4
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelperTest.java23
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview-enclave.json280
3 files changed, 307 insertions, 0 deletions
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java
index 2c1e0b743fe..965201ec6da 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/ApplicationPackageBuilder.java
@@ -173,6 +173,10 @@ public class ApplicationPackageBuilder {
return this;
}
+ public ApplicationPackageBuilder region(String regionName, String cloudAccount) {
+ return region(RegionName.from(regionName), cloudAccount);
+ }
+
public ApplicationPackageBuilder region(RegionName regionName, String cloudAccount) {
prodBody.append(" <region ")
.append("cloud-account=\"")
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelperTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelperTest.java
index 6555277b06b..d999514597a 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelperTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelperTest.java
@@ -2,9 +2,13 @@
package com.yahoo.vespa.hosted.controller.restapi.application;
import com.yahoo.component.Version;
+import com.yahoo.config.provision.CloudAccount;
+import com.yahoo.config.provision.SystemName;
import com.yahoo.config.provision.zone.ZoneId;
import com.yahoo.container.jdisc.HttpResponse;
import com.yahoo.slime.SlimeUtils;
+import com.yahoo.vespa.flags.PermanentFlags;
+import com.yahoo.vespa.hosted.controller.ControllerTester;
import com.yahoo.vespa.hosted.controller.api.integration.configserver.ConfigServerException;
import com.yahoo.vespa.hosted.controller.api.integration.deployment.RevisionId;
import com.yahoo.vespa.hosted.controller.api.integration.deployment.RunId;
@@ -25,6 +29,7 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.time.Duration;
import java.time.Instant;
+import java.util.List;
import java.util.Optional;
import static com.yahoo.vespa.hosted.controller.api.integration.configserver.ConfigServerException.ErrorCode.INVALID_APPLICATION_PACKAGE;
@@ -198,6 +203,24 @@ public class JobControllerApiHandlerHelperTest {
"jobs-direct-deployment.json");
}
+ @Test
+ void testEnclave() {
+ var cloudAccount = CloudAccount.from("aws:123456789012");
+ var applicationPackage = new ApplicationPackageBuilder()
+ .stagingTest()
+ .systemTest()
+ .region("aws-us-east-1c", cloudAccount.value())
+ .build();
+ var tester = new DeploymentTester(new ControllerTester(SystemName.Public));
+ tester.controllerTester().flagSource().withListFlag(PermanentFlags.CLOUD_ACCOUNTS.id(), List.of(cloudAccount.value()), String.class);
+ tester.controllerTester().zoneRegistry().configureCloudAccount(cloudAccount, ZoneId.from("prod.aws-us-east-1c"));
+
+ var app = tester.newDeploymentContext();
+ app.submit(applicationPackage).deploy();
+
+ assertResponse(JobControllerApiHandlerHelper.overviewResponse(tester.controller(), app.application().id(), URI.create("https://some.url:43/root/")), "overview-enclave.json");
+ }
+
private void assertResponse(HttpResponse response, String fileName) {
try {
Path path = Paths.get("src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/").resolve(fileName);
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview-enclave.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview-enclave.json
new file mode 100644
index 00000000000..6a322f9f381
--- /dev/null
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview-enclave.json
@@ -0,0 +1,280 @@
+{
+ "tenant": "tenant",
+ "application": "application",
+ "projectId": 1000,
+ "steps": [
+ {
+ "type": "instance",
+ "dependencies": [ ],
+ "declared": true,
+ "instance": "default",
+ "readyAt": 0,
+ "deploying": { },
+ "latestVersions": {
+ "platform": {
+ "platform": "6.1.0",
+ "at": 1600000000000,
+ "upgrade": false,
+ "available": [
+ {
+ "platform": "6.1.0",
+ "upgrade": false
+ }
+ ],
+ "blockers": [ ]
+ },
+ "application": {
+ "application": {
+ "build": 1,
+ "compileVersion": "6.1.0",
+ "sourceUrl": "repository1/tree/commit1",
+ "commit": "commit1"
+ },
+ "at": 1000,
+ "upgrade": false,
+ "available": [
+ {
+ "application": {
+ "build": 1,
+ "compileVersion": "6.1.0",
+ "sourceUrl": "repository1/tree/commit1",
+ "commit": "commit1"
+ }
+ }
+ ],
+ "blockers": [ ]
+ }
+ },
+ "delayCause": null
+ },
+ {
+ "type": "test",
+ "dependencies": [ ],
+ "declared": true,
+ "instance": "default",
+ "readyAt": 0,
+ "jobName": "staging-test",
+ "url": "https://some.url:43/instance/default/job/staging-test",
+ "environment": "staging",
+ "toRun": [ ],
+ "runs": [
+ {
+ "id": 1,
+ "url": "https://some.url:43/instance/default/job/staging-test/run/1",
+ "start": 1600000000000,
+ "end": 1600000000000,
+ "status": "success",
+ "versions": {
+ "targetPlatform": "6.1.0",
+ "targetApplication": {
+ "build": 1,
+ "compileVersion": "6.1.0",
+ "sourceUrl": "repository1/tree/commit1",
+ "commit": "commit1"
+ }
+ },
+ "steps": [
+ {
+ "name": "deployTester",
+ "status": "succeeded"
+ },
+ {
+ "name": "installTester",
+ "status": "succeeded"
+ },
+ {
+ "name": "deployInitialReal",
+ "status": "succeeded"
+ },
+ {
+ "name": "installInitialReal",
+ "status": "succeeded"
+ },
+ {
+ "name": "startStagingSetup",
+ "status": "succeeded"
+ },
+ {
+ "name": "endStagingSetup",
+ "status": "succeeded"
+ },
+ {
+ "name": "deployReal",
+ "status": "succeeded"
+ },
+ {
+ "name": "installReal",
+ "status": "succeeded"
+ },
+ {
+ "name": "startTests",
+ "status": "succeeded"
+ },
+ {
+ "name": "endTests",
+ "status": "succeeded"
+ },
+ {
+ "name": "copyVespaLogs",
+ "status": "succeeded"
+ },
+ {
+ "name": "deactivateReal",
+ "status": "succeeded"
+ },
+ {
+ "name": "deactivateTester",
+ "status": "succeeded"
+ },
+ {
+ "name": "report",
+ "status": "succeeded"
+ }
+ ]
+ }
+ ],
+ "delayCause": null
+ },
+ {
+ "type": "test",
+ "dependencies": [ ],
+ "declared": true,
+ "instance": "default",
+ "readyAt": 0,
+ "jobName": "system-test",
+ "url": "https://some.url:43/instance/default/job/system-test",
+ "environment": "test",
+ "toRun": [ ],
+ "runs": [
+ {
+ "id": 1,
+ "url": "https://some.url:43/instance/default/job/system-test/run/1",
+ "start": 1600000000000,
+ "end": 1600000000000,
+ "status": "success",
+ "versions": {
+ "targetPlatform": "6.1.0",
+ "targetApplication": {
+ "build": 1,
+ "compileVersion": "6.1.0",
+ "sourceUrl": "repository1/tree/commit1",
+ "commit": "commit1"
+ }
+ },
+ "steps": [
+ {
+ "name": "deployTester",
+ "status": "succeeded"
+ },
+ {
+ "name": "installTester",
+ "status": "succeeded"
+ },
+ {
+ "name": "deployReal",
+ "status": "succeeded"
+ },
+ {
+ "name": "installReal",
+ "status": "succeeded"
+ },
+ {
+ "name": "startTests",
+ "status": "succeeded"
+ },
+ {
+ "name": "endTests",
+ "status": "succeeded"
+ },
+ {
+ "name": "copyVespaLogs",
+ "status": "succeeded"
+ },
+ {
+ "name": "deactivateReal",
+ "status": "succeeded"
+ },
+ {
+ "name": "deactivateTester",
+ "status": "succeeded"
+ },
+ {
+ "name": "report",
+ "status": "succeeded"
+ }
+ ]
+ }
+ ],
+ "delayCause": null
+ },
+ {
+ "type": "deployment",
+ "dependencies": [
+ 0,
+ 1,
+ 2
+ ],
+ "declared": true,
+ "instance": "default",
+ "readyAt": 1600000000000,
+ "jobName": "production-aws-us-east-1c",
+ "url": "https://some.url:43/instance/default/job/production-aws-us-east-1c",
+ "environment": "prod",
+ "region": "prod.aws-us-east-1c",
+ "enclave": {
+ "cloudAccount": "aws:123456789012"
+ },
+ "currentPlatform": "6.1.0",
+ "currentApplication": {
+ "build": 1,
+ "compileVersion": "6.1.0",
+ "sourceUrl": "repository1/tree/commit1",
+ "commit": "commit1"
+ },
+ "toRun": [ ],
+ "runs": [
+ {
+ "id": 1,
+ "url": "https://some.url:43/instance/default/job/production-aws-us-east-1c/run/1",
+ "start": 1600000000000,
+ "end": 1600000000000,
+ "status": "success",
+ "versions": {
+ "targetPlatform": "6.1.0",
+ "targetApplication": {
+ "build": 1,
+ "compileVersion": "6.1.0",
+ "sourceUrl": "repository1/tree/commit1",
+ "commit": "commit1"
+ }
+ },
+ "steps": [
+ {
+ "name": "deployReal",
+ "status": "succeeded"
+ },
+ {
+ "name": "installReal",
+ "status": "succeeded"
+ },
+ {
+ "name": "report",
+ "status": "succeeded"
+ }
+ ]
+ }
+ ],
+ "delayCause": null
+ }
+ ],
+ "builds": [
+ {
+ "build": 1,
+ "compileVersion": "6.1.0",
+ "sourceUrl": "repository1/tree/commit1",
+ "commit": "commit1",
+ "deployable": true,
+ "submittedAt": 1600000000000
+ }
+ ]
+}