diff options
author | Valerij Fredriksen <valerijf@oath.com> | 2019-01-18 09:40:31 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerij92@gmail.com> | 2019-02-09 20:15:39 +0100 |
commit | ff5095909fc442a0df65231a30c87aa9ae90b013 (patch) | |
tree | 8f532106e5b406100d54b20d0bb8b6c04ba715fa /node-admin | |
parent | 90143ca156692ff342e9c4d24452eb3ff7d1b138 (diff) |
Add Acl to NodeAgentContext
Diffstat (limited to 'node-admin')
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())), |