summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2019-01-18 09:40:31 +0100
committerValerij Fredriksen <valerij92@gmail.com>2019-02-09 20:15:39 +0100
commitff5095909fc442a0df65231a30c87aa9ae90b013 (patch)
tree8f532106e5b406100d54b20d0bb8b6c04ba715fa
parent90143ca156692ff342e9c4d24452eb3ff7d1b138 (diff)
Add Acl to NodeAgentContext
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContext.java7
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImpl.java19
2 files changed, 25 insertions, 1 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContext.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContext.java
index 2e9f58a2c31..496f4bd667d 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContext.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContext.java
@@ -6,6 +6,7 @@ import com.yahoo.vespa.athenz.api.AthenzService;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.node.admin.component.TaskContext;
import com.yahoo.vespa.hosted.node.admin.component.ZoneId;
+import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.Acl;
import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec;
import com.yahoo.vespa.hosted.node.admin.docker.DockerNetworking;
@@ -14,10 +15,16 @@ import java.nio.file.Paths;
public interface NodeAgentContext extends TaskContext {
+ /** @return node specification from node-repository */
NodeSpec node();
+ /** @return node ACL from node-repository */
+ Acl acl();
+
+ /** @return name of the docker container this context applies to */
ContainerName containerName();
+ /** @return hostname of the docker container this context applies to */
default HostName hostname() {
return HostName.from(node().getHostname());
}
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImpl.java
index 58414ab55f4..e3872d9cf31 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextImpl.java
@@ -7,6 +7,7 @@ import com.yahoo.config.provision.SystemName;
import com.yahoo.vespa.athenz.api.AthenzService;
import com.yahoo.vespa.hosted.dockerapi.ContainerName;
import com.yahoo.vespa.hosted.node.admin.component.ZoneId;
+import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.Acl;
import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec;
import com.yahoo.vespa.hosted.node.admin.docker.DockerNetworking;
import com.yahoo.vespa.hosted.provision.Node;
@@ -14,6 +15,7 @@ import com.yahoo.vespa.hosted.provision.Node;
import java.nio.file.FileSystem;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.Collections;
import java.util.Objects;
import java.util.Optional;
import java.util.logging.Level;
@@ -27,6 +29,7 @@ public class NodeAgentContextImpl implements NodeAgentContext {
private final String logPrefix;
private final NodeSpec node;
+ private final Acl acl;
private final ContainerName containerName;
private final AthenzService identity;
private final DockerNetworking dockerNetworking;
@@ -36,11 +39,12 @@ public class NodeAgentContextImpl implements NodeAgentContext {
private final String vespaUser;
private final String vespaUserOnHost;
- public NodeAgentContextImpl(NodeSpec node, AthenzService identity,
+ public NodeAgentContextImpl(NodeSpec node, Acl acl, AthenzService identity,
DockerNetworking dockerNetworking, ZoneId zoneId,
Path pathToContainerStorage, Path pathToVespaHome,
String vespaUser, String vespaUserOnHost) {
this.node = Objects.requireNonNull(node);
+ this.acl = Objects.requireNonNull(acl);
this.containerName = ContainerName.fromHostname(node.getHostname());
this.identity = Objects.requireNonNull(identity);
this.dockerNetworking = Objects.requireNonNull(dockerNetworking);
@@ -58,6 +62,11 @@ public class NodeAgentContextImpl implements NodeAgentContext {
}
@Override
+ public Acl acl() {
+ return acl;
+ }
+
+ @Override
public ContainerName containerName() {
return containerName;
}
@@ -133,6 +142,7 @@ public class NodeAgentContextImpl implements NodeAgentContext {
public String toString() {
return "NodeAgentContextImpl{" +
"node=" + node +
+ ", acl=" + acl +
", containerName=" + containerName +
", identity=" + identity +
", dockerNetworking=" + dockerNetworking +
@@ -147,6 +157,7 @@ public class NodeAgentContextImpl implements NodeAgentContext {
/** For testing only! */
public static class Builder {
private NodeSpec.Builder nodeSpecBuilder = new NodeSpec.Builder();
+ private Acl acl;
private AthenzService identity;
private DockerNetworking dockerNetworking;
private ZoneId zoneId;
@@ -177,6 +188,11 @@ public class NodeAgentContextImpl implements NodeAgentContext {
return this;
}
+ public Builder acl(Acl acl) {
+ this.acl = acl;
+ return this;
+ }
+
public Builder identity(AthenzService identity) {
this.identity = identity;
return this;
@@ -219,6 +235,7 @@ public class NodeAgentContextImpl implements NodeAgentContext {
public NodeAgentContextImpl build() {
return new NodeAgentContextImpl(
nodeSpecBuilder.build(),
+ Optional.ofNullable(acl).orElseGet(() -> new Acl(Collections.emptySet(), Collections.emptySet())),
Optional.ofNullable(identity).orElseGet(() -> new AthenzService("domain", "service")),
Optional.ofNullable(dockerNetworking).orElse(DockerNetworking.HOST_NETWORK),
Optional.ofNullable(zoneId).orElseGet(() -> new ZoneId(SystemName.dev, Environment.dev, RegionName.defaultName())),