summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArnstein Ressem <aressem@gmail.com>2017-09-12 21:03:12 +0200
committerGitHub <noreply@github.com>2017-09-12 21:03:12 +0200
commit0f32c7c004e32a98d3b24047edefb017aa4e83fd (patch)
tree86c1837db892d98a6404ebee63dac8107f06d5f4
parent3ca4ca6f6f745f4824f371c2096e298689be31d3 (diff)
Revert "Remove ZMS/Athens client without principal"
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/Athens.java1
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/UnauthorizedZmsClient.java23
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/ZmsClientFactory.java2
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/mock/AthensMock.java8
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/mock/ZmsClientFactoryMock.java6
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java5
6 files changed, 41 insertions, 4 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/Athens.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/Athens.java
index 0635fb850b7..c1f72fa4370 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/Athens.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/Athens.java
@@ -17,6 +17,7 @@ public interface Athens {
AthensPrincipal principalFrom(UserId userId);
NTokenValidator validator();
NToken nTokenFrom(String rawToken);
+ UnauthorizedZmsClient unauthorizedZmsClient();
ZmsClientFactory zmsClientFactory();
AthensDomain screwdriverDomain();
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/UnauthorizedZmsClient.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/UnauthorizedZmsClient.java
new file mode 100644
index 00000000000..d1996bdbd45
--- /dev/null
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/UnauthorizedZmsClient.java
@@ -0,0 +1,23 @@
+// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.hosted.controller.api.integration.athens;
+
+import com.yahoo.vespa.hosted.controller.api.identifiers.AthensDomain;
+
+import java.util.List;
+
+/**
+ * @author gv
+ */
+public class UnauthorizedZmsClient {
+
+ private final ZmsClient client;
+
+ public UnauthorizedZmsClient(ZmsClientFactory zmsClientFactory) {
+ client = zmsClientFactory.createClientWithoutPrincipal();
+ }
+
+ public List<AthensDomain> getDomainList(String prefix) {
+ return client.getDomainList(prefix);
+ }
+
+}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/ZmsClientFactory.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/ZmsClientFactory.java
index e00f3ce2f64..24a2d67ebf6 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/ZmsClientFactory.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/ZmsClientFactory.java
@@ -8,4 +8,6 @@ public interface ZmsClientFactory {
ZmsClient createClientWithServicePrincipal();
ZmsClient createClientWithAuthorizedServiceToken(NToken authorizedServiceToken);
+
+ ZmsClient createClientWithoutPrincipal();
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/mock/AthensMock.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/mock/AthensMock.java
index 8bed95bfcd4..a993c6e3da3 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/mock/AthensMock.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/mock/AthensMock.java
@@ -11,6 +11,7 @@ import com.yahoo.vespa.hosted.controller.api.integration.athens.AthensPrincipal;
import com.yahoo.vespa.hosted.controller.api.integration.athens.InvalidTokenException;
import com.yahoo.vespa.hosted.controller.api.integration.athens.NToken;
import com.yahoo.vespa.hosted.controller.api.integration.athens.NTokenValidator;
+import com.yahoo.vespa.hosted.controller.api.integration.athens.UnauthorizedZmsClient;
import com.yahoo.vespa.hosted.controller.api.integration.athens.ZmsClientFactory;
/**
@@ -22,10 +23,12 @@ public class AthensMock extends AbstractComponent implements Athens {
private static final AthensDomain screwdriverDomain = new AthensDomain("screwdriver-domain");
private final ZmsClientFactory zmsClientFactory;
+ private final UnauthorizedZmsClient unauthorizedZmsClient;
private final NTokenValidator nTokenValidator;
public AthensMock(AthensDbMock athensDb, NTokenValidator nTokenValidator) {
this.zmsClientFactory = new ZmsClientFactoryMock(athensDb);
+ this.unauthorizedZmsClient = new UnauthorizedZmsClient(zmsClientFactory);
this.nTokenValidator = nTokenValidator;
}
@@ -64,6 +67,11 @@ public class AthensMock extends AbstractComponent implements Athens {
}
@Override
+ public UnauthorizedZmsClient unauthorizedZmsClient() {
+ return unauthorizedZmsClient;
+ }
+
+ @Override
public ZmsClientFactory zmsClientFactory() {
return zmsClientFactory;
}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/mock/ZmsClientFactoryMock.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/mock/ZmsClientFactoryMock.java
index 8bc8b29fb4c..73d971a27fe 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/mock/ZmsClientFactoryMock.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/athens/mock/ZmsClientFactoryMock.java
@@ -42,6 +42,12 @@ public class ZmsClientFactoryMock extends AbstractComponent implements ZmsClient
return new ZmsClientMock(athens);
}
+ @Override
+ public ZmsClient createClientWithoutPrincipal() {
+ log("createClientWithoutPrincipal()");
+ return new ZmsClientMock(athens);
+ }
+
private static void log(String format, Object... args) {
log.log(Level.INFO, String.format(format, args));
}
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java
index 68912ac55ef..dcb54f13e4b 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/Controller.java
@@ -15,7 +15,6 @@ import com.yahoo.vespa.hosted.controller.api.identifiers.Property;
import com.yahoo.vespa.hosted.controller.api.identifiers.PropertyId;
import com.yahoo.vespa.hosted.controller.api.integration.MetricsService;
import com.yahoo.vespa.hosted.controller.api.integration.athens.Athens;
-import com.yahoo.vespa.hosted.controller.api.integration.athens.ZmsClient;
import com.yahoo.vespa.hosted.controller.api.integration.chef.Chef;
import com.yahoo.vespa.hosted.controller.api.integration.configserver.ConfigServerClient;
import com.yahoo.vespa.hosted.controller.api.integration.cost.ApplicationCost;
@@ -86,7 +85,6 @@ public class Controller extends AbstractComponent {
private final MetricsService metricsService;
private final Chef chefClient;
private final Athens athens;
- private final ZmsClient zmsClient;
/**
* Creates a controller
@@ -142,7 +140,6 @@ public class Controller extends AbstractComponent {
this.chefClient = chefClient;
this.clock = clock;
this.athens = athens;
- this.zmsClient = athens.zmsClientFactory().createClientWithServicePrincipal();
applicationController = new ApplicationController(this, db, curator, rotationRepository, athens.zmsClientFactory(),
nameService, configServerClient, routingGenerator, clock);
@@ -157,7 +154,7 @@ public class Controller extends AbstractComponent {
public ApplicationController applications() { return applicationController; }
public List<AthensDomain> getDomainList(String prefix) {
- return zmsClient.getDomainList(prefix);
+ return athens.unauthorizedZmsClient().getDomainList(prefix);
}
public Athens athens() {