Skip to content

Commit 937cb62

Browse files
authored
Merge branch 'develop' into owls-69904-nest_serverPod
2 parents ba195e6 + 935016b commit 937cb62

File tree

13 files changed

+220
-41
lines changed

13 files changed

+220
-41
lines changed

integration-tests/src/test/java/oracle/kubernetes/operator/BaseTest.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -408,23 +408,28 @@ private void copyScalingScriptToPod(
408408

409409
private void callWebAppAndVerifyScaling(Domain domain, int replicas) throws Exception {
410410
Map<String, Object> domainMap = domain.getDomainMap();
411-
String domainNS = (String) domainMap.get("namespace");
411+
String domainNS = domainMap.get("namespace").toString();
412+
String domainUid = domain.getDomainUid();
413+
String clusterName = domainMap.get("clusterName").toString();
412414

413415
// call opensessionapp
414416
domain.callWebAppAndVerifyLoadBalancing("opensessionapp", false);
415417
logger.info("Sleeping for 30 seconds for scaleup");
416418
Thread.sleep(30 * 1000);
417419

420+
int replicaCntAfterScaleup = TestUtils.getClusterReplicas(domainUid, clusterName, domainNS);
418421
String managedServerNameBase = (String) domainMap.get("managedServerNameBase");
419-
String podName = domain.getDomainUid() + "-" + managedServerNameBase + replicas;
422+
for (int i = replicas; i <= replicaCntAfterScaleup; i++) {
423+
String podName = domain.getDomainUid() + "-" + managedServerNameBase + i;
420424

421-
logger.info("Checking if managed pod(" + podName + ") is Running");
422-
TestUtils.checkPodCreated(podName, domainNS);
425+
logger.info("Checking if managed pod(" + podName + ") is Running");
426+
TestUtils.checkPodCreated(podName, domainNS);
423427

424-
logger.info("Checking if managed server (" + podName + ") is Running");
425-
TestUtils.checkPodReady(podName, domainNS);
428+
logger.info("Checking if managed server (" + podName + ") is Running");
429+
TestUtils.checkPodReady(podName, domainNS);
426430

427-
logger.info("Checking if managed service(" + podName + ") is created");
428-
TestUtils.checkServiceCreated(podName, domainNS);
431+
logger.info("Checking if managed service(" + podName + ") is created");
432+
TestUtils.checkServiceCreated(podName, domainNS);
433+
}
429434
}
430435
}

integration-tests/src/test/java/oracle/kubernetes/operator/utils/Domain.java

Lines changed: 29 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -312,29 +312,24 @@ public void callWebAppAndVerifyLoadBalancing(String webappName, boolean verifyLo
312312
.append(":")
313313
.append(loadBalancerWebPort)
314314
.append("/");
315-
316315
if (loadBalancer.equals("APACHE")) {
317316
testAppUrl.append("weblogic/");
318317
}
319-
testAppUrl.append(webappName).append("/");
320-
321-
// curl cmd to call webapp
318+
testAppUrl.append(webappName).append("/"); // curl cmd to call webapp
322319
StringBuffer curlCmd = new StringBuffer("curl --silent --show-error --noproxy ");
323-
curlCmd.append(TestUtils.getHostName()).append(" ").append(testAppUrl.toString());
324-
325-
// curl cmd to get response code
320+
curlCmd
321+
.append(TestUtils.getHostName())
322+
.append(" ")
323+
.append(testAppUrl.toString()); // curl cmd to get response code
326324
StringBuffer curlCmdResCode = new StringBuffer(curlCmd.toString());
327-
curlCmdResCode.append(" --write-out %{http_code} -o /dev/null");
328-
329-
// call webapp iteratively till its deployed/ready
330-
callWebAppAndWaitTillReady(curlCmdResCode.toString());
331-
332-
if (verifyLoadBalance) {
333-
// execute curl and look for the managed server name in response
334-
callWebAppAndCheckForServerNameInResponse(curlCmd.toString());
335-
}
325+
curlCmdResCode.append(
326+
" --write-out %{http_code} -o /dev/null"); // call webapp iteratively till its
327+
// deployed/ready
328+
callWebAppAndWaitTillReady(
329+
curlCmdResCode
330+
.toString()); // execute curl and look for the managed server name in response
331+
callWebAppAndCheckForServerNameInResponse(curlCmd.toString(), verifyLoadBalance);
336332
// logger.info("curlCmd "+curlCmd);
337-
338333
}
339334
}
340335

@@ -706,34 +701,40 @@ private void callWebAppAndWaitTillReady(String curlCmd) throws Exception {
706701
}
707702
}
708703

709-
private void callWebAppAndCheckForServerNameInResponse(String curlCmd) throws Exception {
704+
private void callWebAppAndCheckForServerNameInResponse(
705+
String curlCmd, boolean verifyLoadBalancing) throws Exception {
710706
// map with server names and boolean values
711707
HashMap<String, Boolean> managedServers = new HashMap<String, Boolean>();
712708
for (int i = 1; i <= TestUtils.getClusterReplicas(domainUid, clusterName, domainNS); i++) {
713709
managedServers.put(domainUid + "-" + managedServerNameBase + i, new Boolean(false));
714710
}
715-
711+
logger.info("Calling webapp 20 times " + curlCmd);
716712
// number of times to call webapp
717713
for (int i = 0; i < 20; i++) {
718714
ExecResult result = ExecCommand.exec(curlCmd.toString());
719715
if (result.exitValue() != 0) {
720716
throw new RuntimeException(
721717
"FAILURE: command " + curlCmd + " failed, returned " + result.stderr());
722718
}
723-
String response = result.stdout().trim();
724-
// logger.info("response "+ response);
725-
for (String key : managedServers.keySet()) {
726-
if (response.contains(key)) {
727-
managedServers.put(key, new Boolean(true));
728-
break;
719+
if (verifyLoadBalancing) {
720+
String response = result.stdout().trim();
721+
// logger.info("response "+ response);
722+
for (String key : managedServers.keySet()) {
723+
if (response.contains(key)) {
724+
managedServers.put(key, new Boolean(true));
725+
break;
726+
}
729727
}
730728
}
731729
}
732730
logger.info("ManagedServers " + managedServers);
733731
// error if any managedserver value is false
734-
for (Map.Entry<String, Boolean> entry : managedServers.entrySet()) {
735-
if (!entry.getValue().booleanValue()) {
736-
throw new RuntimeException("FAILURE: Load balancer can not reach server " + entry.getKey());
732+
if (verifyLoadBalancing) {
733+
for (Map.Entry<String, Boolean> entry : managedServers.entrySet()) {
734+
if (!entry.getValue().booleanValue()) {
735+
throw new RuntimeException(
736+
"FAILURE: Load balancer can not reach server " + entry.getKey());
737+
}
737738
}
738739
}
739740
}

kubernetes/charts/weblogic-operator/templates/_operator-clusterrole-namespace.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ rules:
1818
resources: ["secrets"]
1919
verbs: ["get", "list", "watch"]
2020
- apiGroups: [""]
21-
resources: ["pods/logs"]
21+
resources: ["pods/log"]
2222
verbs: ["get", "list"]
2323
- apiGroups: [""]
2424
resources: ["pods/exec"]

kubernetes/internal/generate-security-policy.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,7 +224,7 @@ rules:
224224
resources: ["services", "configmaps", "pods", "podtemplates", "events", "persistentvolumeclaims"]
225225
verbs: ["get", "list", "watch", "create", "update", "patch", "delete", "deletecollection"]
226226
- apiGroups: [""]
227-
resources: ["pods/logs"]
227+
resources: ["pods/log"]
228228
verbs: ["get", "list"]
229229
- apiGroups: [""]
230230
resources: ["pods/exec"]

kubernetes/src/test/java/oracle/kubernetes/operator/create/CreateOperatorGeneratedFilesTestBase.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -617,7 +617,7 @@ private V1ClusterRole getExpectedWeblogicOperatorNamespaceRole() {
617617
.addRulesItem(
618618
newPolicyRule()
619619
.addApiGroupsItem("")
620-
.resources(singletonList("pods/logs"))
620+
.resources(singletonList("pods/log"))
621621
.verbs(asList("get", "list")))
622622
.addRulesItem(
623623
newPolicyRule()

model/src/main/java/oracle/kubernetes/weblogic/domain/v1/DomainSpec.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -879,6 +879,7 @@ public int hashCode() {
879879
builder.append(imagePullSecrets).append(adminServer).append(managedServers).append(clusters);
880880
else
881881
builder
882+
.append(imagePullSecret)
882883
.append(replicas)
883884
.append(startupControl)
884885
.append(clusterStartup)
@@ -915,6 +916,7 @@ public boolean equals(Object other) {
915916
.append(clusters, rhs.clusters);
916917
else
917918
builder
919+
.append(imagePullSecret, rhs.imagePullSecret)
918920
.append(replicas, rhs.replicas)
919921
.append(startupControl, rhs.startupControl)
920922
.append(clusterStartup, rhs.clusterStartup)

model/src/main/java/oracle/kubernetes/weblogic/domain/v1/ServerSpec.java

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@
2323
import javax.annotation.Nonnull;
2424
import oracle.kubernetes.operator.KubernetesConstants;
2525
import oracle.kubernetes.weblogic.domain.v2.ProbeTuning;
26+
import org.apache.commons.lang3.builder.EqualsBuilder;
27+
import org.apache.commons.lang3.builder.HashCodeBuilder;
28+
import org.apache.commons.lang3.builder.ToStringBuilder;
2629

2730
/** Represents the effective configuration for a server, as seen by the operator runtime. */
2831
@SuppressWarnings("WeakerAccess")
@@ -184,4 +187,27 @@ public V1PodSecurityContext getPodSecurityContext() {
184187
public V1SecurityContext getContainerSecurityContext() {
185188
return null;
186189
}
190+
191+
@Override
192+
public String toString() {
193+
return new ToStringBuilder(this).append("domainSpec", domainSpec).toString();
194+
}
195+
196+
@Override
197+
public boolean equals(Object o) {
198+
if (this == o) return true;
199+
200+
if (o == null || getClass() != o.getClass()) return false;
201+
202+
if (!(o instanceof ServerSpec)) return false;
203+
204+
ServerSpec that = (ServerSpec) o;
205+
206+
return new EqualsBuilder().append(domainSpec, that.domainSpec).isEquals();
207+
}
208+
209+
@Override
210+
public int hashCode() {
211+
return new HashCodeBuilder(17, 37).append(domainSpec).toHashCode();
212+
}
187213
}

model/src/main/java/oracle/kubernetes/weblogic/domain/v1/ServerSpecV1Impl.java

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@
1212
import java.util.Collections;
1313
import java.util.List;
1414
import java.util.Optional;
15+
import org.apache.commons.lang3.builder.EqualsBuilder;
16+
import org.apache.commons.lang3.builder.HashCodeBuilder;
17+
import org.apache.commons.lang3.builder.ToStringBuilder;
1518

1619
/** The effective configuration for a server configured by the version 1 domain model. */
1720
public class ServerSpecV1Impl extends ServerSpec {
@@ -80,4 +83,41 @@ private int getReplicaCount() {
8083
private boolean isSpecified() {
8184
return serverStartup != null || clusterStartup != null;
8285
}
86+
87+
@Override
88+
public String toString() {
89+
return new ToStringBuilder(this)
90+
.appendSuper(super.toString())
91+
.append("clusterName", clusterName)
92+
.append("serverStartup", serverStartup)
93+
.append("clusterStartup", clusterStartup)
94+
.toString();
95+
}
96+
97+
@Override
98+
public int hashCode() {
99+
return new HashCodeBuilder()
100+
.appendSuper(super.hashCode())
101+
.append(clusterName)
102+
.append(serverStartup)
103+
.append(clusterStartup)
104+
.toHashCode();
105+
}
106+
107+
@Override
108+
public boolean equals(Object other) {
109+
if (other == this) {
110+
return true;
111+
}
112+
if ((other instanceof ServerSpecV1Impl) == false) {
113+
return false;
114+
}
115+
ServerSpecV1Impl rhs = ((ServerSpecV1Impl) other);
116+
return new EqualsBuilder()
117+
.appendSuper(super.equals(rhs))
118+
.append(clusterName, rhs.clusterName)
119+
.append(serverStartup, rhs.serverStartup)
120+
.append(clusterStartup, rhs.clusterStartup)
121+
.isEquals();
122+
}
83123
}

model/src/main/java/oracle/kubernetes/weblogic/domain/v2/ManagedServer.java

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
import com.google.gson.annotations.Expose;
88
import com.google.gson.annotations.SerializedName;
99
import javax.annotation.Nonnull;
10+
import org.apache.commons.lang3.builder.EqualsBuilder;
11+
import org.apache.commons.lang3.builder.HashCodeBuilder;
12+
import org.apache.commons.lang3.builder.ToStringBuilder;
1013

1114
public class ManagedServer extends Server {
1215
/** The name of the managed server. Required. */
@@ -26,4 +29,36 @@ ManagedServer withServerName(@Nonnull String serverName) {
2629
setServerName(serverName);
2730
return this;
2831
}
32+
33+
@Override
34+
public String toString() {
35+
return new ToStringBuilder(this)
36+
.appendSuper(super.toString())
37+
.append("serverName", serverName)
38+
.toString();
39+
}
40+
41+
@Override
42+
public boolean equals(Object o) {
43+
if (this == o) return true;
44+
45+
if (o == null || getClass() != o.getClass()) return false;
46+
47+
if (!(o instanceof ManagedServer)) return false;
48+
49+
ManagedServer that = (ManagedServer) o;
50+
51+
return new EqualsBuilder()
52+
.appendSuper(super.equals(o))
53+
.append(serverName, that.serverName)
54+
.isEquals();
55+
}
56+
57+
@Override
58+
public int hashCode() {
59+
return new HashCodeBuilder(17, 37)
60+
.appendSuper(super.hashCode())
61+
.append(serverName)
62+
.toHashCode();
63+
}
2964
}

model/src/main/java/oracle/kubernetes/weblogic/domain/v2/Server.java

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,9 @@
66

77
import com.google.gson.annotations.Expose;
88
import com.google.gson.annotations.SerializedName;
9+
import org.apache.commons.lang3.builder.EqualsBuilder;
10+
import org.apache.commons.lang3.builder.HashCodeBuilder;
11+
import org.apache.commons.lang3.builder.ToStringBuilder;
912

1013
public class Server extends BaseConfiguration {
1114
/** The node port associated with this server. The introspector will override this value. */
@@ -27,4 +30,33 @@ public void setNodePort(Integer nodePort) {
2730
public Integer getNodePort() {
2831
return nodePort;
2932
}
33+
34+
@Override
35+
public String toString() {
36+
return new ToStringBuilder(this)
37+
.appendSuper(super.toString())
38+
.append("nodePort", nodePort)
39+
.toString();
40+
}
41+
42+
@Override
43+
public boolean equals(Object o) {
44+
if (this == o) return true;
45+
46+
if (o == null || getClass() != o.getClass()) return false;
47+
48+
if (!(o instanceof Server)) return false;
49+
50+
Server that = (Server) o;
51+
52+
return new EqualsBuilder()
53+
.appendSuper(super.equals(o))
54+
.append(nodePort, that.nodePort)
55+
.isEquals();
56+
}
57+
58+
@Override
59+
public int hashCode() {
60+
return new HashCodeBuilder(17, 37).appendSuper(super.hashCode()).append(nodePort).toHashCode();
61+
}
3062
}

0 commit comments

Comments
 (0)