Skip to content

Commit ef9a32f

Browse files
committed
Backport owls-80135
1 parent 20c915f commit ef9a32f

File tree

2 files changed

+36
-16
lines changed

2 files changed

+36
-16
lines changed

operator/src/main/java/oracle/kubernetes/operator/steps/ManagedServersUpStep.java

Lines changed: 23 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -100,21 +100,7 @@ public NextAction apply(Packet packet) {
100100
LOGGER.fine(SERVERS_UP_MSG, factory.domain.getDomainUid(), getRunningServers(info));
101101
}
102102

103-
Set<String> clusteredServers = new HashSet<>();
104-
105-
for (WlsClusterConfig clusterConfig : config.getClusterConfigs().values()) {
106-
factory.logIfInvalidReplicaCount(clusterConfig);
107-
for (WlsServerConfig serverConfig : clusterConfig.getServerConfigs()) {
108-
factory.addServerIfNeeded(serverConfig, clusterConfig);
109-
clusteredServers.add(serverConfig.getName());
110-
}
111-
}
112-
113-
for (WlsServerConfig serverConfig : config.getServerConfigs().values()) {
114-
if (!clusteredServers.contains(serverConfig.getName())) {
115-
factory.addServerIfNeeded(serverConfig, null);
116-
}
117-
}
103+
Optional.ofNullable(config).ifPresent(wlsDomainConfig -> addServersToFactory(factory, wlsDomainConfig));
118104

119105
info.setServerStartupInfo(factory.getStartupInfos());
120106
LOGGER.exiting();
@@ -125,6 +111,27 @@ public NextAction apply(Packet packet) {
125111
packet);
126112
}
127113

114+
private void addServersToFactory(@Nonnull ServersUpStepFactory factory, @Nonnull WlsDomainConfig wlsDomainConfig) {
115+
Set<String> clusteredServers = new HashSet<>();
116+
117+
wlsDomainConfig.getClusterConfigs().values()
118+
.forEach(wlsClusterConfig -> addClusteredServersToFactory(factory, clusteredServers, wlsClusterConfig));
119+
120+
wlsDomainConfig.getServerConfigs().values().stream()
121+
.filter(wlsServerConfig -> !clusteredServers.contains(wlsServerConfig.getName()))
122+
.forEach(wlsServerConfig -> factory.addServerIfNeeded(wlsServerConfig, null));
123+
}
124+
125+
private void addClusteredServersToFactory(@Nonnull ServersUpStepFactory factory, Set<String> clusteredServers,
126+
@Nonnull WlsClusterConfig wlsClusterConfig) {
127+
factory.logIfInvalidReplicaCount(wlsClusterConfig);
128+
wlsClusterConfig.getServerConfigs()
129+
.forEach(wlsServerConfig -> {
130+
factory.addServerIfNeeded(wlsServerConfig, wlsClusterConfig);
131+
clusteredServers.add(wlsServerConfig.getName());
132+
});
133+
}
134+
128135
// an interface to provide a hook for unit testing.
129136
interface NextStepFactory {
130137
Step createServerStep(
@@ -158,7 +165,7 @@ boolean shouldPrecreateServerService(ServerSpec server) {
158165
return false;
159166
}
160167

161-
void addServerIfNeeded(@Nonnull WlsServerConfig serverConfig, WlsClusterConfig clusterConfig) {
168+
private void addServerIfNeeded(@Nonnull WlsServerConfig serverConfig, WlsClusterConfig clusterConfig) {
162169
String serverName = serverConfig.getName();
163170
if (servers.contains(serverName) || serverName.equals(domainTopology.getAdminServerName())) {
164171
return;

operator/src/test/java/oracle/kubernetes/operator/steps/ManagedServersUpStepTest.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -562,6 +562,13 @@ public void whenReplicasLessThanMinDynClusterSize_allowBelowMin_doNotChangeRepli
562562
assertThat(0, equalTo(domain.getReplicaCount("cluster1")));
563563
}
564564

565+
@Test
566+
public void whenDomainToplogyIsMissing_noExceptionAndDontStartServers() {
567+
invokeStepWithoutDomainTopology();
568+
569+
assertServersWillNotBeStarted();
570+
}
571+
565572
private void assertStoppingServers(Step step, String... servers) {
566573
assertThat(((ServerDownIteratorStep) step).getServersToStop(), containsInAnyOrder(servers));
567574
}
@@ -655,6 +662,12 @@ private void invokeStep() {
655662
testSupport.runSteps(step);
656663
}
657664

665+
private void invokeStepWithoutDomainTopology() {
666+
configSupport.setAdminServerName(ADMIN);
667+
668+
testSupport.runSteps(step);
669+
}
670+
658671
static class TestStepFactory implements ManagedServersUpStep.NextStepFactory {
659672
private static DomainPresenceInfo info;
660673

0 commit comments

Comments
 (0)