diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2019-05-23 14:34:46 +0200 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2019-05-23 14:34:46 +0200 |
commit | 39c819c409776fe21c370a33773f57b034d90961 (patch) | |
tree | c8961f323b0f6c045a3080079ed040bd6128a4fa /controller-server | |
parent | e633f02a605128582bc7719defe0cb7c8f931de1 (diff) |
Render info about last dev/perf deployment jobs in overview
Diffstat (limited to 'controller-server')
5 files changed, 55 insertions, 2 deletions
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 5e854f4cfad..ef7510ad18c 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 @@ -134,6 +134,17 @@ class JobControllerApiHandlerHelper { running, baseUriForJobs.resolve(baseUriForJobs.getPath() + "/" + type.jobName()).normalize()); }); + + Cursor devJobsObject = responseObject.setObject("devJobs"); + for (JobType type : JobType.allIn(controller.system())) + if ( type.environment() != null + && type.environment().isManuallyDeployed() + && application.deployments().containsKey(type.zone(controller.system()))) + controller.jobController().last(application.id(), type) + .ifPresent(last -> runToSlime(devJobsObject.setObject(type.jobName()), + last, + baseUriForJobs.resolve(baseUriForJobs.getPath() + "/" + type.jobName()).normalize())); + return new SlimeJsonResponse(slime); } 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 8580677431c..616db640132 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 @@ -120,6 +120,20 @@ public class JobControllerApiHandlerHelperTest { assertResponse(JobControllerApiHandlerHelper.runResponse(tester.jobs().runs(appId, devAwsUsEast2a), URI.create("https://some.url:43/root")), "dev-aws-us-east-2a-runs.json"); } + @Test + public void testDevResponses() { + InternalDeploymentTester tester = new InternalDeploymentTester(); + tester.clock().setInstant(Instant.EPOCH); + + ZoneId zone = JobType.devUsEast1.zone(tester.tester().controller().system()); + tester.jobs().deploy(appId, JobType.devUsEast1, Optional.empty(), applicationPackage); + tester.configServer().convergeServices(appId, zone); + tester.setEndpoints(appId, zone); + tester.runner().run(); + + assertResponse(JobControllerApiHandlerHelper.jobTypeResponse(tester.tester().controller(), appId, URI.create("https://some.url:43/root")), "dev-overview.json"); + } + private void compare(HttpResponse response, String expected) throws JSONException, IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); response.render(baos); diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-overview.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-overview.json new file mode 100644 index 00000000000..c845d31a5fc --- /dev/null +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-overview.json @@ -0,0 +1,25 @@ +{ + "deployments": [], + "jobs": {}, + "devJobs": { + "dev-us-east-1": { + "id": 1, + "status": "success", + "start": 0, + "end": 0, + "wantedPlatform": "6.1", + "wantedApplication": { + "hash": "unknown" + }, + "steps": { + "deployReal": "succeeded", + "installReal": "succeeded" + }, + "tasks": { + "deploy": "succeeded", + "install": "succeeded" + }, + "log": "https://some.url:43/root/dev-us-east-1/run/1" + } + } +} diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/jobs.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/jobs.json index 72dd13474dc..a5e4dd23079 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/jobs.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/jobs.json @@ -128,5 +128,7 @@ ], "url": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/instance/default/job/production-us-west-1" } - } + }, + "devJobs": {} } + diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview.json index 84866650afc..a8ec9295868 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/overview.json @@ -739,5 +739,6 @@ ], "url": "https://some.url:43/root/production-us-east-3" } - } + }, + "devJobs": {} } |