This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch RANGER-3923
in repository https://gitbox.apache.org/repos/asf/ranger.git
The following commit(s) were added to refs/heads/RANGER-3923 by this push:
new 955f6a7f1 RANGER-4446: added API to return dataset summary
955f6a7f1 is described below
commit 955f6a7f181128205316571d1c7797bced09861d
Author: Subhrat Chaudhary <[email protected]>
AuthorDate: Fri Oct 6 00:18:39 2023 -0700
RANGER-4446: added API to return dataset summary
Signed-off-by: Madhan Neethiraj <[email protected]>
---
.../org/apache/ranger/plugin/model/RangerGds.java | 195 +++++++++++++++++++++
.../java/org/apache/ranger/biz/GdsDBStore.java | 178 +++++++++++++------
.../main/java/org/apache/ranger/rest/GdsREST.java | 22 +--
.../ranger/security/context/RangerAPIList.java | 2 +-
.../service/RangerGdsSharedResourceService.java | 10 +-
5 files changed, 340 insertions(+), 67 deletions(-)
diff --git
a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java
b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java
index fd27f54a9..8b27b9769 100644
--- a/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java
+++ b/agents-common/src/main/java/org/apache/ranger/plugin/model/RangerGds.java
@@ -22,6 +22,7 @@ package org.apache.ranger.plugin.model;
import
org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItemDataMaskInfo;
import
org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItemRowFilterInfo;
import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource;
+import org.apache.ranger.plugin.model.RangerPrincipal.PrincipalType;
import org.codehaus.jackson.annotate.JsonAutoDetect;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
@@ -479,4 +480,198 @@ public class RangerGds {
return sb;
}
}
+
+ @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public static class DatasetSummary extends RangerBaseModelObject
implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private String name;
+ private GdsPermission permissionForCaller;
+ private Map<PrincipalType, Long> principalsCount;
+ private Long projectsCount;
+ private Long totalResourceCount;
+ private List<DataShareInDatasetSummary> dataShares;
+
+ public DatasetSummary() {
+ super();
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public GdsPermission getPermissionForCaller() {
+ return permissionForCaller;
+ }
+
+ public void setPermissionForCaller(GdsPermission permissionForCaller) {
+ this.permissionForCaller = permissionForCaller;
+ }
+
+ public Map<PrincipalType, Long> getPrincipalsCount() {
+ return principalsCount;
+ }
+
+ public void setPrincipalsCount(Map<PrincipalType, Long>
principalsCount) {
+ this.principalsCount = principalsCount;
+ }
+
+ public Long getProjectsCount() {
+ return projectsCount;
+ }
+
+ public void setProjectsCount(Long projectsCount) {
+ this.projectsCount = projectsCount;
+ }
+
+ public Long getTotalResourceCount() {
+ return totalResourceCount;
+ }
+
+ public void setTotalResourceCount(Long totalResourceCount) {
+ this.totalResourceCount = totalResourceCount;
+ }
+
+ public List<DataShareInDatasetSummary> getDataShares() {
+ return dataShares;
+ }
+
+ public void setDataShares(List<DataShareInDatasetSummary> dataShares) {
+ this.dataShares = dataShares;
+ }
+
+ @Override
+ public String toString() {
+ return toString(new StringBuilder()).toString();
+ }
+
+ public StringBuilder toString(StringBuilder sb) {
+ sb.append("DatasetSummary={");
+
+ super.toString(sb);
+
+ sb.append("name={").append(name).append("} ")
+
.append("permissionForCaller={").append(permissionForCaller).append("} ")
+ .append("principalsCount={").append(principalsCount).append("} ")
+ .append("projectsCount={").append(projectsCount).append("} ")
+
.append("totalResourceCount={").append(totalResourceCount).append("} ")
+ .append("dataShares={").append(dataShares).append("} ")
+ .append("}");
+
+ return sb;
+ }
+ }
+
+ @JsonAutoDetect(fieldVisibility = JsonAutoDetect.Visibility.ANY)
+ @JsonSerialize(include = JsonSerialize.Inclusion.NON_EMPTY)
+ @JsonIgnoreProperties(ignoreUnknown = true)
+ public static class DataShareInDatasetSummary extends
RangerBaseModelObject implements java.io.Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private String name;
+ private Long serviceId;
+ private String serviceName;
+ private Long zoneId;
+ private String zoneName;
+ private Long resourceCount;
+ private GdsShareStatus shareStatus;
+ private String approver;
+
+ public DataShareInDatasetSummary() {
+ super();
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ public Long getServiceId() {
+ return serviceId;
+ }
+
+ public void setServiceId(Long serviceId) {
+ this.serviceId = serviceId;
+ }
+
+ public String getServiceName() {
+ return serviceName;
+ }
+
+ public void setServiceName(String serviceName) {
+ this.serviceName = serviceName;
+ }
+
+ public Long getZoneId() {
+ return zoneId;
+ }
+
+ public void setZoneId(Long zoneId) {
+ this.zoneId = zoneId;
+ }
+
+ public String getZoneName() {
+ return zoneName;
+ }
+
+ public void setZoneName(String zoneName) {
+ this.zoneName = zoneName;
+ }
+
+ public Long getResourceCount() {
+ return resourceCount;
+ }
+
+ public void setResourceCount(Long resourceCount) {
+ this.resourceCount = resourceCount;
+ }
+
+ public GdsShareStatus getShareStatus() {
+ return shareStatus;
+ }
+
+ public void setShareStatus(GdsShareStatus shareStatus) {
+ this.shareStatus = shareStatus;
+ }
+
+ public String getApprover() {
+ return approver;
+ }
+
+ public void setApprover(String approver) {
+ this.approver = approver;
+ }
+
+ @Override
+ public String toString() {
+ return toString(new StringBuilder()).toString();
+ }
+
+ public StringBuilder toString(StringBuilder sb) {
+ sb.append("DatasetSummary={");
+
+ super.toString(sb);
+
+ sb.append("name={").append(name).append("} ")
+ .append("serviceId={").append(serviceId).append("} ")
+ .append("serviceName={").append(serviceName).append("} ")
+ .append("zoneId={").append(zoneId).append("} ")
+ .append("zoneName={").append(zoneName).append("} ")
+ .append("resourceCount={").append(resourceCount).append("} ")
+ .append("shareStatus={").append(shareStatus).append("} ")
+ .append("approver={").append(approver).append("} ")
+ .append("}");
+
+ return sb;
+ }
+ }
}
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/GdsDBStore.java
b/security-admin/src/main/java/org/apache/ranger/biz/GdsDBStore.java
index 42a2fa16c..8a2b7f6c5 100755
--- a/security-admin/src/main/java/org/apache/ranger/biz/GdsDBStore.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/GdsDBStore.java
@@ -19,12 +19,12 @@
package org.apache.ranger.biz;
+import org.apache.http.HttpStatus;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
-import org.apache.http.HttpStatus;
import org.apache.ranger.common.GUIDUtil;
-import org.apache.ranger.common.MessageEnums;
import org.apache.ranger.common.RESTErrorUtil;
+import org.apache.ranger.common.MessageEnums;
import org.apache.ranger.common.db.RangerTransactionSynchronizationAdapter;
import org.apache.ranger.db.RangerDaoManager;
import org.apache.ranger.db.XXGdsDataShareInDatasetDao;
@@ -36,9 +36,12 @@ import org.apache.ranger.entity.XXGdsDataset;
import org.apache.ranger.entity.XXGdsDatasetInProject;
import org.apache.ranger.entity.XXGdsDatasetPolicyMap;
import org.apache.ranger.entity.XXPolicy;
+import org.apache.ranger.entity.XXService;
+import org.apache.ranger.entity.XXSecurityZone;
import org.apache.ranger.entity.XXGdsProject;
import org.apache.ranger.entity.XXGdsProjectPolicyMap;
-import
org.apache.ranger.plugin.model.RangerDatasetHeader.RangerDatasetHeaderInfo;
+import org.apache.ranger.plugin.model.RangerGds.DatasetSummary;
+import org.apache.ranger.plugin.model.RangerGds.DataShareInDatasetSummary;
import org.apache.ranger.plugin.model.RangerPolicy;
import org.apache.ranger.plugin.model.RangerGds.GdsPermission;
import org.apache.ranger.plugin.model.RangerGds.GdsShareStatus;
@@ -151,16 +154,16 @@ public class GdsDBStore extends AbstractGdsStore {
}
}
- public PList<RangerDatasetHeaderInfo> getDatasetHeaders(SearchFilter
filter) throws Exception {
- LOG.debug("==> getDatasetHeaders({})", filter);
+ public PList<DatasetSummary> getDatasetSummary(SearchFilter filter) throws
Exception {
+ LOG.debug("==> getDatasetSummary({})", filter);
- PList<RangerDataset> datasets =
getUnscrubbedDatasets(filter);
- List<RangerDatasetHeaderInfo> datasetHeaders =
toDatasetHeaders(datasets.getList(), getGdsPermissionFromFilter(filter));
- PList<RangerDatasetHeaderInfo> ret = new
PList<>(datasetHeaders, datasets.getStartIndex(), datasets.getPageSize(),
datasets.getTotalCount(), datasets.getResultSize(), datasets.getSortType(),
datasets.getSortBy());
+ PList<RangerDataset> datasets = getUnscrubbedDatasets(filter);
+ List<DatasetSummary> datasetSummary =
toDatasetSummary(datasets.getList(), getGdsPermissionFromFilter(filter));
+ PList<DatasetSummary> ret = new PList<>(datasetSummary,
datasets.getStartIndex(), datasets.getPageSize(), datasets.getTotalCount(),
datasets.getResultSize(), datasets.getSortType(), datasets.getSortBy());
ret.setQueryTimeMS(datasets.getQueryTimeMS());
- LOG.debug("<== getDatasetHeaders({}): ret={}", filter, ret);
+ LOG.debug("<== getDatasetSummary({}): ret={}", filter, ret);
return ret;
}
@@ -1178,39 +1181,44 @@ public class GdsDBStore extends AbstractGdsStore {
}
}
- private List<RangerDatasetHeaderInfo> toDatasetHeaders(List<RangerDataset>
datasets, GdsPermission gdsPermission) {
- List<RangerDatasetHeaderInfo> ret = new ArrayList<>();
+ private List<DatasetSummary> toDatasetSummary(List<RangerDataset>
datasets, GdsPermission gdsPermission) {
+ List<DatasetSummary> ret = new ArrayList<>();
+ String currentUser = bizUtil.getCurrentUserLoginId();
for (RangerDataset dataset : datasets) {
- RangerDatasetHeaderInfo datasetHeader = new
RangerDatasetHeaderInfo();
-
- if (gdsPermission.equals(GdsPermission.LIST)) {
- final GdsPermission permissionForUser =
validator.getGdsPermissionForUser(dataset.getAcl(),
bizUtil.getCurrentUserLoginId());
+ GdsPermission permissionForCaller =
validator.getGdsPermissionForUser(dataset.getAcl(), currentUser);
- if (permissionForUser.equals(GdsPermission.NONE)) {
- continue;
- } else {
-
datasetHeader.setPermissionForCaller(permissionForUser.toString());
- }
- } else {
-
datasetHeader.setDataSharesCountByStatus(getDataSharesInDatasetCountByStatus(dataset.getId()));
-
datasetHeader.setProjectsCount(getDIPCountForDataset(dataset.getId()));
-
datasetHeader.setPrincipalsCountByType(getPrincipalCountForDataset(dataset.getName()));
-
-
datasetHeader.setResourceCount(getResourceCountInDataset(dataset.getId()));
+ if (permissionForCaller.equals(GdsPermission.NONE)) {
+ continue;
}
- datasetHeader.setId(dataset.getId());
- datasetHeader.setName(dataset.getName());
- datasetHeader.setCreateTime(dataset.getCreateTime());
- datasetHeader.setUpdateTime(dataset.getUpdateTime());
- datasetHeader.setCreatedBy(dataset.getCreatedBy());
- datasetHeader.setUpdatedBy(dataset.getUpdatedBy());
- datasetHeader.setIsEnabled(dataset.getIsEnabled());
- datasetHeader.setGuid(dataset.getGuid());
- datasetHeader.setVersion(dataset.getVersion());
+ DatasetSummary datasetSummary = new DatasetSummary();
+
+ datasetSummary.setId(dataset.getId());
+ datasetSummary.setName(dataset.getName());
+ datasetSummary.setCreateTime(dataset.getCreateTime());
+ datasetSummary.setUpdateTime(dataset.getUpdateTime());
+ datasetSummary.setCreatedBy(dataset.getCreatedBy());
+ datasetSummary.setUpdatedBy(dataset.getUpdatedBy());
+ datasetSummary.setIsEnabled(dataset.getIsEnabled());
+ datasetSummary.setGuid(dataset.getGuid());
+ datasetSummary.setVersion(dataset.getVersion());
+ datasetSummary.setPermissionForCaller(permissionForCaller);
+
+ if (!gdsPermission.equals(GdsPermission.LIST)) {
+
datasetSummary.setProjectsCount(getDIPCountForDataset(dataset.getId()));
+
datasetSummary.setPrincipalsCount(getPrincipalCountForDataset(dataset.getName()));
+
+ List<DataShareInDatasetSummary> dshInDsSummaryList =
getDshInDsSummaryList(dataset.getId());
+
+ datasetSummary.setDataShares(dshInDsSummaryList);
+
datasetSummary.setTotalResourceCount(dshInDsSummaryList.stream()
+ .map(DataShareInDatasetSummary::getResourceCount)
+ .mapToLong(Long::longValue)
+ .sum());
+ }
- ret.add(datasetHeader);
+ ret.add(datasetSummary);
}
return ret;
@@ -1231,10 +1239,6 @@ public class GdsDBStore extends AbstractGdsStore {
return datasetInProjectService.getDatasetsInProjectCount(datasetId);
}
- private Long getResourceCountInDataset(Long datasetId) {
- return sharedResourceService.getResourceCountInDataset(datasetId);
- }
-
private Map<PrincipalType, Long> getPrincipalCountForDataset(String
datasetName) {
Map<PrincipalType, Long> ret = new HashMap<>();
Set<String> users = new HashSet<>();
@@ -1319,9 +1323,8 @@ public class GdsDBStore extends AbstractGdsStore {
}
private void removeDshInDsForDataShare(Long dataShareId) {
- SearchFilter filter = new SearchFilter();
- filter.setParam(SearchFilter.DATA_SHARE_ID, dataShareId.toString());
- final RangerDataShareInDatasetList dshInDsList =
dataShareInDatasetService.searchDataShareInDatasets(filter);
+ SearchFilter filter = new
SearchFilter(SearchFilter.DATA_SHARE_ID, dataShareId.toString());
+ RangerDataShareInDatasetList dshInDsList =
dataShareInDatasetService.searchDataShareInDatasets(filter);
for(RangerDataShareInDataset dshInDs : dshInDsList.getList()) {
final boolean dshInDsDeleted =
dataShareInDatasetService.delete(dshInDs);
@@ -1333,14 +1336,13 @@ public class GdsDBStore extends AbstractGdsStore {
}
private void removeSharedResourcesForDataShare(Long dataShareId) {
- SearchFilter filter = new SearchFilter();
- filter.setParam(SearchFilter.DATA_SHARE_ID, dataShareId.toString());
- final RangerSharedResourceList sharedResources =
sharedResourceService.searchSharedResources(filter);
+ SearchFilter filter = new
SearchFilter(SearchFilter.DATA_SHARE_ID, dataShareId.toString());
+ RangerSharedResourceList sharedResources =
sharedResourceService.searchSharedResources(filter);
- for(RangerSharedResource sharedResource : sharedResources.getList()) {
+ for (RangerSharedResource sharedResource : sharedResources.getList()) {
final boolean sharedResourceDeleted =
sharedResourceService.delete(sharedResource);
- if(!sharedResourceDeleted) {
+ if (!sharedResourceDeleted) {
throw restErrorUtil.createRESTException("SharedResource could
not be deleted", MessageEnums.ERROR_DELETE_OBJECT, sharedResource.getId(),
"SharedResourceId", null, HttpStatus.SC_INTERNAL_SERVER_ERROR);
}
}
@@ -1415,8 +1417,8 @@ public class GdsDBStore extends AbstractGdsStore {
}
private void addCreatorAsAclAdmin(RangerGdsObjectACL acl) {
- String currentUser =
bizUtil.getCurrentUserLoginId();
- Map<String, GdsPermission> userAcl = acl.getUsers();
+ String currentUser = bizUtil.getCurrentUserLoginId();
+ Map<String, GdsPermission> userAcl = acl.getUsers();
if (userAcl == null) {
userAcl = new HashMap<>();
@@ -1428,4 +1430,80 @@ public class GdsDBStore extends AbstractGdsStore {
acl.getUsers().put(currentUser, GdsPermission.ADMIN);
}
}
+
+ private List<DataShareInDatasetSummary> getDshInDsSummaryList(Long
datasetId) {
+ List<DataShareInDatasetSummary> ret = new ArrayList<>();
+ SearchFilter filter = new
SearchFilter(SearchFilter.DATASET_ID, datasetId.toString());
+ RangerDataShareList dataShares =
dataShareService.searchDataShares(filter);
+
+ if (CollectionUtils.isNotEmpty(dataShares.getList())) {
+ RangerDataShareInDatasetList dshInDsList =
dataShareInDatasetService.searchDataShareInDatasets(filter);
+
+ if (CollectionUtils.isNotEmpty(dshInDsList.getList())) {
+ for (RangerDataShare dataShare : dataShares.getList()) {
+ DataShareInDatasetSummary summary =
toDshInDsSummary(dataShare, dshInDsList.getList());
+
+ ret.add(summary);
+ }
+ }
+ }
+
+ return ret;
+ }
+
+ private DataShareInDatasetSummary toDshInDsSummary(RangerDataShare
dataShare, List<RangerDataShareInDataset> dshInDsList) {
+ Optional<RangerDataShareInDataset> dshInDs =
dshInDsList.stream().filter(d ->
d.getDataShareId().equals(dataShare.getId())).findFirst();
+
+ if (!dshInDs.isPresent()) {
+ throw restErrorUtil.createRESTException("RequestStatus for
DataShareInDataset not found", MessageEnums.DATA_NOT_FOUND, dataShare.getId(),
"SharedResourceId", null, HttpStatus.SC_NOT_FOUND);
+ }
+
+ DataShareInDatasetSummary summary = new DataShareInDatasetSummary();
+
+ summary.setId(dataShare.getId());
+ summary.setCreatedBy(dataShare.getCreatedBy());
+ summary.setCreateTime(dataShare.getCreateTime());
+ summary.setUpdatedBy(dataShare.getUpdatedBy());
+ summary.setUpdateTime(dataShare.getUpdateTime());
+ summary.setGuid(dataShare.getGuid());
+ summary.setIsEnabled(dataShare.getIsEnabled());
+ summary.setVersion(dataShare.getVersion());
+
+ summary.setName(dataShare.getName());
+ summary.setServiceId(getServiceId(dataShare.getService()));
+ summary.setServiceName(dataShare.getService());
+ summary.setZoneId(getZoneId(dataShare.getZone()));
+ summary.setZoneName(dataShare.getZone());
+ summary.setShareStatus(dshInDs.get().getStatus());
+ summary.setApprover(dshInDs.get().getApprover());
+
summary.setResourceCount(sharedResourceService.getResourceCountForDataShare(dataShare.getId()));
+
+ return summary;
+ }
+
+ private Long getServiceId(String serviceName) {
+ XXService xService = daoMgr.getXXService().findByName(serviceName);
+
+ if (xService == null) {
+ throw restErrorUtil.createRESTException("Service not found",
MessageEnums.DATA_NOT_FOUND, null, "ServiceName", null,
HttpStatus.SC_NOT_FOUND);
+ }
+
+ return xService.getId();
+ }
+
+ private Long getZoneId(String zoneName) {
+ Long ret = null;
+
+ if (StringUtils.isNotBlank(zoneName)) {
+ XXSecurityZone xxSecurityZone =
daoMgr.getXXSecurityZoneDao().findByZoneName(zoneName);
+
+ if (xxSecurityZone == null) {
+ throw restErrorUtil.createRESTException("Security Zone not
found", MessageEnums.DATA_NOT_FOUND, null, "ZoneName", null,
HttpStatus.SC_NOT_FOUND);
+ }
+
+ ret = xxSecurityZone.getId();
+ }
+
+ return ret;
+ }
}
diff --git a/security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java
b/security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java
index b7ef9b86a..7617fb411 100755
--- a/security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java
+++ b/security-admin/src/main/java/org/apache/ranger/rest/GdsREST.java
@@ -23,7 +23,6 @@ import org.apache.commons.lang.StringUtils;
import org.apache.ranger.biz.GdsDBStore;
import org.apache.ranger.common.RESTErrorUtil;
import org.apache.ranger.common.RangerSearchUtil;
-import
org.apache.ranger.plugin.model.RangerDatasetHeader.RangerDatasetHeaderInfo;
import org.apache.ranger.plugin.model.RangerGds.RangerDataset;
import org.apache.ranger.plugin.model.RangerGds.RangerDatasetInProject;
import org.apache.ranger.plugin.model.RangerGds.RangerDataShareInDataset;
@@ -31,6 +30,7 @@ import
org.apache.ranger.plugin.model.RangerGds.RangerDataShare;
import org.apache.ranger.plugin.model.RangerGds.RangerProject;
import org.apache.ranger.plugin.model.RangerGds.RangerSharedResource;
import org.apache.ranger.plugin.model.RangerPolicy;
+import org.apache.ranger.plugin.model.RangerGds.DatasetSummary;
import org.apache.ranger.plugin.store.PList;
import org.apache.ranger.plugin.util.RangerPerfTracer;
import org.apache.ranger.plugin.util.SearchFilter;
@@ -289,27 +289,27 @@ public class GdsREST {
}
@GET
- @Path("/dataset/info")
+ @Path("/dataset/summary")
@Produces({ "application/json" })
- @PreAuthorize("@rangerPreAuthSecurityHandler.isAPIAccessible(\"" +
RangerAPIList.GET_DATASETS_HEADER + "\")")
- public PList<RangerDatasetHeaderInfo> getDatasetHeaderInfo(@Context
HttpServletRequest request) {
- LOG.debug("==> GdsREST.getDatasetHeaderInfo()");
+ @PreAuthorize("@rangerPreAuthSecurityHandler.isAPIAccessible(\"" +
RangerAPIList.GET_DATASET_SUMMARY + "\")")
+ public PList<DatasetSummary> getDatasetSummary(@Context HttpServletRequest
request) {
+ LOG.debug("==> GdsREST.getDatasetSummary()");
- PList<RangerDatasetHeaderInfo> ret;
+ PList<DatasetSummary> ret;
try {
SearchFilter filter = searchUtil.getSearchFilter(request,
datasetService.sortFields);
- ret = gdsStore.getDatasetHeaders(filter);
- } catch (WebApplicationException excp) {
- throw excp;
+ ret = gdsStore.getDatasetSummary(filter);
+ } catch (WebApplicationException we) {
+ throw we;
} catch (Throwable ex) {
- LOG.error("getDatasets() failed", ex);
+ LOG.error("getDatasetSummary() failed", ex);
throw restErrorUtil.createRESTException(ex.getMessage());
}
- LOG.debug("<== GdsREST.getDatasetHeaderInfo(): {}", ret);
+ LOG.debug("<== GdsREST.getDatasetSummary(): {}", ret);
return ret;
}
diff --git
a/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
index dede14dfd..1c42e93c0 100755
---
a/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
+++
b/security-admin/src/main/java/org/apache/ranger/security/context/RangerAPIList.java
@@ -216,7 +216,7 @@ public class RangerAPIList {
/**
* List of APIs for DataShareREST
*/
- public static final String GET_DATASETS_HEADER =
"GdsREST.getDatasetHeaderInfo";
+ public static final String GET_DATASET_SUMMARY =
"GdsREST.getDatasetSummary";
public static final String CREATE_DATASET =
"GdsREST.createDataset";
public static final String UPDATE_DATASET =
"GdsREST.updateDataset";
public static final String DELETE_DATASET =
"GdsREST.deleteDataset";
diff --git
a/security-admin/src/main/java/org/apache/ranger/service/RangerGdsSharedResourceService.java
b/security-admin/src/main/java/org/apache/ranger/service/RangerGdsSharedResourceService.java
index 7f6dee9ec..35ea2da8c 100755
---
a/security-admin/src/main/java/org/apache/ranger/service/RangerGdsSharedResourceService.java
+++
b/security-admin/src/main/java/org/apache/ranger/service/RangerGdsSharedResourceService.java
@@ -159,7 +159,7 @@ public class RangerGdsSharedResourceService extends
RangerGdsBaseModelService<XX
msgList.add(MessageEnums.NO_INPUT_DATA.getMessage(null,
"dataShareId"));
}
- if (!Objects.equals(vObj.getDataShareId(), xDataShare.getId())) {
+ if ((xDataShare != null) && !Objects.equals(vObj.getDataShareId(),
xDataShare.getId())) {
msgList = getOrCreateMessageList(msgList);
msgList.add(MessageEnums.NO_INPUT_DATA.getMessage(null,
"dataShareId"));
@@ -251,16 +251,16 @@ public class RangerGdsSharedResourceService extends
RangerGdsBaseModelService<XX
return ret;
}
- public Long getResourceCountInDataset(long datasetId) {
- LOG.debug("==> getResourceCountInDataset({})", datasetId);
+ public Long getResourceCountForDataShare(long dataShareId) {
+ LOG.debug("==> getResourceCountForDataShare({})", dataShareId);
SearchFilter filter = new SearchFilter();
- filter.setParam(SearchFilter.DATASET_ID, String.valueOf(datasetId));
+ filter.setParam(SearchFilter.DATA_SHARE_ID,
String.valueOf(dataShareId));
Long ret = super.getCountForSearchQuery(filter, searchFields);
- LOG.debug("<== getResourceCountInDataset({}): ret={}", datasetId, ret);
+ LOG.debug("<== getResourceCountForDataShare({}): ret={}", dataShareId,
ret);
return ret;
}