From 96aeb3d743a51a95ba83363a31ed71c404fc82b2 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Fri, 5 Apr 2019 11:58:19 +0200 Subject: Include more context (keys) in application/v4 responses --- .../restapi/application/ApplicationApiHandler.java | 17 +++++++++++++---- .../responses/application-cluster-global-rotation.json | 1 + .../application/responses/application-reference-2.json | 1 + .../application/responses/application-reference.json | 1 + ...application-without-change-multiple-deployments.json | 13 +++++++------ .../restapi/application/responses/application.json | 7 ++++--- .../application/responses/application1-recursive.json | 1 + .../responses/application2-with-majorVersion.json | 1 + .../restapi/application/responses/application2.json | 1 + .../restapi/application/responses/deployment.json | 5 +++++ .../restapi/application/responses/dev-us-west-1.json | 4 +++- .../application/responses/prod-us-central-1.json | 8 +++++--- .../application/responses/tenant-with-application.json | 1 + 13 files changed, 44 insertions(+), 17 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 fb27247c48a..8f58827d33a 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 @@ -367,6 +367,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { } private void toSlime(Cursor object, Application application, HttpRequest request) { + object.setString("tenant", application.id().tenant().value()); object.setString("application", application.id().application().value()); object.setString("instance", application.id().instance().value()); object.setString("deployments", withPath("/application/v4" + @@ -456,21 +457,22 @@ public class ApplicationApiHandler extends LoggingRequestHandler { for (Deployment deployment : deployments) { Cursor deploymentObject = instancesArray.addObject(); - deploymentObject.setString("environment", deployment.zone().environment().value()); - deploymentObject.setString("region", deployment.zone().region().value()); - deploymentObject.setString("instance", application.id().instance().value()); // pointless if (application.rotation().isPresent() && deployment.zone().environment() == Environment.prod) { toSlime(application.rotationStatus(deployment), deploymentObject); } if (recurseOverDeployments(request)) // List full deployment information when recursive. toSlime(deploymentObject, new DeploymentId(application.id(), deployment.zone()), deployment, request); - else + else { + deploymentObject.setString("environment", deployment.zone().environment().value()); + deploymentObject.setString("region", deployment.zone().region().value()); + deploymentObject.setString("instance", application.id().instance().value()); // pointless deploymentObject.setString("url", withPath(request.getUri().getPath() + "/environment/" + deployment.zone().environment().value() + "/region/" + deployment.zone().region().value() + "/instance/" + application.id().instance().value(), request.getUri()).toString()); + } } // Metrics @@ -516,6 +518,12 @@ public class ApplicationApiHandler extends LoggingRequestHandler { private void toSlime(Cursor response, DeploymentId deploymentId, Deployment deployment, HttpRequest request) { + response.setString("tenant", deploymentId.applicationId().tenant().value()); + response.setString("application", deploymentId.applicationId().application().value()); + response.setString("instance", deploymentId.applicationId().instance().value()); // pointless + response.setString("environment", deploymentId.zoneId().environment().value()); + response.setString("region", deploymentId.zoneId().region().value()); + Cursor serviceUrlArray = response.setArray("serviceUrls"); controller.applications().getDeploymentEndpoints(deploymentId) .ifPresent(endpoints -> endpoints.forEach(endpoint -> serviceUrlArray.addString(endpoint.toString()))); @@ -1154,6 +1162,7 @@ public class ApplicationApiHandler extends LoggingRequestHandler { } private void toSlime(Application application, Cursor object, HttpRequest request) { + object.setString("tenant", application.id().tenant().value()); object.setString("application", application.id().application().value()); object.setString("instance", application.id().instance().value()); object.setString("url", withPath("/application/v4/tenant/" + application.id().tenant().value() + diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-cluster-global-rotation.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-cluster-global-rotation.json index c31a47cb5b2..cd531bb96da 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-cluster-global-rotation.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-cluster-global-rotation.json @@ -1,4 +1,5 @@ { + "tenant": "tenant1", "application": "application1", "instance": "default", "deployments": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/instance/default/job/", diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-reference-2.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-reference-2.json index a4026d6a812..ff22b95739d 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-reference-2.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-reference-2.json @@ -1,4 +1,5 @@ { + "tenant": "tenant2", "application": "application2", "instance": "default", "url": "http://localhost:8080/application/v4/tenant/tenant2/application/application2" diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-reference.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-reference.json index 1ec229a2b4a..1d56944f6bc 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-reference.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-reference.json @@ -1,4 +1,5 @@ { + "tenant": "tenant1", "application":"application1", "instance":"default", "url":"http://localhost:8080/application/v4/tenant/tenant1/application/application1" diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-without-change-multiple-deployments.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-without-change-multiple-deployments.json index 9f65b5952e1..f2f38f7f509 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-without-change-multiple-deployments.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application-without-change-multiple-deployments.json @@ -1,4 +1,5 @@ { + "tenant": "tenant1", "application": "application1", "instance": "default", "deployments": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/instance/default/job/", @@ -237,21 +238,21 @@ "rotationId": "rotation-id-1", "instances": [ { - "environment": "prod", - "region": "us-west-1", - "instance": "default", "bcpStatus": { "rotationStatus": "IN" }, + "environment": "prod", + "region": "us-west-1", + "instance": "default", "url": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/environment/prod/region/us-west-1/instance/default" }, { - "environment": "prod", - "region": "us-east-3", - "instance": "default", "bcpStatus": { "rotationStatus": "UNKNOWN" }, + "environment": "prod", + "region": "us-east-3", + "instance": "default", "url": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/environment/prod/region/us-east-3/instance/default" } ], diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application.json index 3744e44152a..22e8573b1d4 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application.json @@ -1,4 +1,5 @@ { + "tenant": "tenant1", "application": "application1", "instance": "default", "deployments": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/instance/default/job/", @@ -231,12 +232,12 @@ "url": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/environment/dev/region/us-west-1/instance/default" }, { - "environment": "prod", - "region": "us-central-1", - "instance": "default", "bcpStatus": { "rotationStatus": "UNKNOWN" }, + "environment": "prod", + "region": "us-central-1", + "instance": "default", "url": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/environment/prod/region/us-central-1/instance/default" } ], diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application1-recursive.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application1-recursive.json index 822bc447d8d..662e045d169 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application1-recursive.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application1-recursive.json @@ -1,4 +1,5 @@ { + "tenant": "tenant1", "application": "application1", "instance": "default", "deployments": "http://localhost:8080/application/v4/tenant/tenant1/application/application1/instance/default/job/", diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application2-with-majorVersion.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application2-with-majorVersion.json index 55803074ade..1477e18b4b8 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application2-with-majorVersion.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/application2-with-majorVersion.json @@ -1,4 +1,5 @@ { + "tenant": "tenant2", "application": "application2", "instance": "default", "deployments": "http://localhost:8080/application/v4/tenant/tenant2/application/application2/instance/default/job/", 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 2c34e5ae712..3063bb62b7e 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 @@ -1,4 +1,5 @@ { + "tenant": "tenant2", "application": "application2", "instance": "default", "deployments": "http://localhost:8080/application/v4/tenant/tenant2/application/application2/instance/default/job/", 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 ac1797986fc..af21260676c 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 @@ -1,4 +1,9 @@ { + "tenant": "tenant1", + "application": "application1", + "instance": "default", + "environment": "prod", + "region": "us-central-1", "serviceUrls": [ "http://old-endpoint.vespa.yahooapis.com:4080", "http://qrs-endpoint.vespa.yahooapis.com:4080", diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-west-1.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-west-1.json index 65ea3925d8c..54e94c4521e 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-west-1.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/dev-us-west-1.json @@ -1,7 +1,9 @@ { + "tenant": "tenant1", + "application": "application1", + "instance": "default", "environment": "dev", "region": "us-west-1", - "instance": "default", "serviceUrls": [ "http://old-endpoint.vespa.yahooapis.com:4080", "http://qrs-endpoint.vespa.yahooapis.com:4080", 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 a3380d823f3..cfefe629b9a 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 @@ -1,10 +1,12 @@ { - "environment": "prod", - "region": "us-central-1", - "instance": "default", "bcpStatus": { "rotationStatus": "UNKNOWN" }, + "tenant": "tenant1", + "application": "application1", + "instance": "default", + "environment": "prod", + "region": "us-central-1", "serviceUrls": [ "http://old-endpoint.vespa.yahooapis.com:4080", "http://qrs-endpoint.vespa.yahooapis.com:4080", diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant-with-application.json b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant-with-application.json index ad8e65692b4..b222c33291c 100644 --- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant-with-application.json +++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/restapi/application/responses/tenant-with-application.json @@ -5,6 +5,7 @@ "property": "property1", "applications": [ { + "tenant": "tenant1", "application":"application1", "instance":"default", "url":"http://localhost:8080/application/v4/tenant/tenant1/application/application1" -- cgit v1.2.3