Skip to content

Commit 3efb3d6

Browse files
authored
Merge pull request #487 from oracle/owls-69904-nest_serverPod
Move env, livenessProbe and readinessProbe under serverPod
2 parents 935016b + 937cb62 commit 3efb3d6

File tree

9 files changed

+330
-123
lines changed

9 files changed

+330
-123
lines changed

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@
1111
import io.kubernetes.client.models.V1EnvVar;
1212
import io.kubernetes.client.models.V1LocalObjectReference;
1313
import io.kubernetes.client.models.V1PodSecurityContext;
14-
import io.kubernetes.client.models.V1Probe;
1514
import io.kubernetes.client.models.V1ResourceRequirements;
1615
import io.kubernetes.client.models.V1SecurityContext;
1716
import io.kubernetes.client.models.V1Volume;
@@ -23,6 +22,7 @@
2322
import java.util.Optional;
2423
import javax.annotation.Nonnull;
2524
import oracle.kubernetes.operator.KubernetesConstants;
25+
import oracle.kubernetes.weblogic.domain.v2.ProbeTuning;
2626
import org.apache.commons.lang3.builder.EqualsBuilder;
2727
import org.apache.commons.lang3.builder.HashCodeBuilder;
2828
import org.apache.commons.lang3.builder.ToStringBuilder;
@@ -142,13 +142,13 @@ public List<V1Volume> getAdditionalVolumes() {
142142
}
143143

144144
@Nonnull
145-
public V1Probe getLivenessProbe() {
146-
return new V1Probe();
145+
public ProbeTuning getLivenessProbe() {
146+
return new ProbeTuning();
147147
}
148148

149149
@Nonnull
150-
public V1Probe getReadinessProbe() {
151-
return new V1Probe();
150+
public ProbeTuning getReadinessProbe() {
151+
return new ProbeTuning();
152152
}
153153

154154
@Nonnull

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

Lines changed: 16 additions & 93 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,12 @@
44

55
package oracle.kubernetes.weblogic.domain.v2;
66

7-
import static java.util.Collections.emptyList;
8-
97
import com.google.gson.annotations.Expose;
108
import com.google.gson.annotations.SerializedName;
119
import io.kubernetes.client.models.V1EnvVar;
12-
import io.kubernetes.client.models.V1Probe;
13-
import java.util.ArrayList;
1410
import java.util.List;
1511
import java.util.Objects;
16-
import java.util.Optional;
1712
import javax.annotation.Nullable;
18-
import javax.validation.Valid;
1913
import oracle.kubernetes.json.Description;
2014
import org.apache.commons.lang3.builder.EqualsBuilder;
2115
import org.apache.commons.lang3.builder.HashCodeBuilder;
@@ -29,16 +23,8 @@
2923
*/
3024
public abstract class BaseConfiguration {
3125

32-
/**
33-
* Environment variables to pass while starting a server.
34-
*
35-
* @since 2.0
36-
*/
37-
@SerializedName("env")
38-
@Expose
39-
@Valid
40-
@Description("A list of environment variables to add to a server")
41-
private List<V1EnvVar> env = new ArrayList<>();
26+
@Description("Configuration affecting the server pod")
27+
private ServerPod serverPod = new ServerPod();
4228

4329
/** Desired startup state. Legal values are RUNNING or ADMIN. */
4430
@SerializedName("serverStartState")
@@ -61,28 +47,6 @@ public abstract class BaseConfiguration {
6147
+ "Legal values are NEVER, ALWAYS, or IF_NEEDED.")
6248
private String serverStartPolicy;
6349

64-
/**
65-
* Defines the settings for the liveness probe. Any that are not specified will default to the
66-
* runtime liveness probe tuning settings.
67-
*
68-
* @since 2.0
69-
*/
70-
@SerializedName("livenessProbe")
71-
@Expose
72-
@Description("Settings for the liveness probe associated with a server")
73-
private V1Probe livenessProbe = new V1Probe();
74-
75-
/**
76-
* Defines the settings for the readiness probe. Any that are not specified will default to the
77-
* runtime readiness probe tuning settings.
78-
*
79-
* @since 2.0
80-
*/
81-
@SerializedName("readinessProbe")
82-
@Expose
83-
@Description("Settings for the readiness probe associated with a server")
84-
private V1Probe readinessProbe = new V1Probe();
85-
8650
/**
8751
* Fills in any undefined settings in this configuration from another configuration.
8852
*
@@ -94,9 +58,7 @@ void fillInFrom(BaseConfiguration other) {
9458
if (serverStartState == null) serverStartState = other.getServerStartState();
9559
if (overrideStartPolicyFrom(other)) serverStartPolicy = other.getServerStartPolicy();
9660

97-
for (V1EnvVar var : getV1EnvVars(other)) addIfMissing(var);
98-
copyValues(livenessProbe, other.livenessProbe);
99-
copyValues(readinessProbe, other.readinessProbe);
61+
serverPod.fillInFrom(other.serverPod);
10062
}
10163

10264
private boolean overrideStartPolicyFrom(BaseConfiguration other) {
@@ -112,37 +74,13 @@ private boolean isStartNever() {
11274
return Objects.equals(getServerStartPolicy(), ConfigurationConstants.START_NEVER);
11375
}
11476

115-
private List<V1EnvVar> getV1EnvVars(BaseConfiguration configuration) {
116-
return Optional.ofNullable(configuration.getEnv()).orElse(emptyList());
117-
}
118-
119-
private void addIfMissing(V1EnvVar var) {
120-
if (!hasEnvVar(var.getName())) addEnvVar(var);
121-
}
122-
123-
private boolean hasEnvVar(String name) {
124-
if (env == null) return false;
125-
for (V1EnvVar var : env) {
126-
if (var.getName().equals(name)) return true;
127-
}
128-
return false;
129-
}
130-
131-
private void copyValues(V1Probe toProbe, V1Probe fromProbe) {
132-
if (toProbe.getInitialDelaySeconds() == null)
133-
toProbe.setInitialDelaySeconds(fromProbe.getInitialDelaySeconds());
134-
if (toProbe.getTimeoutSeconds() == null)
135-
toProbe.setTimeoutSeconds(fromProbe.getTimeoutSeconds());
136-
if (toProbe.getPeriodSeconds() == null) toProbe.setPeriodSeconds(fromProbe.getPeriodSeconds());
137-
}
138-
13977
/**
14078
* Returns true if any version 2 configuration fields are specified.
14179
*
14280
* @return whether there is version 2 configuration field in this instance
14381
*/
14482
protected boolean hasV2Fields() {
145-
return serverStartState != null || serverStartPolicy != null || !env.isEmpty();
83+
return serverStartState != null || serverStartPolicy != null || serverPod.hasV2Fields();
14684
}
14785

14886
@Nullable
@@ -156,20 +94,15 @@ void setServerStartState(@Nullable String serverStartState) {
15694

15795
@Nullable
15896
public List<V1EnvVar> getEnv() {
159-
return env;
97+
return serverPod.getEnv();
16098
}
16199

162100
public void setEnv(@Nullable List<V1EnvVar> env) {
163-
this.env = env;
101+
serverPod.setEnv(env);
164102
}
165103

166104
void addEnvironmentVariable(String name, String value) {
167-
addEnvVar(new V1EnvVar().name(name).value(value));
168-
}
169-
170-
private void addEnvVar(V1EnvVar var) {
171-
if (env == null) setEnv(new ArrayList<>());
172-
env.add(var);
105+
serverPod.addEnvVar(new V1EnvVar().name(name).value(value));
173106
}
174107

175108
void setServerStartPolicy(String serverStartPolicy) {
@@ -181,33 +114,27 @@ protected String getServerStartPolicy() {
181114
}
182115

183116
void setLivenessProbe(Integer initialDelay, Integer timeout, Integer period) {
184-
livenessProbe.initialDelaySeconds(initialDelay).timeoutSeconds(timeout).periodSeconds(period);
117+
serverPod.setLivenessProbe(initialDelay, timeout, period);
185118
}
186119

187-
V1Probe getLivenessProbe() {
188-
return livenessProbe;
120+
ProbeTuning getLivenessProbe() {
121+
return serverPod.getLivenessProbeTuning();
189122
}
190123

191124
void setReadinessProbe(Integer initialDelay, Integer timeout, Integer period) {
192-
readinessProbe.initialDelaySeconds(initialDelay).timeoutSeconds(timeout).periodSeconds(period);
125+
serverPod.setReadinessProbeTuning(initialDelay, timeout, period);
193126
}
194127

195-
V1Probe getReadinessProbe() {
196-
return readinessProbe;
128+
ProbeTuning getReadinessProbe() {
129+
return serverPod.getReadinessProbeTuning();
197130
}
198131

199132
@Override
200133
public String toString() {
201134
return new ToStringBuilder(this)
202135
.append("serverStartState", serverStartState)
203136
.append("serverStartPolicy", serverStartPolicy)
204-
.append("livenessProbe.initialDelaySeconds", livenessProbe.getInitialDelaySeconds())
205-
.append("livenessProbe.timeoutSeconds", livenessProbe.getTimeoutSeconds())
206-
.append("livenessProbe.periodSeconds", livenessProbe.getPeriodSeconds())
207-
.append("readinessProbeProbe.initialDelaySeconds", readinessProbe.getInitialDelaySeconds())
208-
.append("readinessProbe.timeoutSeconds", readinessProbe.getTimeoutSeconds())
209-
.append("readinessProbe.periodSeconds", readinessProbe.getPeriodSeconds())
210-
.append("env", env)
137+
.append("serverPod", serverPod)
211138
.toString();
212139
}
213140

@@ -220,22 +147,18 @@ public boolean equals(Object o) {
220147
BaseConfiguration that = (BaseConfiguration) o;
221148

222149
return new EqualsBuilder()
223-
.append(env, that.env)
150+
.append(serverPod, that.serverPod)
224151
.append(serverStartState, that.serverStartState)
225152
.append(serverStartPolicy, that.serverStartPolicy)
226-
.append(livenessProbe, that.livenessProbe)
227-
.append(readinessProbe, that.readinessProbe)
228153
.isEquals();
229154
}
230155

231156
@Override
232157
public int hashCode() {
233158
return new HashCodeBuilder(17, 37)
234-
.append(env)
159+
.append(serverPod)
235160
.append(serverStartState)
236161
.append(serverStartPolicy)
237-
.append(livenessProbe)
238-
.append(readinessProbe)
239162
.toHashCode();
240163
}
241164
}
Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
// Copyright 2018, Oracle Corporation and/or its affiliates. All rights reserved.
2+
// Licensed under the Universal Permissive License v 1.0 as shown at
3+
// http://oss.oracle.com/licenses/upl.
4+
5+
package oracle.kubernetes.weblogic.domain.v2;
6+
7+
import com.google.gson.annotations.SerializedName;
8+
import oracle.kubernetes.json.Description;
9+
import org.apache.commons.lang3.builder.EqualsBuilder;
10+
import org.apache.commons.lang3.builder.HashCodeBuilder;
11+
import org.apache.commons.lang3.builder.ToStringBuilder;
12+
13+
public class ProbeTuning {
14+
@Description("The number of seconds before the first check is performed")
15+
private Integer initialDelaySeconds = null;
16+
17+
@Description("The number of seconds between checks")
18+
@SerializedName("periodSeconds")
19+
private Integer periodSeconds = null;
20+
21+
@Description("The number of seconds with no response that indicates a failure")
22+
@SerializedName("timeoutSeconds")
23+
private Integer timeoutSeconds = null;
24+
25+
public ProbeTuning() {}
26+
27+
public Integer getInitialDelaySeconds() {
28+
return initialDelaySeconds;
29+
}
30+
31+
public ProbeTuning initialDelaySeconds(Integer initialDelaySeconds) {
32+
this.initialDelaySeconds = initialDelaySeconds;
33+
return this;
34+
}
35+
36+
public Integer getPeriodSeconds() {
37+
return periodSeconds;
38+
}
39+
40+
public ProbeTuning periodSeconds(Integer periodSeconds) {
41+
this.periodSeconds = periodSeconds;
42+
return this;
43+
}
44+
45+
public Integer getTimeoutSeconds() {
46+
return timeoutSeconds;
47+
}
48+
49+
public ProbeTuning timeoutSeconds(Integer timeoutSeconds) {
50+
this.timeoutSeconds = timeoutSeconds;
51+
return this;
52+
}
53+
54+
@Override
55+
public String toString() {
56+
return new ToStringBuilder(this)
57+
.append("initialDelaySeconds", initialDelaySeconds)
58+
.append("periodSeconds", periodSeconds)
59+
.append("timeoutSeconds", timeoutSeconds)
60+
.toString();
61+
}
62+
63+
@Override
64+
public boolean equals(Object o) {
65+
if (this == o) return true;
66+
67+
if (o == null || getClass() != o.getClass()) return false;
68+
69+
ProbeTuning that = (ProbeTuning) o;
70+
71+
return new EqualsBuilder()
72+
.append(initialDelaySeconds, that.initialDelaySeconds)
73+
.append(periodSeconds, that.periodSeconds)
74+
.append(timeoutSeconds, that.timeoutSeconds)
75+
.isEquals();
76+
}
77+
78+
@Override
79+
public int hashCode() {
80+
return new HashCodeBuilder(17, 37)
81+
.append(initialDelaySeconds)
82+
.append(periodSeconds)
83+
.append(timeoutSeconds)
84+
.toHashCode();
85+
}
86+
}

0 commit comments

Comments
 (0)