44
55package oracle .kubernetes .weblogic .domain .v2 ;
66
7- import static java .util .Collections .emptyList ;
8-
97import com .google .gson .annotations .Expose ;
108import com .google .gson .annotations .SerializedName ;
119import io .kubernetes .client .models .V1EnvVar ;
12- import io .kubernetes .client .models .V1Probe ;
13- import java .util .ArrayList ;
1410import java .util .List ;
1511import java .util .Objects ;
16- import java .util .Optional ;
1712import javax .annotation .Nullable ;
18- import javax .validation .Valid ;
1913import oracle .kubernetes .json .Description ;
2014import org .apache .commons .lang3 .builder .EqualsBuilder ;
2115import org .apache .commons .lang3 .builder .HashCodeBuilder ;
2923 */
3024public 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}
0 commit comments