Skip to content

Commit 3042ef1

Browse files
authored
Check CLI options duplicated from env vars and SE_OPTS (#2451)
Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
1 parent 1f81f77 commit 3042ef1

File tree

4 files changed

+95
-60
lines changed

4 files changed

+95
-60
lines changed

Base/Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ RUN /opt/bin/add-jks-helper.sh -d /opt/selenium/secrets \
156156
# Boolean value, maps "--bind-host"
157157
ENV SE_BIND_HOST=false \
158158
SE_SERVER_PROTOCOL="http" \
159+
CONFIG_FILE="/opt/selenium/config.toml" \
159160
# Boolean value, maps "--reject-unsupported-caps"
160161
SE_REJECT_UNSUPPORTED_CAPS=false \
161162
SE_OTEL_JAVA_GLOBAL_AUTOCONFIGURE_ENABLED=true \

Distributor/start-selenium-grid-distributor.sh

Lines changed: 51 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -24,53 +24,76 @@ function append_se_opts() {
2424
fi
2525
}
2626

27-
if [[ -z "${SE_EVENT_BUS_HOST}" ]]; then
28-
echo "SE_EVENT_BUS_HOST not set, exiting!" 1>&2
29-
exit 1
27+
if [ ! -z "$SE_OPTS" ]; then
28+
echo "Appending Selenium options: ${SE_OPTS}"
3029
fi
3130

32-
if [[ -z "${SE_EVENT_BUS_PUBLISH_PORT}" ]]; then
33-
echo "SE_EVENT_BUS_PUBLISH_PORT not set, exiting!" 1>&2
31+
if [[ ! -z "${SE_EVENT_BUS_HOST}" ]]; then
32+
if [[ ! -z "${SE_EVENT_BUS_PUBLISH_PORT}" ]]; then
33+
append_se_opts "--publish-events" "tcp://${SE_EVENT_BUS_HOST}:${SE_EVENT_BUS_PUBLISH_PORT}"
34+
else
35+
echo "SE_EVENT_BUS_PUBLISH_PORT not set, exiting!" 1>&2
36+
exit 1
37+
fi
38+
if [[ ! -z "${SE_EVENT_BUS_SUBSCRIBE_PORT}" ]]; then
39+
append_se_opts "--subscribe-events" "tcp://${SE_EVENT_BUS_HOST}:${SE_EVENT_BUS_SUBSCRIBE_PORT}"
40+
else
41+
echo "SE_EVENT_BUS_SUBSCRIBE_PORT not set, exiting!" 1>&2
42+
exit 1
43+
fi
44+
else
45+
echo "SE_EVENT_BUS_HOST not set, exiting!" 1>&2
3446
exit 1
3547
fi
3648

37-
if [[ -z "${SE_EVENT_BUS_SUBSCRIBE_PORT}" ]]; then
38-
echo "SE_EVENT_BUS_SUBSCRIBE_PORT not set, exiting!" 1>&2
49+
if [[ ! -z "${SE_SESSIONS_MAP_HOST}" ]]; then
50+
append_se_opts "--sessions-host" "${SE_SESSIONS_MAP_HOST}"
51+
if [[ ! -z "${SE_SESSIONS_MAP_PORT}" ]]; then
52+
append_se_opts "--sessions-port" "${SE_SESSIONS_MAP_PORT}"
53+
else
54+
echo "SE_SESSIONS_MAP_PORT not set, exiting!" 1>&2
55+
exit 1
56+
fi
57+
else
58+
echo "SE_SESSIONS_MAP_HOST not set, exiting!" 1>&2
3959
exit 1
4060
fi
4161

42-
if [[ -z "${SE_SESSIONS_MAP_HOST}" ]]; then
43-
echo "SE_SESSIONS_MAP_HOST not set, exiting!" 1>&2
62+
if [[ ! -z "${SE_SESSION_QUEUE_HOST}" ]]; then
63+
append_se_opts "--sessionqueue-host" "${SE_SESSION_QUEUE_HOST}"
64+
if [[ ! -z "${SE_SESSION_QUEUE_PORT}" ]]; then
65+
append_se_opts "--sessionqueue-port" "${SE_SESSION_QUEUE_PORT}"
66+
else
67+
echo "SE_SESSION_QUEUE_PORT not set, exiting!" 1>&2
68+
exit 1
69+
fi
70+
else
71+
echo "SE_SESSION_QUEUE_HOST not set, exiting!" 1>&2
4472
exit 1
4573
fi
4674

47-
if [[ -z "${SE_SESSIONS_MAP_PORT}" ]]; then
48-
echo "SE_SESSIONS_MAP_PORT not set, exiting!" 1>&2
49-
exit 1
75+
if [ ! -z "$SE_DISTRIBUTOR_HOST" ]; then
76+
append_se_opts "--host" "${SE_DISTRIBUTOR_HOST}"
5077
fi
5178

52-
if [[ -z "${SE_SESSION_QUEUE_HOST}" ]]; then
53-
echo "SE_SESSION_QUEUE_HOST not set, exiting!" 1>&2
54-
exit 1
79+
if [ ! -z "$SE_DISTRIBUTOR_PORT" ]; then
80+
append_se_opts "--port" "${SE_DISTRIBUTOR_PORT}"
5581
fi
5682

57-
if [[ -z "${SE_SESSION_QUEUE_PORT}" ]]; then
58-
echo "SE_SESSION_QUEUE_PORT not set, exiting!" 1>&2
59-
exit 1
83+
if [ ! -z "${SE_BIND_HOST}" ]; then
84+
append_se_opts "--bind-host" "${SE_BIND_HOST}"
6085
fi
6186

62-
if [ ! -z "$SE_OPTS" ]; then
63-
echo "Appending Selenium options: ${SE_OPTS}"
87+
if [ ! -z "${SE_HEALTHCHECK_INTERVAL}" ]; then
88+
append_se_opts "--healthcheck-interval" "${SE_HEALTHCHECK_INTERVAL}"
6489
fi
6590

66-
if [ ! -z "$SE_DISTRIBUTOR_HOST" ]; then
67-
echo "Using SE_DISTRIBUTOR_HOST: ${SE_DISTRIBUTOR_HOST}"
68-
HOST_CONFIG="--host ${SE_DISTRIBUTOR_HOST}"
91+
if [ ! -z "${SE_SESSION_RETRY_INTERVAL}" ]; then
92+
append_se_opts "--session-retry-interval" "${SE_SESSION_RETRY_INTERVAL}"
6993
fi
7094

71-
if [ ! -z "$SE_DISTRIBUTOR_PORT" ]; then
72-
echo "Using SE_DISTRIBUTOR_PORT: ${SE_DISTRIBUTOR_PORT}"
73-
PORT_CONFIG="--port ${SE_DISTRIBUTOR_PORT}"
95+
if [ ! -z "${SE_SESSION_REQUEST_TIMEOUT}" ]; then
96+
append_se_opts "--session-request-timeout" "${SE_SESSION_REQUEST_TIMEOUT}"
7497
fi
7598

7699
if [ ! -z "$SE_LOG_LEVEL" ]; then
@@ -158,16 +181,7 @@ fi
158181

159182
java ${JAVA_OPTS:-$SE_JAVA_OPTS} \
160183
-jar /opt/selenium/selenium-server.jar \
161-
${EXTRA_LIBS} distributor \
162-
--sessions-host "${SE_SESSIONS_MAP_HOST}" --sessions-port "${SE_SESSIONS_MAP_PORT}" \
163-
--sessionqueue-host "${SE_SESSION_QUEUE_HOST}" --sessionqueue-port "${SE_SESSION_QUEUE_PORT}" \
164-
--publish-events tcp://"${SE_EVENT_BUS_HOST}":"${SE_EVENT_BUS_PUBLISH_PORT}" \
165-
--subscribe-events tcp://"${SE_EVENT_BUS_HOST}":"${SE_EVENT_BUS_SUBSCRIBE_PORT}" \
166-
--session-request-timeout ${SE_SESSION_REQUEST_TIMEOUT} \
167-
--session-retry-interval ${SE_SESSION_RETRY_INTERVAL} \
168-
--healthcheck-interval ${SE_HEALTHCHECK_INTERVAL} \
169-
--bind-host ${SE_BIND_HOST} \
184+
${EXTRA_LIBS} \
185+
distributor \
170186
--bind-bus false \
171-
${HOST_CONFIG} \
172-
${PORT_CONFIG} \
173187
${SE_OPTS}

Hub/start-selenium-grid-hub.sh

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,15 @@ if [ ! -z "$SE_OPTS" ]; then
2929
fi
3030

3131
if [ ! -z "$SE_HUB_HOST" ]; then
32-
echo "Using SE_HUB_HOST: ${SE_HUB_HOST}"
33-
HOST_CONFIG="--host ${SE_HUB_HOST}"
32+
append_se_opts "--host" "${SE_HUB_HOST}"
3433
fi
3534

3635
if [ ! -z "$SE_HUB_PORT" ]; then
37-
echo "Using SE_HUB_PORT: ${SE_HUB_PORT}"
38-
PORT_CONFIG="--port ${SE_HUB_PORT}"
36+
append_se_opts "--port" "${SE_HUB_PORT}"
3937
fi
4038

4139
if [ ! -z "$SE_SUB_PATH" ]; then
42-
echo "Using SE_SUB_PATH: ${SE_SUB_PATH}"
43-
SUB_PATH_CONFIG="--sub-path ${SE_SUB_PATH}"
40+
append_se_opts "--sub-path" "${SE_SUB_PATH}"
4441
fi
4542

4643
if [ ! -z "$SE_LOG_LEVEL" ]; then
@@ -108,6 +105,30 @@ if [ ! -z "$SE_NEW_SESSION_THREAD_POOL_SIZE" ]; then
108105
append_se_opts "--newsession-threadpool-size" "${SE_NEW_SESSION_THREAD_POOL_SIZE}"
109106
fi
110107

108+
if [ ! -z "${SE_SESSION_REQUEST_TIMEOUT}" ]; then
109+
append_se_opts "--session-request-timeout" "${SE_SESSION_REQUEST_TIMEOUT}"
110+
fi
111+
112+
if [ ! -z "${SE_SESSION_RETRY_INTERVAL}" ]; then
113+
append_se_opts "--session-retry-interval" "${SE_SESSION_RETRY_INTERVAL}"
114+
fi
115+
116+
if [ ! -z "${SE_HEALTHCHECK_INTERVAL}" ]; then
117+
append_se_opts "--healthcheck-interval" "${SE_HEALTHCHECK_INTERVAL}"
118+
fi
119+
120+
if [ ! -z "${SE_RELAX_CHECKS}" ]; then
121+
append_se_opts "--relax-checks" "${SE_RELAX_CHECKS}"
122+
fi
123+
124+
if [ ! -z "${SE_BIND_HOST}" ]; then
125+
append_se_opts "--bind-host" "${SE_BIND_HOST}"
126+
fi
127+
128+
if [ ! -z "${CONFIG_FILE}" ]; then
129+
append_se_opts "--config" "${CONFIG_FILE}"
130+
fi
131+
111132
EXTRA_LIBS=""
112133

113134
if [ "$SE_ENABLE_TRACING" = "true" ]; then
@@ -140,14 +161,6 @@ fi
140161

141162
java ${JAVA_OPTS:-$SE_JAVA_OPTS} \
142163
-jar /opt/selenium/selenium-server.jar \
143-
${EXTRA_LIBS} hub \
144-
--session-request-timeout ${SE_SESSION_REQUEST_TIMEOUT} \
145-
--session-retry-interval ${SE_SESSION_RETRY_INTERVAL} \
146-
--healthcheck-interval ${SE_HEALTHCHECK_INTERVAL} \
147-
--relax-checks ${SE_RELAX_CHECKS} \
148-
--bind-host ${SE_BIND_HOST} \
149-
--config /opt/selenium/config.toml \
150-
${HOST_CONFIG} \
151-
${PORT_CONFIG} \
152-
${SUB_PATH_CONFIG} \
164+
${EXTRA_LIBS} \
165+
hub \
153166
${SE_OPTS}

NodeBase/start-selenium-node.sh

Lines changed: 14 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ function append_se_opts() {
3131
fi
3232
}
3333

34+
if [ ! -z "$SE_OPTS" ]; then
35+
echo "Appending Selenium options: ${SE_OPTS}"
36+
fi
37+
3438
if [[ -z "${SE_EVENT_BUS_HOST}" ]]; then
3539
echo "SE_EVENT_BUS_HOST not set, exiting!" 1>&2
3640
exit 1
@@ -46,10 +50,6 @@ if [[ -z "${SE_EVENT_BUS_SUBSCRIBE_PORT}" ]]; then
4650
exit 1
4751
fi
4852

49-
if [ ! -z "$SE_OPTS" ]; then
50-
echo "Appending Selenium options: ${SE_OPTS}"
51-
fi
52-
5353
if [ ! -z "$SE_NODE_SESSION_TIMEOUT" ]; then
5454
append_se_opts "--session-timeout" "${SE_NODE_SESSION_TIMEOUT}"
5555
fi
@@ -155,6 +155,14 @@ else
155155
echo "Tracing is disabled"
156156
fi
157157

158+
if [ ! -z "${SE_BIND_HOST}" ]; then
159+
append_se_opts "--bind-host" "${SE_BIND_HOST}"
160+
fi
161+
162+
if [ ! -z "${CONFIG_FILE}" ]; then
163+
append_se_opts "--config" "${CONFIG_FILE}"
164+
fi
165+
158166
echo "Selenium Grid Node configuration: "
159167
cat "$CONFIG_FILE"
160168
echo "Starting Selenium Grid Node..."
@@ -168,7 +176,6 @@ java ${JAVA_OPTS:-$SE_JAVA_OPTS} \
168176
${EDGE_DRIVER_PATH_PROPERTY} \
169177
${GECKO_DRIVER_PATH_PROPERTY} \
170178
-jar /opt/selenium/selenium-server.jar \
171-
${EXTRA_LIBS} node \
172-
--bind-host ${SE_BIND_HOST} \
173-
--config "$CONFIG_FILE" \
179+
${EXTRA_LIBS} \
180+
node \
174181
${SE_OPTS}

0 commit comments

Comments
 (0)