diff --git a/pkg/scalers/selenium_grid_scaler.go b/pkg/scalers/selenium_grid_scaler.go index 4e1f75667a..dd57bd5833 100644 --- a/pkg/scalers/selenium_grid_scaler.go +++ b/pkg/scalers/selenium_grid_scaler.go @@ -63,6 +63,7 @@ type seleniumSession struct { ID string `json:"id"` Capabilities string `json:"capabilities"` NodeID string `json:"nodeId"` + PlatformName string `json:"platformName"` } type capability struct { @@ -152,7 +153,7 @@ func (s *seleniumGridScaler) GetMetricSpecForScaling(context.Context) []v2.Metri func (s *seleniumGridScaler) getSessionsCount(ctx context.Context, logger logr.Logger) (int64, error) { body, err := json.Marshal(map[string]string{ - "query": "{ grid { maxSession, nodeCount }, sessionsInfo { sessionQueueRequests, sessions { id, capabilities, nodeId } } }", + "query": "{ grid { maxSession, nodeCount }, sessionsInfo { sessionQueueRequests, sessions { id, capabilities, nodeId, platformName } } }", }) if err != nil { @@ -199,10 +200,9 @@ func getCountFromSeleniumResponse(b []byte, browserName string, browserVersion s var capability = capability{} if err := json.Unmarshal([]byte(sessionQueueRequest), &capability); err == nil { if capability.BrowserName == browserName { - var platformNameMatches = capability.PlatformName == "" || strings.EqualFold(capability.PlatformName, platformName) - if strings.HasPrefix(capability.BrowserVersion, browserVersion) && platformNameMatches { + if strings.HasPrefix(capability.BrowserVersion, browserVersion) && strings.EqualFold(capability.PlatformName, platformName) { count++ - } else if len(strings.TrimSpace(capability.BrowserVersion)) == 0 && browserVersion == DefaultBrowserVersion && platformNameMatches { + } else if len(strings.TrimSpace(capability.BrowserVersion)) == 0 && browserVersion == DefaultBrowserVersion && strings.EqualFold(capability.PlatformName, platformName) { count++ } } @@ -215,11 +215,10 @@ func getCountFromSeleniumResponse(b []byte, browserName string, browserVersion s for _, session := range sessions { var capability = capability{} if err := json.Unmarshal([]byte(session.Capabilities), &capability); err == nil { - var platformNameMatches = capability.PlatformName == "" || strings.EqualFold(capability.PlatformName, platformName) if capability.BrowserName == sessionBrowserName { - if strings.HasPrefix(capability.BrowserVersion, browserVersion) && platformNameMatches { + if strings.HasPrefix(capability.BrowserVersion, browserVersion) && strings.EqualFold(capability.PlatformName, platformName) { count++ - } else if browserVersion == DefaultBrowserVersion && platformNameMatches { + } else if browserVersion == DefaultBrowserVersion && strings.EqualFold(capability.PlatformName, platformName) { count++ } }