You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ranger.apache.org by ma...@apache.org on 2024/01/23 04:30:07 UTC
(ranger) branch master updated (3d2bf96a8 -> a07b6d4dc)
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
from 3d2bf96a8 RANGER-4651: fixed incorrect JPA query names - #2
new a62c0a0e7 RANGER-4654: Handle Dataset and Datashare creation errors gracefully
new a07b6d4dc RANGER-4662: fix to update GDS version after deletion of user, group
The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
.../main/java/org/apache/ranger/biz/XUserMgr.java | 58 ++++++++++++++++++++--
.../views/GovernedData/Dataset/AddDatasetView.jsx | 3 +-
.../GovernedData/Dataset/DatasetDetailLayout.jsx | 3 +-
.../Datashare/AddSharedResourceComp.jsx | 6 ++-
.../Datashare/DatashareDetailLayout.jsx | 5 +-
.../java/org/apache/ranger/biz/TestXUserMgr.java | 1 +
6 files changed, 69 insertions(+), 7 deletions(-)
(ranger) 02/02: RANGER-4662: fix to update GDS version after deletion of user, group
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
commit a07b6d4dcf2aa7ecae534da5163efa585763d1a1
Author: prashant <pr...@gmail.com>
AuthorDate: Thu Jan 18 12:11:06 2024 +0530
RANGER-4662: fix to update GDS version after deletion of user, group
Signed-off-by: Madhan Neethiraj <ma...@apache.org>
---
.../main/java/org/apache/ranger/biz/XUserMgr.java | 58 ++++++++++++++++++++--
.../java/org/apache/ranger/biz/TestXUserMgr.java | 1 +
2 files changed, 56 insertions(+), 3 deletions(-)
diff --git a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
index 287400259..d202b2184 100755
--- a/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
+++ b/security-admin/src/main/java/org/apache/ranger/biz/XUserMgr.java
@@ -44,9 +44,11 @@ import org.apache.ranger.plugin.model.GroupInfo;
import org.apache.ranger.plugin.model.RangerPolicy;
import org.apache.ranger.plugin.model.RangerPolicy.RangerDataMaskPolicyItem;
import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyItem;
+import org.apache.ranger.plugin.model.RangerPolicy.RangerPolicyResource;
import org.apache.ranger.plugin.model.RangerPolicy.RangerRowFilterPolicyItem;
import org.apache.ranger.plugin.model.RangerPrincipal;
import org.apache.ranger.plugin.model.UserInfo;
+import org.apache.ranger.plugin.store.EmbeddedServiceDefsUtil;
import org.apache.ranger.plugin.util.RangerUserStore;
import org.apache.ranger.service.*;
import org.apache.ranger.ugsyncutil.model.GroupUserInfo;
@@ -2153,12 +2155,37 @@ public class XUserMgr extends XUserMgrBase {
rangerPolicy.setRowFilterPolicyItems(rowFilterItems);
try {
- svcStore.updatePolicy(rangerPolicy);
+ if (StringUtils.equals(rangerPolicy.getServiceType(), EmbeddedServiceDefsUtil.EMBEDDED_SERVICEDEF_GDS_NAME)) {
+ Map<String, RangerPolicyResource> resources = rangerPolicy.getResources();
+
+ if (MapUtils.isEmpty(resources)) {
+ continue;
+ }
+
+ if (resources.containsKey(GdsDBStore.RESOURCE_NAME_DATASET_ID)) {
+ RangerPolicyResource policyRes = resources.get(GdsDBStore.RESOURCE_NAME_DATASET_ID);
+ List<String> resValues = policyRes != null ? policyRes.getValues() : null;
+
+ if (CollectionUtils.isNotEmpty(resValues)) {
+ gdsStore.updateDatasetPolicy(Long.valueOf(resValues.get(0)), rangerPolicy);
+ }
+ } else if (resources.containsKey(GdsDBStore.RESOURCE_NAME_PROJECT_ID)) {
+ RangerPolicyResource policyRes = resources.get(GdsDBStore.RESOURCE_NAME_PROJECT_ID);
+ List<String> resValues = policyRes != null ? policyRes.getValues() : null;
+
+ if (CollectionUtils.isNotEmpty(resValues)) {
+ gdsStore.updateProjectPolicy(Long.valueOf(resValues.get(0)), rangerPolicy);
+ }
+ }
+ } else {
+ svcStore.updatePolicy(rangerPolicy);
+ }
} catch (Throwable excp) {
logger.error("updatePolicy(" + rangerPolicy + ") failed", excp);
restErrorUtil.createRESTException(excp.getMessage());
}
}
+
if(CollectionUtils.isNotEmpty(xXGroupPermissions)){
for (XXGroupPermission xXGroupPermission : xXGroupPermissions) {
if(xXGroupPermission!=null){
@@ -2393,12 +2420,37 @@ public class XUserMgr extends XUserMgrBase {
rangerPolicy.setRowFilterPolicyItems(rowFilterItems);
try{
- svcStore.updatePolicy(rangerPolicy);
- }catch(Throwable excp) {
+ if (StringUtils.equals(rangerPolicy.getServiceType(), EmbeddedServiceDefsUtil.EMBEDDED_SERVICEDEF_GDS_NAME)) {
+ Map<String, RangerPolicyResource> resources = rangerPolicy.getResources();
+
+ if (MapUtils.isEmpty(resources)) {
+ continue;
+ }
+
+ if (resources.containsKey(GdsDBStore.RESOURCE_NAME_DATASET_ID)) {
+ RangerPolicyResource policyRes = resources.get(GdsDBStore.RESOURCE_NAME_DATASET_ID);
+ List<String> resValues = policyRes != null ? policyRes.getValues() : null;
+
+ if (CollectionUtils.isNotEmpty(resValues)) {
+ gdsStore.updateDatasetPolicy(Long.valueOf(resValues.get(0)), rangerPolicy);
+ }
+ } else if (resources.containsKey(GdsDBStore.RESOURCE_NAME_PROJECT_ID)) {
+ RangerPolicyResource policyRes = resources.get(GdsDBStore.RESOURCE_NAME_PROJECT_ID);
+ List<String> resValues = policyRes != null ? policyRes.getValues() : null;
+
+ if (CollectionUtils.isNotEmpty(resValues)) {
+ gdsStore.updateProjectPolicy(Long.valueOf(resValues.get(0)), rangerPolicy);
+ }
+ }
+ } else {
+ svcStore.updatePolicy(rangerPolicy);
+ }
+ } catch(Throwable excp) {
logger.error("updatePolicy(" + rangerPolicy + ") failed", excp);
throw restErrorUtil.createRESTException(excp.getMessage());
}
}
+
//delete user from audit filter configs
svcStore.updateServiceAuditConfig(vXUser.getName(), REMOVE_REF_TYPE.USER);
//delete gdsObject mapping of user
diff --git a/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java b/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
index ce48c8279..1c90cb18e 100644
--- a/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
+++ b/security-admin/src/test/java/org/apache/ranger/biz/TestXUserMgr.java
@@ -584,6 +584,7 @@ public class TestXUserMgr {
policy.setPolicyItems(policyItems);
policy.setResources(policyResource);
policy.setPolicyLabels(policyLabels);
+ policy.setServiceType("hdfs");
return policy;
}
(ranger) 01/02: RANGER-4654: Handle Dataset and Datashare creation errors gracefully
Posted by ma...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
madhan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ranger.git
commit a62c0a0e782609890eb628ca88fc17691ff60ce4
Author: princeap173 <pr...@gmail.com>
AuthorDate: Mon Jan 22 18:51:43 2024 +0530
RANGER-4654: Handle Dataset and Datashare creation errors gracefully
Signed-off-by: Madhan Neethiraj <ma...@apache.org>
---
.../react-webapp/src/views/GovernedData/Dataset/AddDatasetView.jsx | 3 ++-
.../src/views/GovernedData/Dataset/DatasetDetailLayout.jsx | 3 ++-
.../src/views/GovernedData/Datashare/AddSharedResourceComp.jsx | 6 +++++-
.../src/views/GovernedData/Datashare/DatashareDetailLayout.jsx | 5 ++++-
4 files changed, 13 insertions(+), 4 deletions(-)
diff --git a/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Dataset/AddDatasetView.jsx b/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Dataset/AddDatasetView.jsx
index 7851e7c26..1636b4400 100755
--- a/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Dataset/AddDatasetView.jsx
+++ b/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Dataset/AddDatasetView.jsx
@@ -129,7 +129,8 @@ const AddDatasetView = () => {
const createDatasetResp = await fetchApi({
url: `gds/dataset`,
method: "post",
- data: dataset
+ data: dataset,
+ skipNavigate: true
});
toast.success("Dataset created successfully!!");
self.location.hash = "#/gds/mydatasetlisting";
diff --git a/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Dataset/DatasetDetailLayout.jsx b/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Dataset/DatasetDetailLayout.jsx
index a8857e0eb..a0ac8cf8d 100755
--- a/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Dataset/DatasetDetailLayout.jsx
+++ b/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Dataset/DatasetDetailLayout.jsx
@@ -965,7 +965,8 @@ const DatasetDetailLayout = () => {
await fetchApi({
url: `gds/dataset/${datasetId}`,
method: "put",
- data: datasetInfo
+ data: datasetInfo,
+ skipNavigate: true
});
dispatch({
type: "SET_BLOCK_UI",
diff --git a/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Datashare/AddSharedResourceComp.jsx b/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Datashare/AddSharedResourceComp.jsx
index 23c34d2e7..911e257b6 100755
--- a/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Datashare/AddSharedResourceComp.jsx
+++ b/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Datashare/AddSharedResourceComp.jsx
@@ -257,7 +257,11 @@ const AddSharedResourceComp = ({
}
} catch (error) {
errorList.push(error);
- toast.error("Error occurred while creating Shared resource");
+ let errorMsg = "Error occurred while creating Shared resource";
+ if (error?.response?.data?.msgDesc) {
+ errorMsg = error.response.data.msgDesc;
+ }
+ toast.error(errorMsg);
console.error(`Error occurred while creating Shared resource ${error}`);
}
}
diff --git a/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Datashare/DatashareDetailLayout.jsx b/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Datashare/DatashareDetailLayout.jsx
index b6c83c9cd..928f2a891 100755
--- a/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Datashare/DatashareDetailLayout.jsx
+++ b/security-admin/src/main/webapp/react-webapp/src/views/GovernedData/Datashare/DatashareDetailLayout.jsx
@@ -582,12 +582,15 @@ const DatashareDetailLayout = () => {
await fetchApi({
url: `gds/datashare/${datashareId}`,
method: "put",
- data: datashareInfo
+ data: datashareInfo,
+ skipNavigate: true
});
toast.success("Datashare updated successfully!!");
} catch (error) {
serverError(error);
console.error(`Error occurred while updating datashare ${error}`);
+ setBlockUI(false);
+ return;
}
isDatashareNameEditable(false);
showSaveCancelButton(false);