diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2019-09-18 11:17:06 +0200 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2019-09-18 11:17:06 +0200 |
commit | 1f7631bd02a543d3ddb55294f0abe5fa5c938836 (patch) | |
tree | e1c58b54669e8107bd90f53e42d032f1ccba97f6 | |
parent | 58d1a577ed35a5415ea94b037de60e4211322245 (diff) |
More URI rewriting
2 files changed, 15 insertions, 7 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java index b40677a5dc9..69de59e55eb 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java @@ -347,11 +347,13 @@ public class InternalStepRunner implements StepRunner { if ( ! endpoints.containsKey(zoneId)) return false; - for (URI endpoint : endpoints.get(zoneId).values()) - if ( ! controller.jobController().cloud().ready(endpoint)) { - logger.log("Failed to get 100 consecutive OKs from " + endpoint); + for (URI endpoint : endpoints.get(zoneId).values()) { + URI workingEndpoint = controller.jobController().withWorkingSchemeAndPort(endpoint, id); + if ( ! controller.jobController().cloud().ready(workingEndpoint)) { + logger.log("Failed to get 100 consecutive OKs from " + workingEndpoint); return false; } + } return true; } diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java index 8ffcfb9c106..765cb465f50 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java @@ -447,15 +447,21 @@ public class JobController { /** Returns a URI of the tester endpoint retrieved from the routing generator, provided it matches an expected form. */ Optional<URI> testerEndpoint(RunId id) { DeploymentId testerId = new DeploymentId(id.tester().id(), id.type().zone(controller.system())); - boolean useHttp = controller.system().isPublic() - && ! directRoutingUseHttps.with(FetchVector.Dimension.APPLICATION_ID, id.tester().id().serializedForm()).value(); return controller.applications().getDeploymentEndpoints(testerId) .stream().findAny() .or(() -> controller.applications().routingPolicies().get(testerId).stream() .findAny() .map(policy -> policy.endpointIn(controller.system()).url())) - // TODO jvenstad: Remove ugly thing when public deployments have a valid web certificate. - .map(uri -> useHttp ? URI.create("http://" + uri.getHost() + ":443/") : uri); + .map(url -> withWorkingSchemeAndPort(url, id.tester().id())); + } + + // TODO jvenstad: Remove ugly thing when public deployments have a valid web certificate. + URI withWorkingSchemeAndPort(URI url, ApplicationId id) { + if ( ! controller.system().isPublic() + || directRoutingUseHttps.with(FetchVector.Dimension.APPLICATION_ID, id.serializedForm()).value()) + return url; + + return URI.create("http://" + url.getHost() + ":443/"); } /** Returns a set containing the zone of the deployment tested in the given run, and all production zones for the application. */ |