Skip to content

Commit 1efc7c2

Browse files
committed
Changes based on thoughts from Tom B
1 parent 5a9bd9c commit 1efc7c2

File tree

2 files changed

+39
-4
lines changed

2 files changed

+39
-4
lines changed

operator/src/main/java/oracle/kubernetes/operator/helpers/ConfigMapHelper.java

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import java.io.BufferedReader;
1515
import java.io.IOException;
1616
import java.io.StringReader;
17+
import java.util.ArrayList;
1718
import java.util.Collections;
1819
import java.util.HashMap;
1920
import java.util.List;
@@ -269,9 +270,8 @@ public NextAction apply(Packet packet) {
269270
if (topologyYaml != null) {
270271
LOGGER.fine("topology.yaml: " + topologyYaml);
271272
DomainTopology domainTopology = parseDomainTopologyYaml(topologyYaml);
272-
if (!domainTopology.getDomainValid()) {
273-
// If introspector determines Domain is invalid then log and validation errors
274-
// and terminate the fiber
273+
if (domainTopology.isDomainInvalid()) {
274+
// If introspector determines Domain is invalid then log erros and terminate the fiber
275275
logValidationErrors(domainTopology.getValidationErrors());
276276
return doNext(null, packet);
277277
}
@@ -607,7 +607,19 @@ public void setDomain(WlsDomainConfig domain) {
607607
}
608608

609609
public List<String> getValidationErrors() {
610-
return validationErrors == null ? Collections.emptyList() : validationErrors;
610+
if (validationErrors == null) {
611+
validationErrors = Collections.emptyList();
612+
}
613+
614+
if (!domainValid && validationErrors.isEmpty()) {
615+
// add a log message that domain was marked invalid since we have no validation
616+
// errors from introspector.
617+
validationErrors = new ArrayList<>();
618+
validationErrors.add(
619+
"Error, domain is marked invalid without error messages from introspector job.");
620+
}
621+
622+
return validationErrors;
611623
}
612624

613625
public void setValidationErrors(List<String> validationErrors) {
@@ -620,5 +632,13 @@ public String toString() {
620632
}
621633
return "domainValid: " + domainValid + ", validationErrors: " + validationErrors;
622634
}
635+
636+
boolean isDomainInvalid() {
637+
// domainValid = false OR validation errors exist
638+
if (!domainValid || !getValidationErrors().isEmpty()) {
639+
return true;
640+
}
641+
return false;
642+
}
623643
}
624644
}

operator/src/test/java/oracle/kubernetes/operator/helpers/ConfigMapHelperTest.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -466,6 +466,9 @@ public boolean containsAll(V1ConfigMap actual, V1ConfigMap expected) {
466466
+ "validationErrors:\n"
467467
+ " - \"The dynamic cluster \\\"mycluster\\\"'s dynamic servers use calculated listen ports.\"";
468468

469+
private static final String DOMAIN_INVALID_NO_ERRORS =
470+
"domainValid: false\n" + "validationErrors:\n";
471+
469472
@Test
470473
public void parseDomainTopologyYaml() {
471474
ConfigMapHelper.DomainTopology domainTopology =
@@ -564,6 +567,7 @@ public void parseMixedClusterTopologyYaml() {
564567

565568
assertNotNull(domainTopology);
566569
assertTrue(domainTopology.getDomainValid());
570+
assertFalse(domainTopology.isDomainInvalid());
567571

568572
WlsDomainConfig wlsDomainConfig = domainTopology.getDomain();
569573
assertNotNull(wlsDomainConfig);
@@ -593,8 +597,19 @@ public void parseInvalidTopologyYamlWithValidationErrors() {
593597

594598
assertFalse(domainTopology.getValidationErrors().isEmpty());
595599
assertFalse(domainTopology.getDomainValid());
600+
assertTrue(domainTopology.isDomainInvalid());
596601
assertEquals(
597602
"The dynamic cluster \"mycluster\"'s dynamic servers use calculated listen ports.",
598603
domainTopology.getValidationErrors().get(0));
599604
}
605+
606+
@Test
607+
public void parseInvalidTopologyYamlWithNoValidationErrors() {
608+
ConfigMapHelper.DomainTopology domainTopology =
609+
ConfigMapHelper.parseDomainTopologyYaml(DOMAIN_INVALID_NO_ERRORS);
610+
611+
assertFalse(domainTopology.getValidationErrors().isEmpty());
612+
assertFalse(domainTopology.getDomainValid());
613+
assertTrue(domainTopology.isDomainInvalid());
614+
}
600615
}

0 commit comments

Comments
 (0)