public boolean isKieContainerUpdateDuringRolloutAllowed ( ConfigMap cm , KieServerState newState ) { KieServerState state = ( KieServerState ) xs . fromXML ( cm . getData ( ) . get ( CFG_MAP_DATA_KEY ) ) ; for ( KieContainerResource container : state . getContainers ( ) ) { if ( container . getStatus ( ) . equals ( KieContainerStatus . STARTED ) && newState . getContainers ( ) . stream ( ) . anyMatch ( c -> c . getContainerId ( ) . equals ( container . getContainerId ( ) ) && c . getStatus ( ) . equals ( KieContainerStatus . STOPPED ) ) ) { logger . warn ( "Non KieServer process updated KieServerState during DC rollout for STOPPING containers." ) ; return true ; } } logger . warn ( "Non KieServer process updates KieServerState during DC rollout is prohibited!" ) ; return false ; }
Non KieServer process including workbench is allowed to update KieServerState even during DC rollout but ONLY under certain conditions .