diff options
6 files changed, 28 insertions, 22 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidator.java b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidator.java index 3decb189f52..1b577e2a203 100644 --- a/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidator.java +++ b/config-application-package/src/main/java/com/yahoo/config/model/application/provider/SchemaValidator.java @@ -64,22 +64,6 @@ public class SchemaValidator { validate(reader, reader.getName()); } - @Deprecated - /* @deprecated Will not give proper context from errors, use another validate method instead */ - public void validate(InputSource inputSource, String fileName) throws IOException { - errorHandler.fileName = (fileName == null ? "input" : fileName); - errorHandler.reader = inputSource.getCharacterStream(); - try { - if ( ! driver.validate(inputSource)) { - // Shouldn't happen, error handler should have thrown - throw new RuntimeException("Aborting due to earlier XML errors."); - } - } catch (SAXException e) { - // Shouldn't happen, error handler should have thrown - throw new IllegalArgumentException("XML error in " + errorHandler.fileName + ": " + Exceptions.toMessageString(e)); - } - } - private void validate(Reader reader, String fileName) throws IOException { errorHandler.fileName = (fileName == null ? "input" : fileName); // We need to read from a reader in error handler, so need to read all content into a new one diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java index 8aef09d1a40..8546eb5a971 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java @@ -73,7 +73,6 @@ public class ApplicationPackageValidator { .map(Version::getMajor)) .orElseThrow(() -> new IllegalArgumentException("Could not determine wanted major version")); for (var deprecatedElement : applicationPackage.deploymentSpec().deprecatedElements()) { - if (applicationPackage.compileVersion().isEmpty()) continue; if (deprecatedElement.majorVersion() >= wantedMajor) continue; throw new IllegalArgumentException(deprecatedElement.humanReadableString()); } 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 f3e0da75ef5..f45f7afd816 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"); @@ -400,7 +400,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()); |