diff options
author | Valerij Fredriksen <freva@users.noreply.github.com> | 2020-01-16 09:13:40 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-16 09:13:40 +0100 |
commit | 347cc1b133a566006a9edd980c15b263014d184b (patch) | |
tree | 556a86cc9e952a257ff3e9205db77261b9c2dd1b /controller-server | |
parent | 1032436c17935fa0da7aadf75cce6a51e0197756 (diff) | |
parent | 46ba71c23d5a11a0307e82bbb470f7fde7a78214 (diff) |
Merge pull request #11784 from vespa-engine/jvenstad/dummy-deployments-in-instance-deployments-response
Add dummy objects for new deployments to list in instance response.
Diffstat (limited to 'controller-server')
4 files changed, 31 insertions, 3 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 62f97c24071..b8e10b737e3 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 @@ -954,6 +954,8 @@ public class ApplicationApiHandler extends LoggingRequestHandler { if (!instance.rotations().isEmpty()) { toSlime(instance.rotations(), instance.rotationStatus(), deployment, deploymentObject); } + + } if (recurseOverDeployments(request)) // List full deployment information when recursive. @@ -968,6 +970,17 @@ public class ApplicationApiHandler extends LoggingRequestHandler { request.getUri()).toString()); } } + // Add dummy values for not-yet-existent prod deployments. + status.jobSteps().keySet().stream() + .filter(job -> job.application().instance().equals(instance.name())) + .filter(job -> job.type().isProduction() && job.type().isDeployment()) + .map(job -> job.type().zone(controller.system())) + .filter(zone -> ! instance.deployments().containsKey(zone)) + .forEach(zone -> { + Cursor deploymentObject = instancesArray.addObject(); + deploymentObject.setString("environment", zone.environment().value()); + deploymentObject.setString("region", zone.region().value()); + }); // TODO jonmv: Remove when clients are updated application.deployKeys().stream().findFirst().ifPresent(key -> object.setString("pemDeployKey", KeyUtils.toPem(key))); 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 546b97dbaab..96441774df7 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 @@ -135,7 +135,6 @@ class JobControllerApiHandlerHelper { Deployment deployment = instance.deployments().get(zone); if (deployment != null) deploymentToSlime(deploymentsObject.setObject(zone.region().value()), - instance, change, pendingProduction, running, @@ -239,7 +238,7 @@ class JobControllerApiHandlerHelper { lastApplicationObject.setString("pending", "Waiting for current deployment to complete"); } - private static void deploymentToSlime(Cursor deploymentObject, Instance instance, Change change, + private static void deploymentToSlime(Cursor deploymentObject, Change change, Map<JobType, Versions> pendingProduction, Map<JobType, Run> running, JobType type, JobStatus jobStatus, Deployment deployment) { deploymentObject.setLong("at", deployment.at().toEpochMilli()); 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 d1197be4392..fd8bc256ac5 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 @@ -270,6 +270,14 @@ "region": "us-central-1", "instance": "instance1", "url": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/instance/instance1/environment/prod/region/us-central-1" + }, + { + "environment": "prod", + "region": "us-east-3" + }, + { + "environment": "prod", + "region": "us-west-1" } ], "pemDeployKeys": [], 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 fb77cfef270..ee75d129241 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 @@ -248,7 +248,15 @@ "rotationId": "rotation-id-1", "instances": [ @include(dev-us-east-1.json), - @include(prod-us-central-1.json) + @include(prod-us-central-1.json), + { + "environment": "prod", + "region": "us-east-3" + }, + { + "environment": "prod", + "region": "us-west-1" + } ], "pemDeployKeys": [], "metrics": { |