Skip to content

Commit ff77069

Browse files
committed
First cut at mocking out the wls servers to speed development testing time
1 parent 682f5da commit ff77069

File tree

7 files changed

+70
-27
lines changed

7 files changed

+70
-27
lines changed

kubernetes/charts/weblogic-operator/templates/_operator-dep.tpl

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,10 @@ spec:
4040
- name: "REMOTE_DEBUG_PORT"
4141
value: {{ .internalDebugHttpPort | quote }}
4242
{{- end }}
43+
{{- if .mockWLS }}
44+
- name: "MOCK_WLS"
45+
value: "true"
46+
{{- end }}
4347
volumeMounts:
4448
- name: "weblogic-operator-cm-volume"
4549
mountPath: "/operator/config"

kubernetes/charts/weblogic-operator/templates/_validate-inputs.tpl

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
{{- end -}}
3636
{{- $ignore := include "utils.verifyString" (list $scope "tillerNamespace") -}}
3737
{{- $ignore := include "utils.verifyString" (list $scope "tillerServiceAccount") -}}
38+
{{- $ignore := include "utils.verifyOptionalBoolean" (list $scope "mockWLS") -}}
3839
{{- $ignore:= include "utils.endValidation" $scope -}}
3940
{{- include "operator.operatorVerificationHook" (list $scope "pre-upgrade") }}
4041
{{- include "operator.operatorVerificationHook" (list $scope "pre-install") }}

operator/src/main/java/oracle/kubernetes/operator/helpers/PodStepContext.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -696,6 +696,9 @@ void overrideContainerWeblogicEnvVars(List<V1EnvVar> vars) {
696696
addEnvVar(
697697
vars, "SERVICE_NAME", LegalNames.toServerServiceName(getDomainUID(), getServerName()));
698698
addEnvVar(vars, "AS_SERVICE_NAME", LegalNames.toServerServiceName(getDomainUID(), getAsName()));
699+
if (Boolean.getBoolean("mockWLS")) {
700+
addEnvVar(vars, "MOCK_WLS", "true");
701+
}
699702
hideAdminUserCredentials(vars);
700703
}
701704

operator/src/main/resources/scripts/livenessProbe.sh

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,17 @@ DN=${DOMAIN_NAME?}
1212
SN=${SERVER_NAME?}
1313
DH=${DOMAIN_HOME?}
1414

15-
STATEFILE=/${DH}/servers/${SN}/data/nodemanager/${SN}.state
15+
STATEFILE=${DH}/servers/${SN}/data/nodemanager/${SN}.state
1616

1717
# if the livenessProbeSuccessOverride file is available, treat failures as success
1818
#
1919
RETVAL=$(test -f /weblogic-operator/debug/livenessProbeSuccessOverride ; echo $?)
2020

21-
if [ `jps -l | grep -c " weblogic.NodeManager"` -eq 0 ]; then
22-
echo "Error: WebLogic NodeManager process not found."
23-
exit $RETVAL
21+
if [ "${MOCK_WLS}" != 'true' ]; then
22+
if [ `jps -l | grep -c " weblogic.NodeManager"` -eq 0 ]; then
23+
echo "Error: WebLogic NodeManager process not found."
24+
exit $RETVAL
25+
fi
2426
fi
2527
if [ -f ${STATEFILE} ] && [ `grep -c "FAILED_NOT_RESTARTABLE" ${STATEFILE}` -eq 1 ]; then
2628
echo "Error: WebLogic Server state is FAILED_NOT_RESTARTABLE."

operator/src/main/resources/scripts/readinessProbe.sh

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,17 @@ DN=${DOMAIN_NAME?}
1212
SN=${SERVER_NAME?}
1313
DH=${DOMAIN_HOME?}
1414

15-
STATEFILE=/${DH}/servers/${SN}/data/nodemanager/${SN}.state
15+
if [ -z $MOCK_WLS ]; then
16+
exit 0
17+
fi
18+
19+
STATEFILE=${DH}/servers/${SN}/data/nodemanager/${SN}.state
1620

17-
if [ `jps -l | grep -c " weblogic.NodeManager"` -eq 0 ]; then
18-
echo "Error: WebLogic NodeManager process not found."
19-
exit 1
21+
if [ "${MOCK_WLS}" != 'true' ]; then
22+
if [ `jps -l | grep -c " weblogic.NodeManager"` -eq 0 ]; then
23+
echo "Error: WebLogic NodeManager process not found."
24+
exit $RETVAL
25+
fi
2026
fi
2127

2228
if [ ! -f ${STATEFILE} ]; then

operator/src/main/resources/scripts/startServer.sh

Lines changed: 41 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,41 @@ function copyIfChanged() {
5959
fi
6060
}
6161

62+
#
63+
# Define function to start weblogic
64+
#
65+
66+
function startWLS() {
67+
#
68+
# Start NM
69+
#
70+
71+
trace "Start node manager"
72+
# call script to start node manager in same shell
73+
# $SERVER_OUT_FILE will be set in startNodeManager.sh
74+
. ${SCRIPTPATH}/startNodeManager.sh || exitOrLoop
75+
76+
#
77+
# Start WL Server
78+
#
79+
80+
# TBD We should probably || exit 1 if start-server.py itself fails, and dump NM log to stdout
81+
82+
trace "Start WebLogic Server via the nodemanager"
83+
${SCRIPTPATH}/wlst.sh $SCRIPTPATH/start-server.py
84+
}
85+
86+
function mockWLS() {
87+
88+
trace "Mocking WebLogic Server"
89+
90+
STATEFILE_DIR=${DOMAIN_HOME}/servers/${SERVER_NAME}/data/nodemanager
91+
STATEFILE=${STATEFILE_DIR}/${SERVER_NAME}.state
92+
93+
mkdir -p $STATEFILE_DIR
94+
echo "RUNNING:Y:N" > $STATEFILE
95+
}
96+
6297
#
6398
# Check and display input env vars
6499
#
@@ -122,29 +157,17 @@ for local_fname in ${DOMAIN_HOME}/optconfig/*.xml ; do
122157
fi
123158
done
124159

125-
#
126-
# Start NM
127-
#
128-
129-
trace "Start node manager"
130-
# call script to start node manager in same shell
131-
# $SERVER_OUT_FILE will be set in startNodeManager.sh
132-
. ${SCRIPTPATH}/startNodeManager.sh || exitOrLoop
133-
134-
#
135-
# Start WL Server
136-
#
137-
138-
# TBD We should probably || exit 1 if start-server.py itself fails, and dump NM log to stdout
139-
140-
trace "Start WebLogic Server via the nodemanager"
141-
${SCRIPTPATH}/wlst.sh $SCRIPTPATH/start-server.py
160+
if [ "${MOCK_WLS}" == 'true' ]; then
161+
mockWLS
162+
else
163+
startWLS
164+
fi
142165

143166
#
144167
# Wait forever. Kubernetes will monitor this pod via liveness and readyness probes.
145168
#
146169

147-
if [ "${SERVER_OUT_IN_POD_LOG}" == 'true' ] ; then
170+
if [ "${MOCK_WLS}" != 'true' ] && [ "${SERVER_OUT_IN_POD_LOG}" == 'true' ] ; then
148171
trace "Showing the server out file from ${SERVER_OUT_FILE}"
149172
tail -F -n +0 ${SERVER_OUT_FILE} || exitOrLoop
150173
else

src/scripts/operator.sh

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,17 @@ if [[ ! -z "$JAVA_LOGGING_LEVEL" ]]; then
5454
fi
5555
fi
5656

57+
if [ "${MOCK_WLS}" == 'true' ]; then
58+
MOCKING_WLS="-DmockWLS=true"
59+
fi
60+
5761
LOGGING="-Djava.util.logging.config.file=${LOGGING_CONFIG}"
5862
mkdir -m 777 -p /logs
5963
cp /operator/logstash.conf /logs/logstash.conf
6064
# assumption is that we have mounted a volume on /logs which is also visible to
6165
# the logstash container/pod.
6266

6367
# Start operator
64-
java $DEBUG $LOGGING -jar /operator/weblogic-kubernetes-operator.jar &
68+
java $MOCKING_WLS $DEBUG $LOGGING -jar /operator/weblogic-kubernetes-operator.jar &
6569
PID=$!
6670
wait $PID

0 commit comments

Comments
 (0)