[
https://issues.apache.org/jira/browse/KNOX-3084?focusedWorklogId=974045&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-974045
]
ASF GitHub Bot logged work on KNOX-3084:
----------------------------------------
Author: ASF GitHub Bot
Created on: 09/Jul/25 20:58
Start Date: 09/Jul/25 20:58
Worklog Time Spent: 10m
Work Description: bonampak opened a new pull request, #1059:
URL: https://github.com/apache/knox/pull/1059
## What changes were proposed in this pull request?
The Knox Cloudera Manager service discovery can use the new CM API call
`GET /clusters/{clusterName}/services/serviceName}/roles/configs`
if present. This call is using offset-limit pagination with a default value
of 100. The page size used by Knox is set to 500 by default.
To enable this, one can set the properties in gateway-site.xml:
```
gateway.cloudera.manager.service.discovery.role.fetch.strategy=byService
gateway.cloudera.manager.service.discovery.api.version=v57
gateway.cloudera.manager.service.discovery.role.pagesize=300
```
The version and endpoint can be checked in the CM UI (Support/API Explorer)
https://cm-host:7183/static/apidocs/ui/index.html#/RolesResource/readRolesConfig
By default, the original behavior is used, with CM API version v32 and the
calls
- `GET /clusters/{clusterName}/services/{serviceName}/roles`
- `GET
/clusters/{clusterName}/services/{serviceName}/roles/{roleName}/config` (for
each service role)
The default role configuration fetch can be configured by leaving these
parameters empty or setting them to
```
gateway.cloudera.manager.service.discovery.role.fetch.strategy=byRole
gateway.cloudera.manager.service.discovery.api.version=v32
```
## How was this patch tested?
Tested using CM 7.13.1. Verified that the same topologies are generated and
the discovery cache under data/cm-clusters remains the same for both discovery
strategies.
Issue Time Tracking
-------------------
Worklog Id: (was: 974045)
Remaining Estimate: 0h
Time Spent: 10m
> Update CM service discovery with the enhanced role configs endpoint
> -------------------------------------------------------------------
>
> Key: KNOX-3084
> URL: https://issues.apache.org/jira/browse/KNOX-3084
> Project: Apache Knox
> Issue Type: Task
> Components: cm-discovery
> Affects Versions: 2.1.0
> Reporter: Tamás Marcinkovics
> Assignee: Tamás Marcinkovics
> Priority: Major
> Time Spent: 10m
> Remaining Estimate: 0h
>
> There is a new CM API endpoint to fetch all role configurations for a given
> service ({{RolesResouce.readRolesConfig}}) if the supported API version is
> greater than or equal to v57. This endpoint is available in the
> cloudera-manager-api-swagger:7.13.1 artifact.
> [https://repository.cloudera.com/service/rest/repository/browse/cloudera-repos/com/cloudera/api/swagger/cloudera-manager-api-swagger/7.13.1/]
> On the Knox side, we need to change the existing {{readRoles}} and
> {{readRoleConfig}} API calls to the new {{readRolesConfig}} call.
> The {{view}} parameter should still remain {{full}} as
> {{full_with_no_health_check}} only returns role configuration parameters with
> non-default values.
> As the new cloudera-manager-api-swagger artifact is using okhttp 4.10, we
> also need to change {{DiscoveryApiClient}} setup and our Okhttp interceptors
> from Okhttp 2.7.5 to Okhttp 4.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)