Skip to content

Commit 7af2484

Browse files
committed
fix: Conflict CLI options from SE_OPTS and corresponding env variables
Signed-off-by: Viet Nguyen Duc <[email protected]>
1 parent e7ddd01 commit 7af2484

File tree

4 files changed

+118
-96
lines changed

4 files changed

+118
-96
lines changed

NodeBase/start-selenium-node.sh

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,23 @@ pacmd set-default-source v1.monitor
1212

1313
rm -f /tmp/.X*lock
1414

15+
function append_se_opts() {
16+
local option="${1}"
17+
local value="${2:-""}"
18+
local log_message="${3:-true}"
19+
if [[ "${SE_OPTS}" != *"${option}"* ]]; then
20+
if [ "${log_message}" = "true" ]; then
21+
echo "Appending Selenium option: ${option} ${value}"
22+
fi
23+
SE_OPTS="${SE_OPTS} ${option}"
24+
if [ ! -z "${value}" ]; then
25+
SE_OPTS="${SE_OPTS} ${value}"
26+
fi
27+
else
28+
echo "Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}"
29+
fi
30+
}
31+
1532
if [[ -z "${SE_EVENT_BUS_HOST}" ]]; then
1633
echo "SE_EVENT_BUS_HOST not set, exiting!" 1>&2
1734
exit 1
@@ -32,53 +49,43 @@ if [ ! -z "$SE_OPTS" ]; then
3249
fi
3350

3451
if [ ! -z "$SE_NODE_SESSION_TIMEOUT" ]; then
35-
echo "Appending Selenium options: --session-timeout ${SE_NODE_SESSION_TIMEOUT}"
36-
SE_OPTS="$SE_OPTS --session-timeout ${SE_NODE_SESSION_TIMEOUT}"
52+
append_se_opts "--session-timeout" "${SE_NODE_SESSION_TIMEOUT}"
3753
fi
3854

3955
if [ ! -z "$SE_NODE_ENABLE_MANAGED_DOWNLOADS" ]; then
40-
echo "Appending Selenium options: --enable-managed-downloads ${SE_NODE_ENABLE_MANAGED_DOWNLOADS}"
41-
SE_OPTS="$SE_OPTS --enable-managed-downloads ${SE_NODE_ENABLE_MANAGED_DOWNLOADS}"
56+
append_se_opts "--enable-managed-downloads" "${SE_NODE_ENABLE_MANAGED_DOWNLOADS}"
4257
fi
4358

4459
if [ ! -z "$SE_NODE_ENABLE_CDP" ]; then
45-
echo "Appending Selenium options: --enable-cdp ${SE_NODE_ENABLE_CDP}"
46-
SE_OPTS="$SE_OPTS --enable-cdp ${SE_NODE_ENABLE_CDP}"
60+
append_se_opts "--enable-cdp" "${SE_NODE_ENABLE_CDP}"
4761
fi
4862

4963
if [ ! -z "$SE_NODE_REGISTER_PERIOD" ]; then
50-
echo "Appending Selenium options: --register-period ${SE_NODE_REGISTER_PERIOD}"
51-
SE_OPTS="$SE_OPTS --register-period ${SE_NODE_REGISTER_PERIOD}"
64+
append_se_opts "--register-period" "${SE_NODE_REGISTER_PERIOD}"
5265
fi
5366

5467
if [ ! -z "$SE_NODE_REGISTER_CYCLE" ]; then
55-
echo "Appending Selenium options: --register-cycle ${SE_NODE_REGISTER_CYCLE}"
56-
SE_OPTS="$SE_OPTS --register-cycle ${SE_NODE_REGISTER_CYCLE}"
68+
append_se_opts "--register-cycle" "${SE_NODE_REGISTER_CYCLE}"
5769
fi
5870

5971
if [ ! -z "$SE_NODE_HEARTBEAT_PERIOD" ]; then
60-
echo "Appending Selenium options: --heartbeat-period ${SE_NODE_HEARTBEAT_PERIOD}"
61-
SE_OPTS="$SE_OPTS --heartbeat-period ${SE_NODE_HEARTBEAT_PERIOD}"
72+
append_se_opts "--heartbeat-period" "${SE_NODE_HEARTBEAT_PERIOD}"
6273
fi
6374

6475
if [ ! -z "$SE_LOG_LEVEL" ]; then
65-
echo "Appending Selenium options: --log-level ${SE_LOG_LEVEL}"
66-
SE_OPTS="$SE_OPTS --log-level ${SE_LOG_LEVEL}"
76+
append_se_opts "--log-level" "${SE_LOG_LEVEL}"
6777
fi
6878

6979
if [ ! -z "$SE_HTTP_LOGS" ]; then
70-
echo "Appending Selenium options: --http-logs ${SE_HTTP_LOGS}"
71-
SE_OPTS="$SE_OPTS --http-logs ${SE_HTTP_LOGS}"
80+
append_se_opts "--http-logs" "${SE_HTTP_LOGS}"
7281
fi
7382

7483
if [ ! -z "$SE_STRUCTURED_LOGS" ]; then
75-
echo "Appending Selenium options: --structured-logs ${SE_STRUCTURED_LOGS}"
76-
SE_OPTS="$SE_OPTS --structured-logs ${SE_STRUCTURED_LOGS}"
84+
append_se_opts "--structured-logs" "${SE_STRUCTURED_LOGS}"
7785
fi
7886

7987
if [ ! -z "$SE_EXTERNAL_URL" ]; then
80-
echo "Appending Selenium options: --external-url ${SE_EXTERNAL_URL}"
81-
SE_OPTS="$SE_OPTS --external-url ${SE_EXTERNAL_URL}"
88+
append_se_opts "--external-url" "${SE_EXTERNAL_URL}"
8289
fi
8390

8491
if [ "${SE_ENABLE_TLS}" = "true" ]; then
@@ -99,18 +106,15 @@ if [ "${SE_ENABLE_TLS}" = "true" ]; then
99106
SE_JAVA_OPTS="$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}"
100107
# Configure certificate and private key for component communication
101108
if [ ! -z "$SE_HTTPS_CERTIFICATE" ]; then
102-
echo "Appending Selenium options: --https-certificate ${SE_HTTPS_CERTIFICATE}"
103-
SE_OPTS="$SE_OPTS --https-certificate ${SE_HTTPS_CERTIFICATE}"
109+
append_se_opts "--https-certificate" "${SE_HTTPS_CERTIFICATE}"
104110
fi
105111
if [ ! -z "$SE_HTTPS_PRIVATE_KEY" ]; then
106-
echo "Appending Selenium options: --https-private-key ${SE_HTTPS_PRIVATE_KEY}"
107-
SE_OPTS="$SE_OPTS --https-private-key ${SE_HTTPS_PRIVATE_KEY}"
112+
append_se_opts "--https-private-key" "${SE_HTTPS_PRIVATE_KEY}"
108113
fi
109114
fi
110115

111116
if [ ! -z "$SE_REGISTRATION_SECRET" ]; then
112-
echo "Appending Selenium options: --registration-secret ${SE_REGISTRATION_SECRET}"
113-
SE_OPTS="$SE_OPTS --registration-secret ${SE_REGISTRATION_SECRET}"
117+
append_se_opts "--registration-secret" "${SE_REGISTRATION_SECRET}"
114118
fi
115119

116120
if [ "$GENERATE_CONFIG" = true ]; then
@@ -144,7 +148,7 @@ if [ "$SE_ENABLE_TRACING" = "true" ]; then
144148
SE_JAVA_OPTS="$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}"
145149
fi
146150
else
147-
SE_OPTS="$SE_OPTS --tracing false"
151+
append_se_opts "--tracing" "false"
148152
SE_JAVA_OPTS="$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false"
149153
echo "Tracing is disabled"
150154
fi

NodeDocker/start-selenium-grid-docker.sh

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,23 @@ set -e
55

66
echo "Starting Selenium Grid Node Docker..."
77

8+
function append_se_opts() {
9+
local option="${1}"
10+
local value="${2:-""}"
11+
local log_message="${3:-true}"
12+
if [[ "${SE_OPTS}" != *"${option}"* ]]; then
13+
if [ "${log_message}" = "true" ]; then
14+
echo "Appending Selenium option: ${option} ${value}"
15+
fi
16+
SE_OPTS="${SE_OPTS} ${option}"
17+
if [ ! -z "${value}" ]; then
18+
SE_OPTS="${SE_OPTS} ${value}"
19+
fi
20+
else
21+
echo "Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}"
22+
fi
23+
}
24+
825
if [[ -z "${SE_EVENT_BUS_HOST}" ]]; then
926
echo "SE_EVENT_BUS_HOST not set, exiting!" 1>&2
1027
exit 1
@@ -30,23 +47,19 @@ if [ ! -z "$SE_NODE_GRID_URL" ]; then
3047
fi
3148

3249
if [ ! -z "$SE_LOG_LEVEL" ]; then
33-
echo "Appending Selenium options: --log-level ${SE_LOG_LEVEL}"
34-
SE_OPTS="$SE_OPTS --log-level ${SE_LOG_LEVEL}"
50+
append_se_opts "--log-level" "${SE_LOG_LEVEL}"
3551
fi
3652

3753
if [ ! -z "$SE_HTTP_LOGS" ]; then
38-
echo "Appending Selenium options: --http-logs ${SE_HTTP_LOGS}"
39-
SE_OPTS="$SE_OPTS --http-logs ${SE_HTTP_LOGS}"
54+
append_se_opts "--http-logs" "${SE_HTTP_LOGS}"
4055
fi
4156

4257
if [ ! -z "$SE_STRUCTURED_LOGS" ]; then
43-
echo "Appending Selenium options: --structured-logs ${SE_STRUCTURED_LOGS}"
44-
SE_OPTS="$SE_OPTS --structured-logs ${SE_STRUCTURED_LOGS}"
58+
append_se_opts "--structured-logs" "${SE_STRUCTURED_LOGS}"
4559
fi
4660

4761
if [ ! -z "$SE_EXTERNAL_URL" ]; then
48-
echo "Appending Selenium options: --external-url ${SE_EXTERNAL_URL}"
49-
SE_OPTS="$SE_OPTS --external-url ${SE_EXTERNAL_URL}"
62+
append_se_opts "--external-url" "${SE_EXTERNAL_URL}"
5063
fi
5164

5265
if [ "${SE_ENABLE_TLS}" = "true" ]; then
@@ -67,12 +80,10 @@ if [ "${SE_ENABLE_TLS}" = "true" ]; then
6780
SE_JAVA_OPTS="$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}"
6881
# Configure certificate and private key for component communication
6982
if [ ! -z "$SE_HTTPS_CERTIFICATE" ]; then
70-
echo "Appending Selenium options: --https-certificate ${SE_HTTPS_CERTIFICATE}"
71-
SE_OPTS="$SE_OPTS --https-certificate ${SE_HTTPS_CERTIFICATE}"
83+
append_se_opts "--https-certificate" "${SE_HTTPS_CERTIFICATE}"
7284
fi
7385
if [ ! -z "$SE_HTTPS_PRIVATE_KEY" ]; then
74-
echo "Appending Selenium options: --https-private-key ${SE_HTTPS_PRIVATE_KEY}"
75-
SE_OPTS="$SE_OPTS --https-private-key ${SE_HTTPS_PRIVATE_KEY}"
86+
append_se_opts "--https-private-key" "${SE_HTTPS_PRIVATE_KEY}"
7687
fi
7788
fi
7889

@@ -101,7 +112,7 @@ if [ "$SE_ENABLE_TRACING" = "true" ]; then
101112
SE_JAVA_OPTS="$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}"
102113
fi
103114
else
104-
SE_OPTS="$SE_OPTS --tracing false"
115+
append_se_opts "--tracing" "false"
105116
SE_JAVA_OPTS="$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false"
106117
echo "Tracing is disabled"
107118
fi

Standalone/start-selenium-standalone.sh

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,23 @@ pacmd set-default-sink v1
1212
# set the monitor of v1 sink to be the default source
1313
pacmd set-default-source v1.monitor
1414

15+
function append_se_opts() {
16+
local option="${1}"
17+
local value="${2:-""}"
18+
local log_message="${3:-true}"
19+
if [[ "${SE_OPTS}" != *"${option}"* ]]; then
20+
if [ "${log_message}" = "true" ]; then
21+
echo "Appending Selenium option: ${option} ${value}"
22+
fi
23+
SE_OPTS="${SE_OPTS} ${option}"
24+
if [ ! -z "${value}" ]; then
25+
SE_OPTS="${SE_OPTS} ${value}"
26+
fi
27+
else
28+
echo "Selenium option: ${option} already set in env variable SE_OPTS. Ignore new option: ${option} ${value}"
29+
fi
30+
}
31+
1532
if [ ! -z "$SE_SUB_PATH" ]; then
1633
echo "Using SE_SUB_PATH: ${SE_SUB_PATH}"
1734
SUB_PATH_CONFIG="--sub-path ${SE_SUB_PATH}"
@@ -22,63 +39,51 @@ if [ ! -z "$SE_OPTS" ]; then
2239
fi
2340

2441
if [ ! -z "$SE_DISABLE_UI" ]; then
25-
echo "Appending Selenium options: --disable-ui ${SE_DISABLE_UI}"
26-
SE_OPTS="$SE_OPTS --disable-ui ${SE_DISABLE_UI}"
42+
append_se_opts "--disable-ui" "${SE_DISABLE_UI}"
2743
fi
2844

2945
if [ ! -z "$SE_ROUTER_USERNAME" ]; then
30-
echo "Appending Selenium options: --username ${SE_ROUTER_USERNAME}"
31-
SE_OPTS="$SE_OPTS --username ${SE_ROUTER_USERNAME}"
46+
append_se_opts "--username" "${SE_ROUTER_USERNAME}"
3247
fi
3348

3449
if [ ! -z "$SE_ROUTER_PASSWORD" ]; then
35-
echo "Appending Selenium options: --password ${SE_ROUTER_PASSWORD}"
36-
SE_OPTS="$SE_OPTS --password ${SE_ROUTER_PASSWORD}"
50+
append_se_opts "--password" "${SE_ROUTER_PASSWORD}"
3751
fi
3852

3953
if [ ! -z "$SE_NODE_ENABLE_MANAGED_DOWNLOADS" ]; then
40-
echo "Appending Selenium options: --enable-managed-downloads ${SE_NODE_ENABLE_MANAGED_DOWNLOADS}"
41-
SE_OPTS="$SE_OPTS --enable-managed-downloads ${SE_NODE_ENABLE_MANAGED_DOWNLOADS}"
54+
append_se_opts "--enable-managed-downloads" "${SE_NODE_ENABLE_MANAGED_DOWNLOADS}"
4255
fi
4356

4457
if [ ! -z "$SE_NODE_ENABLE_CDP" ]; then
45-
echo "Appending Selenium options: --enable-cdp ${SE_NODE_ENABLE_CDP}"
46-
SE_OPTS="$SE_OPTS --enable-cdp ${SE_NODE_ENABLE_CDP}"
58+
append_se_opts "--enable-cdp" "${SE_NODE_ENABLE_CDP}"
4759
fi
4860

4961
if [ ! -z "$SE_NODE_REGISTER_PERIOD" ]; then
50-
echo "Appending Selenium options: --register-period ${SE_NODE_REGISTER_PERIOD}"
51-
SE_OPTS="$SE_OPTS --register-period ${SE_NODE_REGISTER_PERIOD}"
62+
append_se_opts "--register-period" "${SE_NODE_REGISTER_PERIOD}"
5263
fi
5364

5465
if [ ! -z "$SE_NODE_REGISTER_CYCLE" ]; then
55-
echo "Appending Selenium options: --register-cycle ${SE_NODE_REGISTER_CYCLE}"
56-
SE_OPTS="$SE_OPTS --register-cycle ${SE_NODE_REGISTER_CYCLE}"
66+
append_se_opts "--register-cycle" "${SE_NODE_REGISTER_CYCLE}"
5767
fi
5868

5969
if [ ! -z "$SE_NODE_HEARTBEAT_PERIOD" ]; then
60-
echo "Appending Selenium options: --heartbeat-period ${SE_NODE_HEARTBEAT_PERIOD}"
61-
SE_OPTS="$SE_OPTS --heartbeat-period ${SE_NODE_HEARTBEAT_PERIOD}"
70+
append_se_opts "--heartbeat-period" "${SE_NODE_HEARTBEAT_PERIOD}"
6271
fi
6372

6473
if [ ! -z "$SE_LOG_LEVEL" ]; then
65-
echo "Appending Selenium options: --log-level ${SE_LOG_LEVEL}"
66-
SE_OPTS="$SE_OPTS --log-level ${SE_LOG_LEVEL}"
74+
append_se_opts "--log-level" "${SE_LOG_LEVEL}"
6775
fi
6876

6977
if [ ! -z "$SE_HTTP_LOGS" ]; then
70-
echo "Appending Selenium options: --http-logs ${SE_HTTP_LOGS}"
71-
SE_OPTS="$SE_OPTS --http-logs ${SE_HTTP_LOGS}"
78+
append_se_opts "--http-logs" "${SE_HTTP_LOGS}"
7279
fi
7380

7481
if [ ! -z "$SE_STRUCTURED_LOGS" ]; then
75-
echo "Appending Selenium options: --structured-logs ${SE_STRUCTURED_LOGS}"
76-
SE_OPTS="$SE_OPTS --structured-logs ${SE_STRUCTURED_LOGS}"
82+
append_se_opts "--structured-logs" "${SE_STRUCTURED_LOGS}"
7783
fi
7884

7985
if [ ! -z "$SE_EXTERNAL_URL" ]; then
80-
echo "Appending Selenium options: --external-url ${SE_EXTERNAL_URL}"
81-
SE_OPTS="$SE_OPTS --external-url ${SE_EXTERNAL_URL}"
86+
append_se_opts "--external-url" "${SE_EXTERNAL_URL}"
8287
fi
8388

8489
if [ "${SE_ENABLE_TLS}" = "true" ]; then
@@ -99,23 +104,19 @@ if [ "${SE_ENABLE_TLS}" = "true" ]; then
99104
SE_JAVA_OPTS="$SE_JAVA_OPTS -Djdk.internal.httpclient.disableHostnameVerification=${SE_JAVA_DISABLE_HOSTNAME_VERIFICATION}"
100105
# Configure certificate and private key for component communication
101106
if [ ! -z "$SE_HTTPS_CERTIFICATE" ]; then
102-
echo "Appending Selenium options: --https-certificate ${SE_HTTPS_CERTIFICATE}"
103-
SE_OPTS="$SE_OPTS --https-certificate ${SE_HTTPS_CERTIFICATE}"
107+
append_se_opts "--https-certificate" "${SE_HTTPS_CERTIFICATE}"
104108
fi
105109
if [ ! -z "$SE_HTTPS_PRIVATE_KEY" ]; then
106-
echo "Appending Selenium options: --https-private-key ${SE_HTTPS_PRIVATE_KEY}"
107-
SE_OPTS="$SE_OPTS --https-private-key ${SE_HTTPS_PRIVATE_KEY}"
110+
append_se_opts "--https-private-key" "${SE_HTTPS_PRIVATE_KEY}"
108111
fi
109112
fi
110113

111114
if [ ! -z "$SE_REJECT_UNSUPPORTED_CAPS" ]; then
112-
echo "Appending Selenium options: --reject-unsupported-caps ${SE_REJECT_UNSUPPORTED_CAPS}"
113-
SE_OPTS="$SE_OPTS --reject-unsupported-caps ${SE_REJECT_UNSUPPORTED_CAPS}"
115+
append_se_opts "--reject-unsupported-caps" "${SE_REJECT_UNSUPPORTED_CAPS}"
114116
fi
115117

116118
if [ ! -z "$SE_NEW_SESSION_THREAD_POOL_SIZE" ]; then
117-
echo "Appending Selenium options: --newsession-threadpool-size ${SE_NEW_SESSION_THREAD_POOL_SIZE}"
118-
SE_OPTS="$SE_OPTS --newsession-threadpool-size ${SE_NEW_SESSION_THREAD_POOL_SIZE}"
119+
append_se_opts "--newsession-threadpool-size" "${SE_NEW_SESSION_THREAD_POOL_SIZE}"
119120
fi
120121

121122
/opt/bin/generate_config
@@ -150,7 +151,7 @@ if [ "$SE_ENABLE_TRACING" = "true" ]; then
150151
SE_JAVA_OPTS="$SE_JAVA_OPTS ${SE_OTEL_JVM_ARGS}"
151152
fi
152153
else
153-
SE_OPTS="$SE_OPTS --tracing false"
154+
append_se_opts "--tracing" "false"
154155
SE_JAVA_OPTS="$SE_JAVA_OPTS -Dwebdriver.remote.enableTracing=false"
155156
echo "Tracing is disabled"
156157
fi

0 commit comments

Comments
 (0)