diff options
4 files changed, 28 insertions, 5 deletions
diff --git a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java index f84060063d7..cc6d20153d6 100644 --- a/flags/src/main/java/com/yahoo/vespa/flags/Flags.java +++ b/flags/src/main/java/com/yahoo/vespa/flags/Flags.java @@ -166,7 +166,7 @@ public class Flags { public static final UnboundListFlag<String> ALLOWED_ATHENZ_PROXY_IDENTITIES = defineListFlag( "allowed-athenz-proxy-identities", List.of(), String.class, - List.of("bjorncs", "tokle"), "2021-02-10", "2022-06-01", + List.of("bjorncs", "tokle"), "2021-02-10", "2022-09-01", "Allowed Athenz proxy identities", "takes effect at redeployment"); @@ -411,7 +411,7 @@ public class Flags { public static final UnboundBooleanFlag USE_YUM_PROXY_V2 = defineFeatureFlag( "use-yumproxy-v2", false, - List.of("mortent"), "2022-05-05", "2022-06-01", + List.of("tokle"), "2022-05-05", "2022-07-01", "Use yumproxy-v2", "Takes effect on host admin restart", HOSTNAME); diff --git a/hosted-tenant-base/pom.xml b/hosted-tenant-base/pom.xml index 734c096d373..a5b9c5d3f82 100644 --- a/hosted-tenant-base/pom.xml +++ b/hosted-tenant-base/pom.xml @@ -223,16 +223,20 @@ </configuration> </execution> <execution> - <id>enforce-no-jupiter-compile-scope</id> + <id>enforce-just-our-jupiter</id> <goals> <goal>enforce</goal> </goals> <configuration> <rules> <bannedDependencies> - <!-- Fail validation for apps with junit-jupiter-api in compile scope. --> + <!-- Fail validation for apps with junit-jupiter-api in compile scope, or on wrong version. --> <excludes> <exclude>org.junit.jupiter:junit-jupiter-api:*:jar:compile</exclude> + <exclude>org.junit.jupiter:junit-jupiter-api:*:jar:provided</exclude> + <exclude>org.junit.jupiter:junit-jupiter-api:*:jar:runtime</exclude> + <exclude>org.junit.jupiter:junit-jupiter-api:(,${junit.version}):jar:*</exclude> + <exclude>org.junit.jupiter:junit-jupiter-api:(${junit.version},):jar:*</exclude> </excludes> </bannedDependencies> </rules> diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainer.java index 0fa406ab0ef..4e2447f58e1 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainer.java @@ -194,7 +194,7 @@ public class DynamicProvisioningMaintainer extends NodeRepositoryMaintainer { .collect(Collectors.toMap(Node::hostname, Function.identity()))); nodes.stream() - .filter(node -> node.allocation().isPresent()) + .filter(node -> node.allocation().isPresent() && !node.status().wantToDeprovision()) .flatMap(node -> node.parentHostname().stream()) .distinct() .forEach(hostsByHostname::remove); diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java index 30d0f673fe1..451bcfb0b78 100644 --- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java +++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/maintenance/DynamicProvisioningMaintainerTest.java @@ -574,6 +574,25 @@ public class DynamicProvisioningMaintainerTest { assertEquals(2, provisioningTester.activate(applicationId, prepared).size()); } + @Test + public void deprovision_parked_node_with_allocation() { + var tester = new DynamicProvisioningTester(); + tester.hostProvisioner.with(Behaviour.failProvisioning); + Node host4 = tester.addNode("host4", Optional.empty(), NodeType.host, Node.State.parked); + Node host41 = tester.addNode("host4-1", Optional.of("host4"), NodeType.tenant, Node.State.parked, DynamicProvisioningTester.tenantApp); + tester.nodeRepository.nodes().deprovision("host4", Agent.operator, Instant.now()); + + assertEquals(Optional.of(true), tester.nodeRepository.nodes().node("host4").map(n -> n.status().wantToDeprovision())); + assertEquals(Optional.of(Node.State.parked), tester.nodeRepository.nodes().node("host4").map(Node::state)); + assertEquals(Optional.of(true), tester.nodeRepository.nodes().node("host4-1").map(n -> n.status().wantToDeprovision())); + assertEquals(Optional.of(Node.State.parked), tester.nodeRepository.nodes().node("host4-1").map(Node::state)); + + tester.maintainer.maintain(); + + assertEquals(Optional.empty(), tester.nodeRepository.nodes().node("host4")); + assertEquals(Optional.empty(), tester.nodeRepository.nodes().node("host4-1")); + } + private void assertCfghost3IsActive(DynamicProvisioningTester tester) { assertEquals(5, tester.nodeRepository.nodes().list(Node.State.active).size()); assertEquals(3, tester.nodeRepository.nodes().list(Node.State.active).nodeType(NodeType.confighost).size()); |