diff options
author | Ola Aunronning <olaa@yahooinc.com> | 2023-03-01 15:22:14 +0100 |
---|---|---|
committer | Ola Aunronning <olaa@yahooinc.com> | 2023-03-01 15:22:14 +0100 |
commit | 72112b07ac8542ea0ee0518c0d4b9ef6f8332563 (patch) | |
tree | 24c1ce0a445b56bd13bfe27aef7ef2ed786db7a5 /controller-api | |
parent | 0c766a6506aa82299c2cd1d166fcc3522a962f2f (diff) |
Check retirement status of host and its children
Diffstat (limited to 'controller-api')
-rw-r--r-- | controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeFilter.java | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeFilter.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeFilter.java index 7b209d231c4..796ce5da449 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeFilter.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/api/integration/configserver/NodeFilter.java @@ -20,14 +20,16 @@ public class NodeFilter { private final boolean includeDeprovisioned; private final Set<Node.State> states; private final Set<HostName> hostnames; + private final Set<HostName> parentHostnames; private final Set<ApplicationId> applications; private NodeFilter(boolean includeDeprovisioned, Set<Node.State> states, Set<HostName> hostnames, - Set<ApplicationId> applications) { + Set<HostName> parentHostnames, Set<ApplicationId> applications) { this.includeDeprovisioned = includeDeprovisioned; // Uses Guava Set to preserve insertion order this.states = ImmutableSet.copyOf(Objects.requireNonNull(states)); this.hostnames = ImmutableSet.copyOf(Objects.requireNonNull(hostnames)); + this.parentHostnames = ImmutableSet.copyOf(Objects.requireNonNull(parentHostnames)); this.applications = ImmutableSet.copyOf(Objects.requireNonNull(applications)); if (!includeDeprovisioned && states.contains(Node.State.deprovisioned)) { throw new IllegalArgumentException("Must include deprovisioned nodes when matching deprovisioned state"); @@ -46,12 +48,16 @@ public class NodeFilter { return hostnames; } + public Set<HostName> parentHostnames() { + return parentHostnames; + } + public Set<ApplicationId> applications() { return applications; } public NodeFilter includeDeprovisioned(boolean includeDeprovisioned) { - return new NodeFilter(includeDeprovisioned, states, hostnames, applications); + return new NodeFilter(includeDeprovisioned, states, hostnames, parentHostnames, applications); } public NodeFilter states(Node.State... states) { @@ -59,7 +65,7 @@ public class NodeFilter { } public NodeFilter states(Set<Node.State> states) { - return new NodeFilter(includeDeprovisioned, states, hostnames, applications); + return new NodeFilter(includeDeprovisioned, states, hostnames, parentHostnames, applications); } public NodeFilter hostnames(HostName... hostnames) { @@ -67,7 +73,15 @@ public class NodeFilter { } public NodeFilter hostnames(Set<HostName> hostnames) { - return new NodeFilter(includeDeprovisioned, states, hostnames, applications); + return new NodeFilter(includeDeprovisioned, states, hostnames, parentHostnames, applications); + } + + public NodeFilter parentHostnames(HostName... parentHostnames) { + return parentHostnames(ImmutableSet.copyOf(parentHostnames)); + } + + public NodeFilter parentHostnames(Set<HostName> parentHostnames) { + return new NodeFilter(includeDeprovisioned, states, hostnames, parentHostnames, applications); } public NodeFilter applications(ApplicationId... applications) { @@ -75,12 +89,12 @@ public class NodeFilter { } public NodeFilter applications(Set<ApplicationId> applications) { - return new NodeFilter(includeDeprovisioned, states, hostnames, applications); + return new NodeFilter(includeDeprovisioned, states, hostnames, parentHostnames, applications); } /** A filter which matches all nodes, except deprovisioned ones */ public static NodeFilter all() { - return new NodeFilter(false, Set.of(), Set.of(), Set.of()); + return new NodeFilter(false, Set.of(), Set.of(), Set.of(), Set.of()); } } |