-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/73694/#review224784
-----------------------------------------------------------




agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractPredicateUtil.java
Lines 69 (patched)
<https://reviews.apache.org/r/73694/#comment313581>

    Instead of sorting followed by reversal, consider the following:
    
    if (sorter != null) {
      boolean isDesc = filter != null && 
"desc".equalsIgnoreCase(filter.getSortType());
    
      Collections.sort(objList, isDesc ? new ReverseComparator(sorter) : 
sorter);
    }
    
    private static class ReverseComparator implements 
Comparator<RangerBaseModelObject> {
      private final Comparator<RangerBaseModelObject> comparator;
    
      ReverseComparator(Comparator<RangerBaseModelObject> comparator) {
        this.comparator = comparator;
      }
    
      @Override
      public int compare(RangerBaseModelObject o1, RangerBaseModelObject o2) {
        return comparator.compare(o2, o1);
      }
    }



security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java
Lines 2597 (patched)
<https://reviews.apache.org/r/73694/#comment313580>

    Consider adding a copy-constructor in SearchFilter and use it here, so that 
other fields (startIndex/maxRows/getCount) will be copied as well.
    
      SearchFilter searchFilter = new SearchFilter(filter);
    
    // SearchFilter.java
    public SearchFilter() {
      this((Map<String, String>) null);
    }
    
    public SearchFilter(SearchFilter other) {
      if (other != null) {
        setParams(other.params != null ? new HashMap<>(other.params) : null);
        setStartIndex(other.startIndex);
        setMaxRows(other.maxRows);
        setGetCount(other.getCount);
        setSortBy(other.sortBy);
        setSortType(other.sortType);
      } else {
        setParams(null);
      }
    }


- Madhan Neethiraj


On Sept. 29, 2022, 2:37 a.m., Xuze Yang wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/73694/
> -----------------------------------------------------------
> 
> (Updated Sept. 29, 2022, 2:37 a.m.)
> 
> 
> Review request for ranger, Abhay Kulkarni, Madhan Neethiraj, Mahesh Bandal, 
> Pradeep Agrawal, Ramesh Mani, Sailaja Polavarapu, Vishal Suvagia, and 
> Velmurugan Periasamy.
> 
> 
> Bugs: RANGER-3500
>     https://issues.apache.org/jira/browse/RANGER-3500
> 
> 
> Repository: ranger
> 
> 
> Description
> -------
> 
> modify the getServicePolicies() method to support sorting by field and 
> sortType(i.e. asc or desc). The changes are as following:
> 1. Add sortBy and sortType to searchFilter
> 2. Support sorting by sortType("desc" means in decreasing order, otherwise in 
> increasing order)
> 3. Delete a redundant line of code
> 
> 
> Diffs
> -----
> 
>   
> agents-common/src/main/java/org/apache/ranger/plugin/store/AbstractPredicateUtil.java
>  38d6b03 
>   security-admin/src/main/java/org/apache/ranger/biz/ServiceDBStore.java 
> f58dcd2 
> 
> 
> Diff: https://reviews.apache.org/r/73694/diff/2/
> 
> 
> Testing
> -------
> 
> 1. compile and package the code
> 2. deploy ranger
> 3. generate hdfs policies and get the hdfs policyList via postman using url 
> like 
> "http://192.168.0.12:6080/service/plugins/policies/service/2?sortBy=policyName&sortType=desc&serviceName=default-Hdfs";
> 4. the return policyList is sorted according our specified sortBy and sortType
> 
> 
> File Attachments
> ----------------
> 
> 0002-RANGER-3500-Ranger-policy-list-doesn-t-support-sorti.patch
>   
> https://reviews.apache.org/media/uploaded/files/2022/09/29/61ba9494-1dc8-4b67-80ed-44c7e9f313a1__0002-RANGER-3500-Ranger-policy-list-doesn-t-support-sorti.patch
> 
> 
> Thanks,
> 
> Xuze Yang
> 
>

Reply via email to