diff options
author | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-02-21 14:19:42 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-02-22 12:29:21 +0100 |
commit | e6c2211d07919c7cfde353feda4d9688533f3517 (patch) | |
tree | 210ea5c54777f08fbb4164a99c0bd3d47f954641 /node-admin | |
parent | 8bd7b6534fab28d507629fca1c109fff65585c40 (diff) |
Move Owner and Membership to upper level
Diffstat (limited to 'node-admin')
7 files changed, 176 insertions, 160 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeMembership.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeMembership.java new file mode 100644 index 00000000000..bb16e2bae63 --- /dev/null +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeMembership.java @@ -0,0 +1,77 @@ +// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.hosted.node.admin.configserver.noderepository; + +/** + * @author freva + */ +public class NodeMembership { + private final String clusterType; + private final String clusterId; + private final String group; + private final int index; + private final boolean retired; + + public NodeMembership(String clusterType, String clusterId, String group, int index, boolean retired) { + this.clusterType = clusterType; + this.clusterId = clusterId; + this.group = group; + this.index = index; + this.retired = retired; + } + + public String getClusterType() { + return clusterType; + } + + public String getClusterId() { + return clusterId; + } + + public String getGroup() { + return group; + } + + public int getIndex() { + return index; + } + + public boolean isRetired() { + return retired; + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + NodeMembership that = (NodeMembership) o; + + if (index != that.index) return false; + if (retired != that.retired) return false; + if (!clusterType.equals(that.clusterType)) return false; + if (!clusterId.equals(that.clusterId)) return false; + return group.equals(that.group); + + } + + @Override + public int hashCode() { + int result = clusterType.hashCode(); + result = 31 * result + clusterId.hashCode(); + result = 31 * result + group.hashCode(); + result = 31 * result + index; + result = 31 * result + (retired ? 1 : 0); + return result; + } + + @Override + public String toString() { + return "Membership {" + + " clusterType = " + clusterType + + " clusterId = " + clusterId + + " group = " + group + + " index = " + index + + " retired = " + retired + + " }"; + } +} diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeOwner.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeOwner.java new file mode 100644 index 00000000000..c1900316bb9 --- /dev/null +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeOwner.java @@ -0,0 +1,64 @@ +// Copyright 2019 Oath Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.hosted.node.admin.configserver.noderepository; + +import com.yahoo.config.provision.ApplicationId; + +/** + * @author freva + */ +public class NodeOwner { + private final String tenant; + private final String application; + private final String instance; + + public NodeOwner(String tenant, String application, String instance) { + this.tenant = tenant; + this.application = application; + this.instance = instance; + } + + public String getTenant() { + return tenant; + } + + public String getApplication() { + return application; + } + + public String getInstance() { + return instance; + } + + public ApplicationId asApplicationId() { + return ApplicationId.from(tenant, application, instance); + } + + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + + NodeOwner owner = (NodeOwner) o; + + if (!tenant.equals(owner.tenant)) return false; + if (!application.equals(owner.application)) return false; + return instance.equals(owner.instance); + + } + + @Override + public int hashCode() { + int result = tenant.hashCode(); + result = 31 * result + application.hashCode(); + result = 31 * result + instance.hashCode(); + return result; + } + + public String toString() { + return "Owner {" + + " tenant = " + tenant + + " application = " + application + + " instance = " + instance + + " }"; + } +} diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java index ac65ac8af35..1127df2e413 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/NodeSpec.java @@ -2,7 +2,6 @@ package com.yahoo.vespa.hosted.node.admin.configserver.noderepository; import com.fasterxml.jackson.databind.JsonNode; -import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.NodeType; import com.yahoo.vespa.hosted.dockerapi.DockerImage; import com.yahoo.vespa.hosted.provision.Node; @@ -45,8 +44,8 @@ public class NodeSpec { private final Optional<Boolean> allowedToBeDown; private final Optional<Boolean> wantToDeprovision; - private final Optional<Owner> owner; - private final Optional<Membership> membership; + private final Optional<NodeOwner> owner; + private final Optional<NodeMembership> membership; private final double minCpuCores; private final double minMainMemoryAvailableGb; @@ -75,8 +74,8 @@ public class NodeSpec { Optional<String> currentOsVersion, Optional<Boolean> allowedToBeDown, Optional<Boolean> wantToDeprovision, - Optional<Owner> owner, - Optional<Membership> membership, + Optional<NodeOwner> owner, + Optional<NodeMembership> membership, Optional<Long> wantedRestartGeneration, Optional<Long> currentRestartGeneration, long wantedRebootGeneration, @@ -206,11 +205,11 @@ public class NodeSpec { return wantToDeprovision; } - public Optional<Owner> getOwner() { + public Optional<NodeOwner> getOwner() { return owner; } - public Optional<Membership> getMembership() { + public Optional<NodeMembership> getMembership() { return membership; } @@ -358,135 +357,6 @@ public class NodeSpec { + " }"; } - public static class Owner { - private final String tenant; - private final String application; - private final String instance; - - public Owner(String tenant, String application, String instance) { - this.tenant = tenant; - this.application = application; - this.instance = instance; - } - - public String getTenant() { - return tenant; - } - - public String getApplication() { - return application; - } - - public String getInstance() { - return instance; - } - - public ApplicationId asApplicationId() { - return ApplicationId.from(tenant, application, instance); - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - Owner owner = (Owner) o; - - if (!tenant.equals(owner.tenant)) return false; - if (!application.equals(owner.application)) return false; - return instance.equals(owner.instance); - - } - - @Override - public int hashCode() { - int result = tenant.hashCode(); - result = 31 * result + application.hashCode(); - result = 31 * result + instance.hashCode(); - return result; - } - - public String toString() { - return "Owner {" + - " tenant = " + tenant + - " application = " + application + - " instance = " + instance + - " }"; - } - } - - public static class Membership { - private final String clusterType; - private final String clusterId; - private final String group; - private final int index; - private final boolean retired; - - public Membership(String clusterType, String clusterId, String group, int index, boolean retired) { - this.clusterType = clusterType; - this.clusterId = clusterId; - this.group = group; - this.index = index; - this.retired = retired; - } - - public String getClusterType() { - return clusterType; - } - - public String getClusterId() { - return clusterId; - } - - public String getGroup() { - return group; - } - - public int getIndex() { - return index; - } - - public boolean isRetired() { - return retired; - } - - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - - Membership that = (Membership) o; - - if (index != that.index) return false; - if (retired != that.retired) return false; - if (!clusterType.equals(that.clusterType)) return false; - if (!clusterId.equals(that.clusterId)) return false; - return group.equals(that.group); - - } - - @Override - public int hashCode() { - int result = clusterType.hashCode(); - result = 31 * result + clusterId.hashCode(); - result = 31 * result + group.hashCode(); - result = 31 * result + index; - result = 31 * result + (retired ? 1 : 0); - return result; - } - - @Override - public String toString() { - return "Membership {" + - " clusterType = " + clusterType + - " clusterId = " + clusterId + - " group = " + group + - " index = " + index + - " retired = " + retired + - " }"; - } - } - public static class Builder { private String hostname; private Optional<DockerImage> wantedDockerImage = Optional.empty(); @@ -501,8 +371,8 @@ public class NodeSpec { private Optional<String> currentOsVersion = Optional.empty(); private Optional<Boolean> allowedToBeDown = Optional.empty(); private Optional<Boolean> wantToDeprovision = Optional.empty(); - private Optional<Owner> owner = Optional.empty(); - private Optional<Membership> membership = Optional.empty(); + private Optional<NodeOwner> owner = Optional.empty(); + private Optional<NodeMembership> membership = Optional.empty(); private Optional<Long> wantedRestartGeneration = Optional.empty(); private Optional<Long> currentRestartGeneration = Optional.empty(); private long wantedRebootGeneration; @@ -622,12 +492,12 @@ public class NodeSpec { return this; } - public Builder owner(Owner owner) { + public Builder owner(NodeOwner owner) { this.owner = Optional.of(owner); return this; } - public Builder membership(Membership membership) { + public Builder membership(NodeMembership membership) { this.membership = Optional.of(membership); return this; } @@ -787,11 +657,11 @@ public class NodeSpec { return wantToDeprovision; } - public Optional<Owner> getOwner() { + public Optional<NodeOwner> getOwner() { return owner; } - public Optional<Membership> getMembership() { + public Optional<NodeMembership> getMembership() { return membership; } diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java index 8e63024842d..4806aa2790d 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/configserver/noderepository/RealNodeRepository.java @@ -172,14 +172,14 @@ public class RealNodeRepository implements NodeRepository { String hostName = Objects.requireNonNull(node.hostname, "hostname is null"); - NodeSpec.Owner owner = null; + NodeOwner owner = null; if (node.owner != null) { - owner = new NodeSpec.Owner(node.owner.tenant, node.owner.application, node.owner.instance); + owner = new NodeOwner(node.owner.tenant, node.owner.application, node.owner.instance); } - NodeSpec.Membership membership = null; + NodeMembership membership = null; if (node.membership != null) { - membership = new NodeSpec.Membership(node.membership.clusterType, node.membership.clusterId, + membership = new NodeMembership(node.membership.clusterType, node.membership.clusterId, node.membership.group, node.membership.index, node.membership.retired); } diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java index d31a888ea44..4724a98dbb2 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java @@ -11,21 +11,22 @@ import com.yahoo.vespa.flags.Flags; import com.yahoo.vespa.hosted.dockerapi.Container; import com.yahoo.vespa.hosted.dockerapi.ContainerResources; import com.yahoo.vespa.hosted.dockerapi.ContainerStats; +import com.yahoo.vespa.hosted.dockerapi.DockerImage; +import com.yahoo.vespa.hosted.dockerapi.ProcessResult; import com.yahoo.vespa.hosted.dockerapi.exception.ContainerNotFoundException; import com.yahoo.vespa.hosted.dockerapi.exception.DockerException; import com.yahoo.vespa.hosted.dockerapi.exception.DockerExecTimeoutException; -import com.yahoo.vespa.hosted.dockerapi.DockerImage; -import com.yahoo.vespa.hosted.dockerapi.ProcessResult; import com.yahoo.vespa.hosted.dockerapi.metrics.DimensionMetrics; import com.yahoo.vespa.hosted.dockerapi.metrics.Dimensions; import com.yahoo.vespa.hosted.dockerapi.metrics.MetricReceiverWrapper; -import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec; import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeAttributes; +import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeOwner; +import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeRepository; +import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec; +import com.yahoo.vespa.hosted.node.admin.configserver.orchestrator.Orchestrator; import com.yahoo.vespa.hosted.node.admin.configserver.orchestrator.OrchestratorException; import com.yahoo.vespa.hosted.node.admin.docker.DockerOperations; import com.yahoo.vespa.hosted.node.admin.maintenance.StorageMaintainer; -import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeRepository; -import com.yahoo.vespa.hosted.node.admin.configserver.orchestrator.Orchestrator; import com.yahoo.vespa.hosted.node.admin.maintenance.acl.AclMaintainer; import com.yahoo.vespa.hosted.node.admin.maintenance.identity.AthenzCredentialsMaintainer; import com.yahoo.vespa.hosted.node.admin.nodeadmin.ConvergenceException; @@ -379,7 +380,7 @@ public class NodeAgentImpl implements NodeAgent { private ContainerResources getContainerResources(NodeSpec node) { double cpuCap = node.getOwner() - .map(NodeSpec.Owner::asApplicationId) + .map(NodeOwner::asApplicationId) .map(appId -> containerCpuCap.with(FetchVector.Dimension.APPLICATION_ID, appId.serializedForm())) .orElse(containerCpuCap) .value() * node.getMinCpuCores(); diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java index 4c753e5a95d..a5cbeaa0222 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/maintenance/StorageMaintainerTest.java @@ -7,6 +7,8 @@ import com.yahoo.config.provision.NodeType; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.SystemName; import com.yahoo.vespa.hosted.node.admin.component.ZoneId; +import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeMembership; +import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeOwner; import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec; import com.yahoo.vespa.hosted.node.admin.docker.DockerOperations; import com.yahoo.vespa.hosted.node.admin.nodeagent.NodeAgentContext; @@ -157,8 +159,8 @@ public class StorageMaintainerTest { .nodeType(nodeType) .state(Node.State.active) .parentHostname("host123.test.domain.tld") - .owner(new NodeSpec.Owner("tenant", "application", "instance")) - .membership(new NodeSpec.Membership("clusterType", "clusterId", null, 0, false)) + .owner(new NodeOwner("tenant", "application", "instance")) + .membership(new NodeMembership("clusterType", "clusterId", null, 0, false)) .vespaVersion("6.305.12") .flavor("d-2-8-50") .canonicalFlavor("d-2-8-50") diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java index 35494b375f6..227fa8f9199 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java @@ -10,17 +10,19 @@ import com.yahoo.vespa.hosted.dockerapi.Container; import com.yahoo.vespa.hosted.dockerapi.ContainerName; import com.yahoo.vespa.hosted.dockerapi.ContainerResources; import com.yahoo.vespa.hosted.dockerapi.ContainerStats; -import com.yahoo.vespa.hosted.dockerapi.exception.DockerException; import com.yahoo.vespa.hosted.dockerapi.DockerImage; +import com.yahoo.vespa.hosted.dockerapi.exception.DockerException; import com.yahoo.vespa.hosted.dockerapi.metrics.MetricReceiverWrapper; -import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec; import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeAttributes; +import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeMembership; +import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeOwner; +import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeRepository; +import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeSpec; +import com.yahoo.vespa.hosted.node.admin.configserver.orchestrator.Orchestrator; import com.yahoo.vespa.hosted.node.admin.configserver.orchestrator.OrchestratorException; import com.yahoo.vespa.hosted.node.admin.docker.DockerOperations; import com.yahoo.vespa.hosted.node.admin.maintenance.StorageMaintainer; import com.yahoo.vespa.hosted.node.admin.maintenance.acl.AclMaintainer; -import com.yahoo.vespa.hosted.node.admin.configserver.noderepository.NodeRepository; -import com.yahoo.vespa.hosted.node.admin.configserver.orchestrator.Orchestrator; import com.yahoo.vespa.hosted.node.admin.maintenance.identity.AthenzCredentialsMaintainer; import com.yahoo.vespa.hosted.node.admin.nodeadmin.ConvergenceException; import com.yahoo.vespa.hosted.provision.Node; @@ -651,8 +653,8 @@ public class NodeAgentImplTest { ContainerStats stats1 = new ContainerStats(networks, precpu_stats, memory_stats, blkio_stats); ContainerStats stats2 = new ContainerStats(networks, cpu_stats, memory_stats, blkio_stats); - NodeSpec.Owner owner = new NodeSpec.Owner("tester", "testapp", "testinstance"); - NodeSpec.Membership membership = new NodeSpec.Membership("clustType", "clustId", "grp", 3, false); + NodeOwner owner = new NodeOwner("tester", "testapp", "testinstance"); + NodeMembership membership = new NodeMembership("clustType", "clustId", "grp", 3, false); final NodeSpec node = nodeBuilder .wantedDockerImage(dockerImage) .currentDockerImage(dockerImage) |