14
14
import java .io .BufferedReader ;
15
15
import java .io .IOException ;
16
16
import java .io .StringReader ;
17
+ import java .util .ArrayList ;
17
18
import java .util .Collections ;
18
19
import java .util .HashMap ;
19
20
import java .util .List ;
@@ -269,11 +270,10 @@ public NextAction apply(Packet packet) {
269
270
if (topologyYaml != null ) {
270
271
LOGGER .fine ("topology.yaml: " + topologyYaml );
271
272
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 );
277
277
}
278
278
WlsDomainConfig wlsDomainConfig = domainTopology .getDomain ();
279
279
ScanCache .INSTANCE .registerScan (
@@ -294,6 +294,14 @@ public NextAction apply(Packet packet) {
294
294
return doNext (getNext (), packet );
295
295
}
296
296
297
+ private void logValidationErrors (List <String > validationErrors ) {
298
+ if (!validationErrors .isEmpty ()) {
299
+ for (String err : validationErrors ) {
300
+ LOGGER .severe (err );
301
+ }
302
+ }
303
+ }
304
+
297
305
private static String getOperatorNamespace () {
298
306
String namespace = System .getenv ("OPERATOR_NAMESPACE" );
299
307
if (namespace == null ) {
@@ -582,7 +590,11 @@ public static class DomainTopology {
582
590
private List <String > validationErrors ;
583
591
584
592
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 ;
586
598
}
587
599
588
600
public void setDomainValid (boolean domainValid ) {
@@ -599,11 +611,30 @@ public void setDomain(WlsDomainConfig domain) {
599
611
}
600
612
601
613
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 ;
603
627
}
604
628
605
629
public void setValidationErrors (List <String > validationErrors ) {
606
630
this .validationErrors = validationErrors ;
607
631
}
632
+
633
+ public String toString () {
634
+ if (domainValid ) {
635
+ return "domain: " + domain ;
636
+ }
637
+ return "domainValid: " + domainValid + ", validationErrors: " + validationErrors ;
638
+ }
608
639
}
609
640
}
0 commit comments