You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ranger.apache.org by "Xuze Yang (Jira)" <ji...@apache.org> on 2022/10/12 08:04:00 UTC
[jira] [Updated] (RANGER-3500) Ranger policy list doesn't support sorting by field
[ https://issues.apache.org/jira/browse/RANGER-3500?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Xuze Yang updated RANGER-3500:
------------------------------
Attachment: 0003-RANGER-3500-Ranger-policy-list-doesn-t-support-sorti.patch
> Ranger policy list doesn't support sorting by field
> ---------------------------------------------------
>
> Key: RANGER-3500
> URL: https://issues.apache.org/jira/browse/RANGER-3500
> Project: Ranger
> Issue Type: Bug
> Components: admin
> Affects Versions: 2.1.0
> Reporter: Xuze Yang
> Assignee: Xuze Yang
> Priority: Major
> Attachments: 0001-RANGER-3500-Ranger-policy-list-doesn-t-support-sorti.patch, 0002-RANGER-3500-Ranger-policy-list-doesn-t-support-sorti.patch, 0003-RANGER-3500-Ranger-policy-list-doesn-t-support-sorti.patch
>
>
> When getting the ranger policy list, we may want to sort the returned policy list according to certain fields, such as policyId, policyName and etc. But case shows that adding the parameters sortBy and sortType to the url has no effect (eg: [http://192.168.0.12:6080/service/plugins/]policies/service/2?sortBy=policyName&sortType=desc&serviceName=default-Hdfs). I look through the source code and find that code supports sorting by fields, but due to some code bugs, it did not really take effect.
> The main reason for the problem is that when the SearchFilter is copied deeply, only the params is copied, the sortBy and sortType attributes is omitted. The code show as follows:
> {code:java}
> // ServiceDBStore # getServicePolicies()
> Map<String, String> paramsCopy = new HashMap<>(filter.getParams());
> SearchFilter searchFilter = new SearchFilter(paramsCopy); {code}
>
> {code:java}
> // SearchFilter.java
> private Map<String, String> params;
> private int startIndex;
> private int maxRows = Integer.MAX_VALUE;
> private boolean getCount = true;
> private String sortBy;
> private String sortType;
> public SearchFilter(Map<String, String> values) {
> setParams(values);
> }
> public void setParams(Map<String, String> params) {
> this.params = params;
> } {code}
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)