From a54d759f0529032ab53ff8bf1ae521f60701edd5 Mon Sep 17 00:00:00 2001 From: Lenny Phan Date: Mon, 31 Oct 2022 17:42:13 -0700 Subject: [PATCH 1/3] check Domain Status servers to see if admin server only --- .../kubernetes/operator/DomainStatusUpdater.java | 11 ++++++++++- .../operator/DomainStatusUpdateTestBase.java | 10 ++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java b/operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java index b80b3e5fb3a..6a6fcdc5176 100644 --- a/operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java +++ b/operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java @@ -857,13 +857,22 @@ private Collection getServerStartupInfos() // when the domain start policy is ADMIN_ONLY, the admin server is considered to be an application server. private boolean isApplicationServer(String serverName) { - return isAdminOnlyDomain() || !isAdminServer(serverName); + return !isAdminServer(serverName); } private boolean isAdminOnlyDomain() { + return isAdminOnlyServerStartPolicy() + || isOnlyAdminServerExpectedRunningInDomain(); + } + + private boolean isAdminOnlyServerStartPolicy() { return getDomain().getSpec().getServerStartPolicy() == ServerStartPolicy.ADMIN_ONLY; } + private boolean isOnlyAdminServerExpectedRunningInDomain() { + return status.getServers().size() == 1 && isAdminServer(getInfo().getAdminServerName()); + } + private boolean isAdminServer(String serverName) { return status.getServers().stream() .filter(s -> s.getServerName().equals(serverName)) diff --git a/operator/src/test/java/oracle/kubernetes/operator/DomainStatusUpdateTestBase.java b/operator/src/test/java/oracle/kubernetes/operator/DomainStatusUpdateTestBase.java index 98eb95ebbfa..88ae65a9754 100644 --- a/operator/src/test/java/oracle/kubernetes/operator/DomainStatusUpdateTestBase.java +++ b/operator/src/test/java/oracle/kubernetes/operator/DomainStatusUpdateTestBase.java @@ -1736,6 +1736,16 @@ void whenServerStartupInfoIsNull_availableIsFalse() { hasItems(new ClusterCondition(ClusterConditionType.AVAILABLE).withStatus(FALSE))); } + @Test + void whenDomainOnlyHasAdminServer_availableIsTrue() { + configureDomain().configureAdminServer(); + defineScenario().build(); + + updateDomainStatus(); + + assertThat(getRecordedDomain(), hasCondition(AVAILABLE).withStatus(TRUE)); + } + private Collection getClusterConditions() { return testSupport.getResourceWithName(KubernetesTestSupport.CLUSTER, "cluster1") .getStatus().getConditions(); From f8caa6775108a8b986f0c357591e04f24e16b423 Mon Sep 17 00:00:00 2001 From: Lenny Phan Date: Mon, 31 Oct 2022 19:39:49 -0700 Subject: [PATCH 2/3] Identify admin server status by comparing server name --- .../java/oracle/kubernetes/operator/DomainStatusUpdater.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java b/operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java index 6a6fcdc5176..b715f92774a 100644 --- a/operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java +++ b/operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java @@ -870,7 +870,8 @@ private boolean isAdminOnlyServerStartPolicy() { } private boolean isOnlyAdminServerExpectedRunningInDomain() { - return status.getServers().size() == 1 && isAdminServer(getInfo().getAdminServerName()); + return status.getServers().size() == 1 + && status.getServers().get(0).getServerName().equals(getInfo().getAdminServerName()); } private boolean isAdminServer(String serverName) { From d3eb72bd713a394e4761336a9e5cdca62f3608bc Mon Sep 17 00:00:00 2001 From: Lenny Phan Date: Mon, 31 Oct 2022 19:59:43 -0700 Subject: [PATCH 3/3] rename method --- .../java/oracle/kubernetes/operator/DomainStatusUpdater.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java b/operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java index b715f92774a..c9096c5700f 100644 --- a/operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java +++ b/operator/src/main/java/oracle/kubernetes/operator/DomainStatusUpdater.java @@ -862,14 +862,14 @@ private boolean isApplicationServer(String serverName) { private boolean isAdminOnlyDomain() { return isAdminOnlyServerStartPolicy() - || isOnlyAdminServerExpectedRunningInDomain(); + || isOnlyAdminServerRunningInDomain(); } private boolean isAdminOnlyServerStartPolicy() { return getDomain().getSpec().getServerStartPolicy() == ServerStartPolicy.ADMIN_ONLY; } - private boolean isOnlyAdminServerExpectedRunningInDomain() { + private boolean isOnlyAdminServerRunningInDomain() { return status.getServers().size() == 1 && status.getServers().get(0).getServerName().equals(getInfo().getAdminServerName()); }