Skip to content

Commit 44da586

Browse files
committed
Update Selenium Grid 4.36.0
Signed-off-by: Viet Nguyen Duc <nguyenducviet4496@gmail.com>
1 parent 81c4d86 commit 44da586

File tree

5 files changed

+35
-96
lines changed

5 files changed

+35
-96
lines changed

.keda/README.md

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,6 @@ You can involve to review and discuss the pull requests to help us early detect
4949

5050
[kedacore/keda](https://github.com/kedacore/keda)
5151

52-
- https://github.com/kedacore/keda/pull/6920 (planned, v2.18.0)
53-
5452
- ~~https://github.com/kedacore/keda/pull/6772 (merged, v2.17.1)~~
5553

5654
- ~~https://github.com/kedacore/keda/pull/6684 (merged, v2.17.0)~~

.keda/scalers/selenium_grid_scaler.go

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,22 @@ type seleniumGridScaler struct {
2828
type seleniumGridScalerMetadata struct {
2929
triggerIndex int
3030

31-
URL string `keda:"name=url, order=authParams;triggerMetadata;resolvedEnv"`
32-
AuthType string `keda:"name=authType, order=authParams;triggerMetadata;resolvedEnv, optional"`
33-
Username string `keda:"name=username, order=authParams;triggerMetadata;resolvedEnv, optional"`
34-
Password string `keda:"name=password, order=authParams;triggerMetadata;resolvedEnv, optional"`
35-
AccessToken string `keda:"name=accessToken, order=authParams;triggerMetadata;resolvedEnv, optional"`
36-
BrowserName string `keda:"name=browserName, order=triggerMetadata, optional"`
37-
SessionBrowserName string `keda:"name=sessionBrowserName, order=triggerMetadata, optional"`
38-
BrowserVersion string `keda:"name=browserVersion, order=triggerMetadata, optional"`
39-
PlatformName string `keda:"name=platformName, order=triggerMetadata, optional"`
40-
NodeMaxSessions int64 `keda:"name=nodeMaxSessions, order=triggerMetadata, default=1"`
41-
EnableManagedDownloads bool `keda:"name=enableManagedDownloads, order=triggerMetadata, default=true"`
42-
Capabilities string `keda:"name=capabilities, order=triggerMetadata, optional"`
43-
OverProvisionRatio float64 `keda:"name=overProvisionRatio, order=triggerMetadata, optional"`
44-
UnsafeSsl bool `keda:"name=unsafeSsl, order=triggerMetadata, optional"`
45-
TargetValue int64 `keda:"name=targetValue, order=triggerMetadata, default=1"`
46-
ActivationThreshold float64 `keda:"name=activationThreshold, order=triggerMetadata, optional"`
31+
URL string `keda:"name=url, order=authParams;triggerMetadata"`
32+
AuthType string `keda:"name=authType, order=authParams;resolvedEnv, optional"`
33+
Username string `keda:"name=username, order=authParams;resolvedEnv, optional"`
34+
Password string `keda:"name=password, order=authParams;resolvedEnv, optional"`
35+
AccessToken string `keda:"name=accessToken, order=authParams;resolvedEnv, optional"`
36+
BrowserName string `keda:"name=browserName, order=triggerMetadata, optional"`
37+
SessionBrowserName string `keda:"name=sessionBrowserName, order=triggerMetadata, optional"`
38+
BrowserVersion string `keda:"name=browserVersion, order=triggerMetadata, optional"`
39+
PlatformName string `keda:"name=platformName, order=triggerMetadata, optional"`
40+
ActivationThreshold int64 `keda:"name=activationThreshold, order=triggerMetadata, optional"`
41+
UnsafeSsl bool `keda:"name=unsafeSsl, order=triggerMetadata, default=false"`
42+
NodeMaxSessions int64 `keda:"name=nodeMaxSessions, order=triggerMetadata, default=1"`
43+
EnableManagedDownloads bool `keda:"name=enableManagedDownloads, order=triggerMetadata, default=true"`
44+
Capabilities string `keda:"name=capabilities, order=triggerMetadata, optional"`
45+
46+
TargetValue int64
4747
}
4848

4949
type Platform struct {
@@ -173,10 +173,12 @@ func parseCapabilitiesToMap(_capabilities string) (map[string]interface{}, error
173173
}
174174

175175
func parseSeleniumGridScalerMetadata(config *scalersconfig.ScalerConfig) (*seleniumGridScalerMetadata, error) {
176-
meta := &seleniumGridScalerMetadata{}
176+
meta := &seleniumGridScalerMetadata{
177+
TargetValue: 1,
178+
}
177179

178180
if err := config.TypedConfig(meta); err != nil {
179-
return nil, fmt.Errorf("error parsing Selenium Grid GraphQL response: %w", err)
181+
return nil, fmt.Errorf("error parsing prometheus metadata: %w", err)
180182
}
181183

182184
meta.triggerIndex = config.TriggerIndex
@@ -202,19 +204,9 @@ func (s *seleniumGridScaler) GetMetricsAndActivity(ctx context.Context, metricNa
202204
return []external_metrics.ExternalMetricValue{}, false, fmt.Errorf("error requesting selenium grid endpoint: %w", err)
203205
}
204206

205-
scaledCount := getScaledCount(newRequestNodes, onGoingSessions, s.metadata.OverProvisionRatio)
206-
metric := GenerateMetricInMili(metricName, scaledCount)
207-
208-
return []external_metrics.ExternalMetricValue{metric}, scaledCount > s.metadata.ActivationThreshold, nil
209-
}
207+
metric := GenerateMetricInMili(metricName, float64(newRequestNodes+onGoingSessions))
210208

211-
func getScaledCount(newRequestNodes int64, onGoingSession int64, overProvisionRatio float64) float64 {
212-
scaledCount := float64(newRequestNodes + onGoingSession)
213-
if overProvisionRatio > 0 {
214-
// Apply over-provision ratio to the scaled count
215-
scaledCount += scaledCount * overProvisionRatio
216-
}
217-
return scaledCount
209+
return []external_metrics.ExternalMetricValue{metric}, (newRequestNodes + onGoingSessions) > s.metadata.ActivationThreshold, nil
218210
}
219211

220212
func buildSeleniumGridMetricName(meta *seleniumGridScalerMetadata) string {

.keda/scalers/selenium_grid_scaler_test.go

Lines changed: 1 addition & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,12 @@ func Test_getCountFromSeleniumResponse(t *testing.T) {
1919
nodeMaxSessions int64
2020
enableManagedDownloads bool
2121
capabilities string
22-
overProvisionRatio float64
2322
}
2423
tests := []struct {
2524
name string
2625
args args
2726
wantNewRequestNodes int64
2827
wantOnGoingSessions int64
29-
wantOverProvisioned float64
3028
wantErr bool
3129
}{
3230
{
@@ -439,57 +437,6 @@ func Test_getCountFromSeleniumResponse(t *testing.T) {
439437
wantOnGoingSessions: 0,
440438
wantErr: false,
441439
},
442-
{
443-
name: "Scaled_number_when_set_param_over_provisioned",
444-
args: args{
445-
b: []byte(`{
446-
"data": {
447-
"grid": {
448-
"sessionCount": 0,
449-
"maxSession": 0,
450-
"totalSlots": 0
451-
},
452-
"nodesInfo": {
453-
"nodes": [
454-
{
455-
"id": "node-1",
456-
"status": "UP",
457-
"sessionCount": 0,
458-
"maxSession": 1,
459-
"slotCount": 1,
460-
"stereotypes": "[{\"slots\": 1, \"stereotype\": {\"browserName\": \"chrome\", \"browserVersion\": \"\", \"platformName\": \"linux\"}}]",
461-
"sessions": []
462-
},
463-
{
464-
"id": "node-2",
465-
"status": "UP",
466-
"sessionCount": 0,
467-
"maxSession": 1,
468-
"slotCount": 1,
469-
"stereotypes": "[{\"slots\": 1, \"stereotype\": {\"browserName\": \"chrome\", \"browserVersion\": \"\", \"platformName\": \"Windows 11\"}}]",
470-
"sessions": []
471-
}
472-
]
473-
},
474-
"sessionsInfo": {
475-
"sessionQueueRequests": [
476-
"{\"browserName\": \"chrome\", \"platformName\": \"linux\"}",
477-
"{\"browserName\": \"chrome\", \"platformName\": \"linux\"}"
478-
]
479-
}
480-
}
481-
}`),
482-
browserName: "chrome",
483-
sessionBrowserName: "chrome",
484-
browserVersion: "",
485-
platformName: "linux",
486-
overProvisionRatio: 1.2,
487-
},
488-
wantNewRequestNodes: 1,
489-
wantOnGoingSessions: 0,
490-
wantOverProvisioned: 2.2,
491-
wantErr: false,
492-
},
493440
{
494441
name: "scaler_browserVersion_is_latest,_5_sessionQueueRequests_wihtout_browserVersion_also_1_different_platformName,_1_available_nodeStereotypes_with_3_slots_Linux_and_1_node_Windows,_should_return_count_as_1",
495442
args: args{
@@ -1101,7 +1048,7 @@ func Test_getCountFromSeleniumResponse(t *testing.T) {
11011048
wantErr: false,
11021049
},
11031050
{
1104-
name: "1 queue request without platformName and scaler metadata without platformName should return 1 new node and 1 ongoing session",
1051+
name: "1 queue request without platformName and scaler metadata without platfromName should return 1 new node and 1 ongoing session",
11051052
args: args{
11061053
b: []byte(`{
11071054
"data": {
@@ -3207,17 +3154,13 @@ func Test_getCountFromSeleniumResponse(t *testing.T) {
32073154
for _, tt := range tests {
32083155
t.Run(tt.name, func(t *testing.T) {
32093156
newRequestNodes, onGoingSessions, err := getCountFromSeleniumResponse(tt.args.b, tt.args.browserName, tt.args.browserVersion, tt.args.sessionBrowserName, tt.args.platformName, tt.args.nodeMaxSessions, tt.args.enableManagedDownloads, tt.args.capabilities, logr.Discard())
3210-
scaledCount := getScaledCount(newRequestNodes, onGoingSessions, tt.args.overProvisionRatio)
32113157
if (err != nil) != tt.wantErr {
32123158
t.Errorf("getCountFromSeleniumResponse() error = %v, wantErr %v", err, tt.wantErr)
32133159
return
32143160
}
32153161
if !reflect.DeepEqual(newRequestNodes, tt.wantNewRequestNodes) || !reflect.DeepEqual(onGoingSessions, tt.wantOnGoingSessions) {
32163162
t.Errorf("getCountFromSeleniumResponse() = [%v, %v], want [%v, %v]", newRequestNodes, onGoingSessions, tt.wantNewRequestNodes, tt.wantOnGoingSessions)
32173163
}
3218-
if tt.args.overProvisionRatio > 0 && !reflect.DeepEqual(scaledCount, tt.wantOverProvisioned) {
3219-
t.Errorf("getCountFromSeleniumResponse() = %v, want over-provisioned %v", scaledCount, tt.wantOverProvisioned)
3220-
}
32213164
})
32223165
}
32233166
}

Makefile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
NAME := $(or $(NAME),$(NAME),selenium)
22
CURRENT_DATE := $(shell date '+%Y%m%d')
33
BUILD_DATE := $(or $(BUILD_DATE),$(BUILD_DATE),$(CURRENT_DATE))
4-
BASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-4.35.0)
5-
BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.35.0)
6-
BINDING_VERSION := $(or $(BINDING_VERSION),$(BINDING_VERSION),4.35.0)
4+
BASE_RELEASE := $(or $(BASE_RELEASE),$(BASE_RELEASE),selenium-4.36.0)
5+
BASE_VERSION := $(or $(BASE_VERSION),$(BASE_VERSION),4.36.0)
6+
BINDING_VERSION := $(or $(BINDING_VERSION),$(BINDING_VERSION),4.36.0)
77
BASE_RELEASE_NIGHTLY := $(or $(BASE_RELEASE_NIGHTLY),$(BASE_RELEASE_NIGHTLY),nightly)
8-
BASE_VERSION_NIGHTLY := $(or $(BASE_VERSION_NIGHTLY),$(BASE_VERSION_NIGHTLY),4.36.0-SNAPSHOT)
9-
VERSION := $(or $(VERSION),$(VERSION),4.35.0)
10-
MVN_SELENIUM_VERSION := $(or $(MVN_SELENIUM_VERSION),$(MVN_SELENIUM_VERSION),4.35.0)
8+
BASE_VERSION_NIGHTLY := $(or $(BASE_VERSION_NIGHTLY),$(BASE_VERSION_NIGHTLY),4.37.0-SNAPSHOT)
9+
VERSION := $(or $(VERSION),$(VERSION),4.36.0)
10+
MVN_SELENIUM_VERSION := $(or $(MVN_SELENIUM_VERSION),$(MVN_SELENIUM_VERSION),4.36.0)
1111
TAG_VERSION := $(VERSION)-$(BUILD_DATE)
1212
CHART_VERSION_NIGHTLY := $(or $(CHART_VERSION_NIGHTLY),$(CHART_VERSION_NIGHTLY),1.0.0-nightly)
1313
NAMESPACE := $(or $(NAMESPACE),$(NAMESPACE),$(NAME))

tests/build-backward-compatible/selenium-matrix.yml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@ matrix:
55
BASE_VERSION: 4.35.0-SNAPSHOT
66
VERSION: 4.35.0-SNAPSHOT
77
BINDING_VERSION: nightly
8+
4.36.0:
9+
BASE_RELEASE: selenium-4.36.0
10+
BASE_VERSION: 4.36.0
11+
VERSION: 4.36.0
12+
BINDING_VERSION: 4.36.0
13+
browser: []
814
4.35.0:
915
BASE_RELEASE: selenium-4.35.0
1016
BASE_VERSION: 4.35.0

0 commit comments

Comments
 (0)