diff options
author | Valerij Fredriksen <freva@users.noreply.github.com> | 2022-02-28 12:34:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-28 12:34:39 +0100 |
commit | 4e5a58e1ff5d3caaedd1e9b969fd0297517cab15 (patch) | |
tree | 3fde348bbbf4f143c04580b8ad3183a4e5048cd7 /controller-server | |
parent | e0347064b1411fb294b2cd1a33e0b85f0d4d23e7 (diff) | |
parent | 8799eb72387e274b30670fd929f23b4f7bdd61c5 (diff) |
Merge pull request #21348 from vespa-engine/freva/app-format
Application version JSON serialization
Diffstat (limited to 'controller-server')
15 files changed, 31 insertions, 191 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 13c5f978298..72e5a0dfc64 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 @@ -1190,7 +1190,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { request.getUri()).toString()); DeploymentStatus status = controller.jobController().deploymentStatus(application); - application.latestVersion().ifPresent(version -> toSlime(version, object.setObject("latestVersion"))); + application.latestVersion().ifPresent(version -> JobControllerApiHandlerHelper.toSlime(object.setObject("latestVersion"), version)); application.projectId().ifPresent(id -> object.setLong("projectId", id)); @@ -1314,7 +1314,6 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { request.getUri()).toString()); application.latestVersion().ifPresent(version -> { - sourceRevisionToSlime(version.source(), object.setObject("source")); version.sourceUrl().ifPresent(url -> object.setString("sourceUrl", url)); version.commit().ifPresent(commit -> object.setString("commit", commit)); }); @@ -1451,7 +1450,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { change.platform().ifPresent(version -> object.setString("version", version.toString())); change.application() .filter(version -> !version.isUnknown()) - .ifPresent(version -> toSlime(version, object.setObject("revision"))); + .ifPresent(version -> JobControllerApiHandlerHelper.toSlime(object.setObject("revision"), version)); } private void toSlime(Endpoint endpoint, Cursor object) { @@ -1503,7 +1502,6 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { .ifPresent(deploymentTimeToLive -> response.setLong("expiryTimeEpochMs", lastDeploymentStart.plus(deploymentTimeToLive).toEpochMilli())); application.projectId().ifPresent(i -> response.setString("screwdriverId", String.valueOf(i))); - sourceRevisionToSlime(deployment.applicationVersion().source(), response); var instance = application.instances().get(deploymentId.applicationId().instance()); if (instance != null) { @@ -1516,7 +1514,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { .map(type -> new JobId(instance.id(), type)) .map(status.jobSteps()::get) .ifPresent(stepStatus -> { - JobControllerApiHandlerHelper.applicationVersionToSlime( + JobControllerApiHandlerHelper.toSlime( response.setObject("applicationVersion"), deployment.applicationVersion()); if (!status.jobsToRun().containsKey(stepStatus.job().get())) response.setString("status", "complete"); @@ -1564,23 +1562,6 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { .stream().findFirst().orElse(deployment.at()); } - private void toSlime(ApplicationVersion applicationVersion, Cursor object) { - if ( ! applicationVersion.isUnknown()) { - object.setLong("buildNumber", applicationVersion.buildNumber().getAsLong()); - object.setString("hash", applicationVersion.id()); - sourceRevisionToSlime(applicationVersion.source(), object.setObject("source")); - applicationVersion.sourceUrl().ifPresent(url -> object.setString("sourceUrl", url)); - applicationVersion.commit().ifPresent(commit -> object.setString("commit", commit)); - } - } - - private void sourceRevisionToSlime(Optional<SourceRevision> revision, Cursor object) { - if (revision.isEmpty()) return; - object.setString("gitRepository", revision.get().repository()); - object.setString("gitBranch", revision.get().branch()); - object.setString("gitCommit", revision.get().commit()); - } - private void toSlime(RotationState state, Cursor object) { Cursor bcpStatus = object.setObject("bcpStatus"); bcpStatus.setString("rotationStatus", rotationStateString(state)); @@ -2519,7 +2500,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler { object.setLong("id", run.id().number()); object.setString("version", run.versions().targetPlatform().toFullString()); if ( ! run.versions().targetApplication().isUnknown()) - toSlime(run.versions().targetApplication(), object.setObject("revision")); + JobControllerApiHandlerHelper.toSlime(object.setObject("revision"), run.versions().targetApplication()); object.setString("reason", "unknown reason"); object.setLong("at", run.end().orElse(run.start()).toEpochMilli()); } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java index 659cfc6e39d..648d03a54d7 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/JobControllerApiHandlerHelper.java @@ -102,22 +102,6 @@ class JobControllerApiHandlerHelper { return new SlimeJsonResponse(slime); } - static void applicationVersionToSlime(Cursor versionObject, ApplicationVersion version) { - versionObject.setString("hash", version.id()); - if (version.isUnknown()) - return; - - versionObject.setLong("build", version.buildNumber().getAsLong()); - Cursor sourceObject = versionObject.setObject("source"); - version.source().ifPresent(source -> { - sourceObject.setString("gitRepository", source.repository()); - sourceObject.setString("gitBranch", source.branch()); - sourceObject.setString("gitCommit", source.commit()); - }); - version.sourceUrl().ifPresent(url -> versionObject.setString("sourceUrl", url)); - version.commit().ifPresent(commit -> versionObject.setString("commit", commit)); - } - /** * @return Response with logs from a single run */ @@ -380,12 +364,12 @@ class JobControllerApiHandlerHelper { } Cursor buildsArray = responseObject.setArray("builds"); - application.versions().stream().sorted(reverseOrder()).forEach(version -> applicationVersionToSlime(buildsArray.addObject(), version)); + application.versions().stream().sorted(reverseOrder()).forEach(version -> toSlime(buildsArray.addObject(), version)); return new SlimeJsonResponse(slime); } - private static void toSlime(Cursor versionObject, ApplicationVersion version) { + static void toSlime(Cursor versionObject, ApplicationVersion version) { version.buildNumber().ifPresent(id -> versionObject.setLong("build", id)); version.compileVersion().ifPresent(platform -> versionObject.setString("compileVersion", platform.toFullString())); version.sourceUrl().ifPresent(url -> versionObject.setString("sourceUrl", url)); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/testdata/complete-application.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/testdata/complete-application.json index 19df8059cf8..29f748d5408 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/testdata/complete-application.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/persistence/testdata/complete-application.json @@ -6,12 +6,7 @@ "validationOverrides": "<validation-overrides>\n <allow until=\"2016-04-28\" comment=\"Renaming content cluster\">content-cluster-removal</allow>\n <allow until=\"2016-08-22\" comment=\"Migrating us-east-3 to C-2E\">cluster-size-reduction</allow>\n <allow until=\"2017-06-30\" comment=\"Test Vespa upgrade tests\">force-automatic-tenant-upgrade-test</allow>\n</validation-overrides>\n", "projectId": 102889, "deployingField": { - "buildNumber": 42, - "sourceRevision": { - "repositoryField": "git@git.host:user/repo.git", - "branchField": "origin/master", - "commitField": "234f3e4e77049d0b9538c9e1b356d17eb1dedb6a" - } + "build": 42 }, "outstandingChangeField": false, "queryQuality": 100, diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application2-with-patches.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application2-with-patches.json index df3f9699677..c8f5b7bf50a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application2-with-patches.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application2-with-patches.json @@ -3,13 +3,8 @@ "application": "application2", "deployments": "http://localhost:8080/application/v4/tenant/tenant2/application/application2/job/", "latestVersion": { - "buildNumber": 1, - "hash": "1.0.1-commit1", - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "build": 1, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" }, @@ -24,13 +19,8 @@ "instance": "instance1", "deploying": { "revision": { - "buildNumber": 1, - "hash": "1.0.1-commit1", - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "build": 1, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application2.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application2.json index 9ef46247629..7aae1815dac 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application2.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application2.json @@ -3,13 +3,8 @@ "application": "application2", "deployments": "http://localhost:8080/application/v4/tenant/tenant2/application/application2/job/", "latestVersion": { - "buildNumber": 1, - "hash": "1.0.1-commit1", - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "build": 1, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" }, @@ -23,13 +18,8 @@ "instance": "instance1", "deploying": { "revision": { - "buildNumber": 1, - "hash": "1.0.1-commit1", - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "build": 1, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-cloud.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-cloud.json index fd4093ca332..74f41524d3e 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-cloud.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-cloud.json @@ -21,17 +21,9 @@ "revision": "1.0.1-commit1", "deployTimeEpochMs": "(ignore)", "screwdriverId": "1000", - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1", "applicationVersion": { - "hash": "1.0.1-commit1", "build": 1, - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" }, diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview-2.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview-2.json index 55b3a8b388f..b05be36a24a 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview-2.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview-2.json @@ -1232,35 +1232,20 @@ ], "builds": [ { - "hash": "1.0.3-commit1", "build": 3, - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" }, { - "hash": "1.0.2-commit1", "build": 2, - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" }, { - "hash": "1.0.1-commit1", "build": 1, - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview.json index da1ccbd56e9..e896a2feba1 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-overview.json @@ -678,46 +678,26 @@ ], "builds": [ { - "hash": "1.0.4-commit1", "build": 4, - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" }, { - "hash": "1.0.3-commit1", "build": 3, - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" }, { - "hash": "1.0.2-commit1", "build": 2, - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" }, { - "hash": "1.0.1-commit1", "build": 1, - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-with-routing-policy.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-with-routing-policy.json index 4457bede34e..3f70ae1e303 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-with-routing-policy.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-with-routing-policy.json @@ -21,17 +21,9 @@ "revision": "1.0.1-commit1", "deployTimeEpochMs": "(ignore)", "screwdriverId": "1000", - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1", "applicationVersion": { - "hash": "1.0.1-commit1", "build": 1, - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" }, diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-without-shared-endpoints.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-without-shared-endpoints.json index 39b8c779184..860fe541682 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-without-shared-endpoints.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment-without-shared-endpoints.json @@ -21,17 +21,9 @@ "revision": "1.0.1-commit1", "deployTimeEpochMs": "(ignore)", "screwdriverId": "1000", - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1", "applicationVersion": { - "hash": "1.0.1-commit1", "build": 1, - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" }, diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment.json index 621617f1b1c..315b1af25c7 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/deployment.json @@ -37,9 +37,6 @@ "revision": "(ignore)", "deployTimeEpochMs": "(ignore)", "screwdriverId": "123", - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1", "endpointStatus": [ { "endpointId": "default", @@ -50,13 +47,8 @@ } ], "applicationVersion": { - "hash": "1.0.1-commit1", "build": 1, - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" }, diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/instance-with-routing-policy.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/instance-with-routing-policy.json index e3f70e84f43..afac12a191b 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/instance-with-routing-policy.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/instance-with-routing-policy.json @@ -3,11 +3,6 @@ "application": "application1", "instance": "instance1", "deployments": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/instance/instance1/job/", - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, "sourceUrl": "repository1/tree/commit1", "commit": "commit1", "projectId": 1000, diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/instance.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/instance.json index bcbdf448ad5..b98de97856d 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/instance.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/instance.json @@ -3,23 +3,13 @@ "application": "application1", "instance": "instance1", "deployments": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/instance/instance1/job/", - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, "sourceUrl": "repository1/tree/commit1", "commit": "commit1", "projectId": 123, "deploying": { "revision": { - "buildNumber": 1, - "hash": "1.0.1-commit1", - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "build": 1, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/instance1-recursive.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/instance1-recursive.json index 0c4f046f45c..a697c667ab0 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/instance1-recursive.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/instance1-recursive.json @@ -3,23 +3,13 @@ "application": "application1", "instance": "instance1", "deployments": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/instance/instance1/job/", - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, "sourceUrl": "repository1/tree/commit1", "commit": "commit1", "projectId": 123, "deploying": { "revision": { - "buildNumber": 1, - "hash": "1.0.1-commit1", - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "build": 1, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" } diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/prod-us-central-1.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/prod-us-central-1.json index d9ec8e4dfef..2daa7f54cf6 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/prod-us-central-1.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/prod-us-central-1.json @@ -40,9 +40,6 @@ "revision": "(ignore)", "deployTimeEpochMs": "(ignore)", "screwdriverId": "123", - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1", "endpointStatus": [ { "endpointId": "default", @@ -53,13 +50,8 @@ } ], "applicationVersion": { - "hash": "1.0.1-commit1", "build": 1, - "source": { - "gitRepository": "repository1", - "gitBranch": "master", - "gitCommit": "commit1" - }, + "compileVersion": "6.1.0", "sourceUrl": "repository1/tree/commit1", "commit": "commit1" }, |