Skip to content

Commit 8334647

Browse files
authored
Merge changes for OWLS-930732 to include retry stage and fatal condition in domain status message (#2622)
* Merge changes from PR2571 for OWLS-930732 to main.
1 parent a3f6366 commit 8334647

File tree

9 files changed

+175
-24
lines changed

9 files changed

+175
-24
lines changed

operator/src/main/java/oracle/kubernetes/operator/DomainProcessorImpl.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -842,7 +842,7 @@ private boolean shouldContinue() {
842842
} else if (shouldReportAbortedEvent()) {
843843
return true;
844844
} else if (hasExceededRetryCount(liveInfo) && !isImgRestartIntrospectVerChanged(liveInfo, cachedInfo)) {
845-
LOGGER.severe(ProcessingConstants.EXCEEDED_INTROSPECTOR_MAX_RETRY_COUNT_ERROR_MSG);
845+
LOGGER.severe(MessageKeys.INTROSPECTOR_MAX_ERRORS_EXCEEDED, getFailureRetryMaxCount());
846846
return false;
847847
} else if (isFatalIntrospectorError()) {
848848
LOGGER.fine(ProcessingConstants.FATAL_INTROSPECTOR_ERROR_MSG);
@@ -862,14 +862,17 @@ private boolean shouldContinue() {
862862
return false;
863863
}
864864

865+
private int getFailureRetryMaxCount() {
866+
return DomainPresence.getDomainPresenceFailureRetryMaxCount();
867+
}
868+
865869
private boolean shouldReportAbortedEvent() {
866870
return Optional.ofNullable(eventData).map(EventData::getItem).orElse(null) == DOMAIN_PROCESSING_ABORTED;
867871
}
868872

869873
private void logRetryCount(DomainPresenceInfo cachedInfo) {
870874
LOGGER.info(MessageKeys.INTROSPECT_JOB_FAILED_RETRY_COUNT, cachedInfo.getDomain().getDomainUid(),
871-
getCurrentIntrospectFailureRetryCount(liveInfo),
872-
DomainPresence.getDomainPresenceFailureRetryMaxCount());
875+
getCurrentIntrospectFailureRetryCount(liveInfo), getFailureRetryMaxCount());
873876
}
874877

875878
private boolean shouldRecheck(DomainPresenceInfo cachedInfo) {

operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java

Lines changed: 60 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -65,9 +65,9 @@
6565
import static oracle.kubernetes.operator.LabelConstants.CLUSTERNAME_LABEL;
6666
import static oracle.kubernetes.operator.MIINonDynamicChangesMethod.CommitUpdateOnly;
6767
import static oracle.kubernetes.operator.ProcessingConstants.DOMAIN_TOPOLOGY;
68-
import static oracle.kubernetes.operator.ProcessingConstants.EXCEEDED_INTROSPECTOR_MAX_RETRY_COUNT_ERROR_MSG;
6968
import static oracle.kubernetes.operator.ProcessingConstants.FATAL_INTROSPECTOR_ERROR;
7069
import static oracle.kubernetes.operator.ProcessingConstants.FATAL_INTROSPECTOR_ERROR_MSG;
70+
import static oracle.kubernetes.operator.ProcessingConstants.INTROSPECTION_ERROR;
7171
import static oracle.kubernetes.operator.ProcessingConstants.MII_DYNAMIC_UPDATE;
7272
import static oracle.kubernetes.operator.ProcessingConstants.MII_DYNAMIC_UPDATE_RESTART_REQUIRED;
7373
import static oracle.kubernetes.operator.ProcessingConstants.SERVER_HEALTH_MAP;
@@ -80,7 +80,10 @@
8080
import static oracle.kubernetes.operator.helpers.EventHelper.EventItem.DOMAIN_PROCESSING_ABORTED;
8181
import static oracle.kubernetes.operator.helpers.EventHelper.EventItem.DOMAIN_PROCESSING_FAILED;
8282
import static oracle.kubernetes.operator.helpers.EventHelper.createEventStep;
83+
import static oracle.kubernetes.operator.logging.MessageKeys.DOMAIN_FATAL_ERROR;
84+
import static oracle.kubernetes.operator.logging.MessageKeys.INTROSPECTOR_MAX_ERRORS_EXCEEDED;
8385
import static oracle.kubernetes.operator.logging.MessageKeys.TOO_MANY_REPLICAS_FAILURE;
86+
import static oracle.kubernetes.utils.OperatorUtils.onSeparateLines;
8487
import static oracle.kubernetes.weblogic.domain.model.DomainConditionType.Available;
8588
import static oracle.kubernetes.weblogic.domain.model.DomainConditionType.Completed;
8689
import static oracle.kubernetes.weblogic.domain.model.DomainConditionType.ConfigChangesPendingRestart;
@@ -157,6 +160,22 @@ public static Step createFailureRelatedSteps(@Nonnull DomainFailureReason reason
157160
createEventStep(new EventData(DOMAIN_PROCESSING_FAILED, getEventMessage(reason, message))));
158161
}
159162

163+
/**
164+
* Asynchronous steps to set Domain condition to Failed, increment the introspector failure count if needed
165+
* and to generate DOMAIN_PROCESSING_FAILED event.
166+
*
167+
* @param reason the failure category
168+
* @param message a fuller description of the problem
169+
* @param domainIntrospectorJob Domain introspector job
170+
*/
171+
public static Step createIntrospectionFailureRelatedSteps(@Nonnull DomainFailureReason reason, String message,
172+
V1Job domainIntrospectorJob) {
173+
return Step.chain(
174+
new FailedStep(reason, message, null),
175+
new FailureCountStep(domainIntrospectorJob),
176+
createEventStep(new EventData(DOMAIN_PROCESSING_FAILED, getEventMessage(reason, message))));
177+
}
178+
160179
public static Step createFailureCountStep(V1Job domainIntrospectorJob) {
161180
return new FailureCountStep(domainIntrospectorJob);
162181
}
@@ -173,12 +192,50 @@ public FailureCountStep(V1Job domainIntrospectorJob) {
173192
@Override
174193
void modifyStatus(DomainStatus domainStatus) {
175194
domainStatus.incrementIntrospectJobFailureCount(getJobUid());
195+
addRetryInfoToStatusMessage(domainStatus);
176196
}
177197

178198
@Nullable
179199
private String getJobUid() {
180200
return Optional.ofNullable(domainIntrospectorJob).map(V1Job::getMetadata).map(V1ObjectMeta::getUid).orElse(null);
181201
}
202+
203+
private void addRetryInfoToStatusMessage(DomainStatus domainStatus) {
204+
205+
if (hasExceededMaxRetryCount(domainStatus)) {
206+
domainStatus.setMessage(createStatusMessage(domainStatus, exceededMaxRetryCountErrorMessage()));
207+
} else if (isFatalError(domainStatus)) {
208+
domainStatus.setMessage(createStatusMessage(domainStatus, LOGGER.formatMessage(DOMAIN_FATAL_ERROR)));
209+
} else {
210+
domainStatus.setMessage(createStatusMessage(domainStatus, getNonFatalRetryStatusMessage(domainStatus)));
211+
}
212+
}
213+
214+
private boolean hasExceededMaxRetryCount(DomainStatus domainStatus) {
215+
return domainStatus.getIntrospectJobFailureCount() >= getFailureRetryMaxCount();
216+
}
217+
218+
private String createStatusMessage(DomainStatus domainStatus, String retryStatusMessage) {
219+
return onSeparateLines(retryStatusMessage, INTROSPECTION_ERROR, domainStatus.getMessage());
220+
}
221+
222+
private String getNonFatalRetryStatusMessage(DomainStatus domainStatus) {
223+
return LOGGER.formatMessage(MessageKeys.NON_FATAL_INTROSPECTOR_ERROR,
224+
domainStatus.getIntrospectJobFailureCount(), getFailureRetryMaxCount());
225+
}
226+
227+
private boolean isFatalError(DomainStatus domainStatus) {
228+
return Optional.ofNullable(domainStatus.getMessage())
229+
.map(m -> m.contains(FATAL_INTROSPECTOR_ERROR)).orElse(false);
230+
}
231+
232+
private String exceededMaxRetryCountErrorMessage() {
233+
return LOGGER.formatMessage(INTROSPECTOR_MAX_ERRORS_EXCEEDED, getFailureRetryMaxCount());
234+
}
235+
}
236+
237+
private static int getFailureRetryMaxCount() {
238+
return DomainPresence.getDomainPresenceFailureRetryMaxCount();
182239
}
183240

184241
static class ResetFailureCountStep extends DomainStatusUpdaterStep {
@@ -378,8 +435,7 @@ private Step createEventSteps(List<EventData> eventDataList) {
378435
List<EventData> createDomainEvents() {
379436
List<EventData> list = new ArrayList<>();
380437
if (hasJustExceededMaxRetryCount()) {
381-
list.add(
382-
new EventData(DOMAIN_PROCESSING_ABORTED).message(EXCEEDED_INTROSPECTOR_MAX_RETRY_COUNT_ERROR_MSG));
438+
list.add(new EventData(DOMAIN_PROCESSING_ABORTED).message(INTROSPECTOR_MAX_ERRORS_EXCEEDED));
383439
} else if (hasJustGotFatalIntrospectorError()) {
384440
list.add(new EventData(DOMAIN_PROCESSING_ABORTED)
385441
.message(FATAL_INTROSPECTOR_ERROR_MSG + getNewStatus().getMessage()));
@@ -399,7 +455,7 @@ private boolean isFatalIntrospectorMessage(String statusMessage) {
399455
private boolean hasJustExceededMaxRetryCount() {
400456
return getStatus() != null
401457
&& getNewStatus().getIntrospectJobFailureCount() == (getStatus().getIntrospectJobFailureCount() + 1)
402-
&& getNewStatus().getIntrospectJobFailureCount() >= DomainPresence.getDomainPresenceFailureRetryMaxCount();
458+
&& getNewStatus().getIntrospectJobFailureCount() >= getFailureRetryMaxCount();
403459
}
404460

405461
}

operator/src/main/java/oracle/kubernetes/operator/ProcessingConstants.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,7 @@ public interface ProcessingConstants {
5050

5151
String FATAL_INTROSPECTOR_ERROR = "FatalIntrospectorError";
5252

53-
String EXCEEDED_INTROSPECTOR_MAX_RETRY_COUNT_ERROR_MSG = "Stop introspection retry - "
54-
+ "exceeded configured domainPresenceFailureRetryMaxCount: "
55-
+ DomainPresence.getDomainPresenceFailureRetryMaxCount()
56-
+ " The domainPresenceFailureRetryMaxCount is an operator tuning parameter and can be controlled"
57-
+ " by adding it to the weblogic-operator-cm configmap.";
53+
String INTROSPECTION_ERROR = "Introspection Error: ";
5854

5955
String FATAL_INTROSPECTOR_ERROR_MSG = "Stop introspection retry - MII Fatal Error: ";
6056

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

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import io.kubernetes.client.openapi.models.V1Pod;
2424
import io.kubernetes.client.openapi.models.V1PodList;
2525
import io.kubernetes.client.openapi.models.V1PodStatus;
26+
import oracle.kubernetes.operator.DomainStatusUpdater;
2627
import oracle.kubernetes.operator.IntrospectorConfigMapConstants;
2728
import oracle.kubernetes.operator.JobWatcher;
2829
import oracle.kubernetes.operator.LabelConstants;
@@ -49,7 +50,6 @@
4950
import static java.time.temporal.ChronoUnit.SECONDS;
5051
import static oracle.kubernetes.operator.DomainFailureReason.Introspection;
5152
import static oracle.kubernetes.operator.DomainSourceType.FromModel;
52-
import static oracle.kubernetes.operator.DomainStatusUpdater.createFailureCountStep;
5353
import static oracle.kubernetes.operator.DomainStatusUpdater.createFailureRelatedSteps;
5454
import static oracle.kubernetes.operator.LabelConstants.INTROSPECTION_DOMAIN_SPEC_GENERATION;
5555
import static oracle.kubernetes.operator.LabelConstants.INTROSPECTION_STATE_LABEL;
@@ -408,19 +408,27 @@ private void processIntrospectionResult(Packet packet, String result) {
408408
}
409409

410410
private NextAction handleFailure(Packet packet, V1Job domainIntrospectorJob) {
411+
Step nextSteps = null;
411412
Optional.ofNullable(domainIntrospectorJob).ifPresent(job -> logIntrospectorFailure(packet, job));
412413

413-
Step nextSteps = Step.chain(
414-
createFailureRelatedSteps(Introspection, onSeparateLines(severeStatuses)),
415-
getNextStep(packet, domainIntrospectorJob));
416-
417414
if (!severeStatuses.isEmpty()) {
418-
nextSteps = Step.chain(createFailureCountStep(domainIntrospectorJob), nextSteps);
415+
nextSteps = Step.chain(
416+
createIntrospectionFailureRelatedSteps(domainIntrospectorJob),
417+
getNextStep(packet, domainIntrospectorJob), nextSteps);
418+
} else {
419+
nextSteps = Step.chain(
420+
createFailureRelatedSteps(Introspection, onSeparateLines(severeStatuses)),
421+
getNextStep(packet, domainIntrospectorJob), nextSteps);
419422
}
420423

421424
return doNext(nextSteps, packet);
422425
}
423426

427+
private Step createIntrospectionFailureRelatedSteps(V1Job domainIntrospectorJob) {
428+
return DomainStatusUpdater.createIntrospectionFailureRelatedSteps(
429+
Introspection, onSeparateLines(severeStatuses), domainIntrospectorJob);
430+
}
431+
424432
@Nullable
425433
private Step getNextStep(Packet packet, V1Job domainIntrospectorJob) {
426434
if (isRecheckIntervalExceeded(domainIntrospectorJob)) {

operator/src/main/java/oracle/kubernetes/operator/logging/MessageKeys.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,9 @@ public class MessageKeys {
143143
public static final String EXECUTE_MAKE_RIGHT_DOMAIN = "WLSKO-0192";
144144
public static final String LOG_WAITING_COUNT = "WLSKO-0193";
145145
public static final String INTERNAL_IDENTITY_INITIALIZATION_FAILED = "WLSKO-0194";
146+
public static final String DOMAIN_FATAL_ERROR = "WLSKO-0195";
147+
public static final String INTROSPECTOR_MAX_ERRORS_EXCEEDED = "WLSKO-0196";
148+
public static final String NON_FATAL_INTROSPECTOR_ERROR = "WLSKO-0197";
146149

147150
// domain status messages
148151
public static final String DUPLICATE_SERVER_NAME_FOUND = "WLSDO-0001";

operator/src/main/java/oracle/kubernetes/utils/OperatorUtils.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,4 +176,13 @@ private static StringBuilder toStringBuilder(Reader from) throws IOException {
176176
return sb;
177177
}
178178

179+
/**
180+
* Returns a new String composed of copies of the strings joined together with the system line separator.
181+
*
182+
* @param s Comma separated array of strings to be joined
183+
*/
184+
public static String onSeparateLines(String... s) {
185+
return String.join(System.lineSeparator(), s);
186+
}
187+
179188
}

operator/src/main/resources/Operator.properties

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,12 @@ WLSKO-0191=Rolling restart of domain {0} completed
144144
WLSKO-0192=Executing make right domain operation, recheck count for server {0} is {1}.
145145
WLSKO-0193=Waiting for server {0} to start, recheck count is {1}.
146146
WLSKO-0194=Internal identity initialization step failed with exception {0}.
147+
WLSKO-0195=Introspection encountered a fatal error and will not retry automatically. \
148+
Please resolve the error and then update 'domain.spec.introspectVersion' to force a retry.
149+
WLSKO-0196=Stop introspection retry - exceeded configured domainPresenceFailureRetryMaxCount: {0}. The \
150+
domainPresenceFailureRetryMaxCount is an operator tuning parameter and can be controlled by adding it to the \
151+
weblogic-operator-cm configmap. To force the introspector to start retrying again, update 'domain.spec.introspectVersion'.
152+
WLSKO-0197=Introspection failed on try {0} of {1}.
147153

148154
# Domain status messages
149155

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

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@
3838
import oracle.kubernetes.operator.LabelConstants;
3939
import oracle.kubernetes.operator.TuningParameters;
4040
import oracle.kubernetes.operator.calls.unprocessable.UnrecoverableErrorBuilderImpl;
41+
import oracle.kubernetes.operator.logging.LoggingFacade;
42+
import oracle.kubernetes.operator.logging.LoggingFactory;
4143
import oracle.kubernetes.operator.rest.ScanCacheStub;
4244
import oracle.kubernetes.operator.wlsconfig.WlsClusterConfig;
4345
import oracle.kubernetes.operator.wlsconfig.WlsDomainConfig;
@@ -76,21 +78,25 @@
7678
import static oracle.kubernetes.operator.KubernetesConstants.HTTP_INTERNAL_ERROR;
7779
import static oracle.kubernetes.operator.ProcessingConstants.DOMAIN_INTROSPECTOR_JOB;
7880
import static oracle.kubernetes.operator.ProcessingConstants.DOMAIN_TOPOLOGY;
81+
import static oracle.kubernetes.operator.ProcessingConstants.INTROSPECTION_ERROR;
7982
import static oracle.kubernetes.operator.ProcessingConstants.JOBWATCHER_COMPONENT_NAME;
8083
import static oracle.kubernetes.operator.ProcessingConstants.JOB_POD_NAME;
8184
import static oracle.kubernetes.operator.helpers.KubernetesTestSupport.DOMAIN;
8285
import static oracle.kubernetes.operator.helpers.KubernetesTestSupport.JOB;
8386
import static oracle.kubernetes.operator.helpers.Matchers.hasEnvVar;
8487
import static oracle.kubernetes.operator.helpers.PodHelperTestBase.CUSTOM_COMMAND_SCRIPT;
8588
import static oracle.kubernetes.operator.helpers.PodHelperTestBase.CUSTOM_MOUNT_PATH;
89+
import static oracle.kubernetes.operator.logging.MessageKeys.DOMAIN_FATAL_ERROR;
8690
import static oracle.kubernetes.operator.logging.MessageKeys.INTROSPECTOR_JOB_FAILED;
8791
import static oracle.kubernetes.operator.logging.MessageKeys.INTROSPECTOR_JOB_FAILED_DETAIL;
92+
import static oracle.kubernetes.operator.logging.MessageKeys.INTROSPECTOR_MAX_ERRORS_EXCEEDED;
8893
import static oracle.kubernetes.operator.logging.MessageKeys.JOB_CREATED;
8994
import static oracle.kubernetes.operator.logging.MessageKeys.JOB_DELETED;
9095
import static oracle.kubernetes.operator.logging.MessageKeys.NO_CLUSTER_IN_DOMAIN;
9196
import static oracle.kubernetes.utils.LogMatcher.containsFine;
9297
import static oracle.kubernetes.utils.LogMatcher.containsInfo;
9398
import static oracle.kubernetes.utils.LogMatcher.containsWarning;
99+
import static oracle.kubernetes.utils.OperatorUtils.onSeparateLines;
94100
import static oracle.kubernetes.weblogic.domain.model.AuxiliaryImage.AUXILIARY_IMAGE_DEFAULT_INIT_CONTAINER_COMMAND;
95101
import static oracle.kubernetes.weblogic.domain.model.AuxiliaryImage.AUXILIARY_IMAGE_INIT_CONTAINER_NAME_PREFIX;
96102
import static oracle.kubernetes.weblogic.domain.model.AuxiliaryImage.AUXILIARY_IMAGE_VOLUME_NAME_PREFIX;
@@ -110,6 +116,8 @@
110116

111117
@SuppressWarnings({"SameParameterValue"})
112118
class DomainIntrospectorJobTest {
119+
private static final LoggingFacade LOGGER = LoggingFactory.getLogger("Operator", "Operator");
120+
113121
private static final String NODEMGR_HOME = "/u01/nodemanager";
114122
private static final String OVERRIDES_CM = "overrides-config-map";
115123
private static final String OVERRIDE_SECRET_1 = "override-secret-1";
@@ -125,6 +133,8 @@ class DomainIntrospectorJobTest {
125133
IntStream.rangeClosed(1, MAX_SERVERS).mapToObj(n -> MS_PREFIX + n).toArray(String[]::new);
126134
private static final String SEVERE_PROBLEM = "really bad";
127135
private static final String SEVERE_MESSAGE = "@[SEVERE] " + SEVERE_PROBLEM;
136+
private static final String FATAL_PROBLEM = "FatalIntrospectorError: really bad";
137+
private static final String FATAL_MESSAGE = "@[SEVERE] " + FATAL_PROBLEM;
128138
private static final String INFO_MESSAGE = "@[INFO] just letting you know";
129139
public static final String TEST_VOLUME_NAME = "test";
130140
private static final String JOB_UID = "FAILED_JOB";
@@ -857,6 +867,66 @@ void whenJobLogContainsSevereErrorAndStatusHasDifferentJobUID_incrementFailureCo
857867
assertThat(getUpdatedDomain().getStatus().getIntrospectJobFailureCount(), equalTo(2));
858868
}
859869

870+
@Test
871+
void whenJobLogContainsSevereErrorAndRetriesLeft_domainStatusHasExpectedMessage() {
872+
createIntrospectionLog(SEVERE_MESSAGE);
873+
874+
testSupport.runSteps(JobHelper.readDomainIntrospectorPodLog(terminalStep));
875+
876+
assertThat(getUpdatedDomain().getStatus().getMessage(), equalTo(
877+
createRetryStatusMessage("Introspection failed on try 1 of 2.", SEVERE_PROBLEM)));
878+
}
879+
880+
@NotNull
881+
private String createRetryStatusMessage(String retryStatusMessage, String severeProblem) {
882+
return onSeparateLines(retryStatusMessage, INTROSPECTION_ERROR, severeProblem);
883+
}
884+
885+
@Test
886+
void whenJobLogContainsFatalError_domainStatusHasExpectedMessage() {
887+
createIntrospectionLog(FATAL_MESSAGE);
888+
889+
testSupport.runSteps(JobHelper.readDomainIntrospectorPodLog(terminalStep));
890+
891+
final Domain updatedDomain = testSupport.<Domain>getResources(DOMAIN).get(0);
892+
893+
assertThat(updatedDomain.getStatus().getMessage(),
894+
equalTo(createRetryStatusMessage(LOGGER.formatMessage(DOMAIN_FATAL_ERROR), FATAL_PROBLEM)));
895+
}
896+
897+
@Test
898+
void whenJobLogContainsSevereErrorAndNumberOfRetriesExceedsMaxLimit_domainStatusHasExpectedMessage() {
899+
createIntrospectionLog(SEVERE_MESSAGE);
900+
901+
getUpdatedDomain().setStatus(createDomainStatusWithIntrospectJobFailureCount(2));
902+
903+
testSupport.runSteps(JobHelper.readDomainIntrospectorPodLog(terminalStep));
904+
905+
assertThat(getUpdatedDomain().getStatus().getMessage(),
906+
equalTo(createRetryStatusMessage(LOGGER.formatMessage(INTROSPECTOR_MAX_ERRORS_EXCEEDED, 2),
907+
SEVERE_PROBLEM)));
908+
}
909+
910+
private void createIntrospectionLog(String logMessage) {
911+
createIntrospectionLog(logMessage, true);
912+
}
913+
914+
private void createIntrospectionLog(String logMessage, boolean ignoreLogMessages) {
915+
if (ignoreLogMessages) {
916+
consoleHandlerMemento.ignoreMessage(getJobFailedMessageKey());
917+
consoleHandlerMemento.ignoreMessage(getJobFailedDetailMessageKey());
918+
}
919+
testSupport.defineResources(createIntrospectorJob());
920+
IntrospectionTestUtils.defineResources(testSupport, logMessage);
921+
testSupport.addToPacket(DOMAIN_INTROSPECTOR_JOB, testSupport.getResourceWithName(JOB, getJobName()));
922+
}
923+
924+
private DomainStatus createDomainStatusWithIntrospectJobFailureCount(int failureCount) {
925+
final DomainStatus status = new DomainStatus();
926+
status.withIntrospectJobFailureCount(failureCount);
927+
return status;
928+
}
929+
860930
// create job
861931
// add job uid to status
862932
// do NOT create pod log

0 commit comments

Comments
 (0)