You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ranger.apache.org by "Ramachandran (Jira)" <ji...@apache.org> on 2022/11/08 03:38:00 UTC
[jira] [Updated] (RANGER-3903) Bug in RangerPolicyDeltaUtil--> applyDeltas method
[ https://issues.apache.org/jira/browse/RANGER-3903?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Ramachandran updated RANGER-3903:
---------------------------------
Summary: Bug in RangerPolicyDeltaUtil--> applyDeltas method (was: Improvements in RangerPolicyDeltaUtil--> applyDeltas method)
> Bug in RangerPolicyDeltaUtil--> applyDeltas method
> --------------------------------------------------
>
> Key: RANGER-3903
> URL: https://issues.apache.org/jira/browse/RANGER-3903
> Project: Ranger
> Issue Type: Improvement
> Components: Ranger
> Affects Versions: 3.0.0
> Reporter: Ramachandran
> Assignee: Ramachandran
> Priority: Major
> Attachments: 0001-RANGER-3897-Improvements-in-RangerPolicyDeltaUtil-ap.patch
>
>
>
> {code:java}
> while (iter.hasNext()) {
> RangerPolicy policy = iter.next();
> if (policyId.equals(policy.getId()) && (changeType == RangerPolicyDelta.CHANGE_TYPE_POLICY_DELETE || changeType == RangerPolicyDelta.CHANGE_TYPE_POLICY_UPDATE)) {
> deletedPolicies.add(policy);
> iter.remove();
> }
> }
> switch (changeType) {
> case RangerPolicyDelta.CHANGE_TYPE_POLICY_CREATE:
> {
> if (CollectionUtils.isNotEmpty(deletedPolicies)) {
> LOG.warn("Unexpected: found existing policy for CHANGE_TYPE_POLICY_CREATE: " + Arrays.toString(deletedPolicies.toArray()));
> }
> break;
> }
> case RangerPolicyDelta.CHANGE_TYPE_POLICY_UPDATE:
> {
> if (CollectionUtils.isEmpty(deletedPolicies) || deletedPolicies.size() > 1) {
> LOG.warn("Unexpected: found no policy or multiple policies for CHANGE_TYPE_POLICY_UPDATE: " + Arrays.toString(deletedPolicies.toArray()));
> }
> break;
> }
> case RangerPolicyDelta.CHANGE_TYPE_POLICY_DELETE:
> {
> if (CollectionUtils.isEmpty(deletedPolicies) || deletedPolicies.size() > 1) {
> LOG.warn("Unexpected: found no policy or multiple policies for CHANGE_TYPE_POLICY_DELETE: " + Arrays.toString(deletedPolicies.toArray()));
> }
> break;
> }
> default:
> break;
> }{code}
> From the above code, we iterate delta policies and check if this policy exists in the existing policy, we add that to deletePolicies list.
> If a delta change type is created, we expect that it should not be in the existing old policy which should not have happened. So the below block code is not needed
> {code:java}
> case RangerPolicyDelta.CHANGE_TYPE_POLICY_CREATE: {
> if (CollectionUtils.isNotEmpty(deletedPolicies)) {
> LOG.warn("Unexpected: found existing policy for CHANGE_TYPE_POLICY_CREATE: " + Arrays.toString(deletedPolicies.toArray()));
> }
> break;
> }{code}
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)