1414import java .io .BufferedReader ;
1515import java .io .IOException ;
1616import java .io .StringReader ;
17+ import java .util .ArrayList ;
1718import java .util .Collections ;
1819import java .util .HashMap ;
1920import java .util .List ;
@@ -269,11 +270,10 @@ public NextAction apply(Packet packet) {
269270 if (topologyYaml != null ) {
270271 LOGGER .fine ("topology.yaml: " + topologyYaml );
271272 DomainTopology domainTopology = parseDomainTopologyYaml (topologyYaml );
272- if (!domainTopology .getValidationErrors ().isEmpty ()) {
273- for (String err : domainTopology .getValidationErrors ()) {
274- LOGGER .severe (err );
275- }
276- doNext (null , packet );
273+ if (!domainTopology .getDomainValid ()) {
274+ // If introspector determines Domain is invalid then log erros and terminate the fiber
275+ logValidationErrors (domainTopology .getValidationErrors ());
276+ return doNext (null , packet );
277277 }
278278 WlsDomainConfig wlsDomainConfig = domainTopology .getDomain ();
279279 ScanCache .INSTANCE .registerScan (
@@ -294,6 +294,14 @@ public NextAction apply(Packet packet) {
294294 return doNext (getNext (), packet );
295295 }
296296
297+ private void logValidationErrors (List <String > validationErrors ) {
298+ if (!validationErrors .isEmpty ()) {
299+ for (String err : validationErrors ) {
300+ LOGGER .severe (err );
301+ }
302+ }
303+ }
304+
297305 private static String getOperatorNamespace () {
298306 String namespace = System .getenv ("OPERATOR_NAMESPACE" );
299307 if (namespace == null ) {
@@ -582,7 +590,11 @@ public static class DomainTopology {
582590 private List <String > validationErrors ;
583591
584592 public boolean getDomainValid () {
585- return this .domainValid ;
593+ // domainValid = true AND no validation errors exist
594+ if (domainValid && getValidationErrors ().isEmpty ()) {
595+ return true ;
596+ }
597+ return false ;
586598 }
587599
588600 public void setDomainValid (boolean domainValid ) {
@@ -599,11 +611,30 @@ public void setDomain(WlsDomainConfig domain) {
599611 }
600612
601613 public List <String > getValidationErrors () {
602- return validationErrors == null ? Collections .emptyList () : validationErrors ;
614+ if (validationErrors == null ) {
615+ validationErrors = Collections .emptyList ();
616+ }
617+
618+ if (!domainValid && validationErrors .isEmpty ()) {
619+ // add a log message that domain was marked invalid since we have no validation
620+ // errors from introspector.
621+ validationErrors = new ArrayList <>();
622+ validationErrors .add (
623+ "Error, domain is invalid although there are no validation errors from introspector job." );
624+ }
625+
626+ return validationErrors ;
603627 }
604628
605629 public void setValidationErrors (List <String > validationErrors ) {
606630 this .validationErrors = validationErrors ;
607631 }
632+
633+ public String toString () {
634+ if (domainValid ) {
635+ return "domain: " + domain ;
636+ }
637+ return "domainValid: " + domainValid + ", validationErrors: " + validationErrors ;
638+ }
608639 }
609640}
0 commit comments