----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/59603/ -----------------------------------------------------------
Review request for ranger, Ankita Sinha, Don Bosco Durai, Gautam Borad, Abhay Kulkarni, Madhan Neethiraj, Mehul Parikh, Ramesh Mani, Selvamohan Neethiraj, Sailaja Polavarapu, and Velmurugan Periasamy. Bugs: RANGER-1612 https://issues.apache.org/jira/browse/RANGER-1612 Repository: ranger Description ------- ** Problem Statement : ** During the upgrade/migration of hive service def When servicedef is accessed, one of the properties "enableDenyAndExceptionsInPolicies" is returned as "false" if there is no value set for it. Now, hive service def has changed (because URL as a resource is added to it). So when servicedef is updated, enableDenyPolicies property is updated in the database to be "false". this should not happen so migration script for service-def needs to check what the real value of this property (in the database) and preserve it across migration. ** Proposed Solution : ** Read service-def using dao object before starting upgrade and preserve def_options field value. Let the upgrade happen as its working currently. Update the servicedef with def_options received before upgrade. Diffs ----- NOTICE.txt 0cd1f15 security-admin/src/main/java/org/apache/ranger/patch/PatchForHiveServiceDefUpdate_J10006.java 7d6a23d security-admin/src/main/java/org/apache/ranger/patch/PatchForHiveServiceDefUpdate_J10007.java e0c6a65 Diff: https://reviews.apache.org/r/59603/diff/1/ Testing ------- **Without patch case:** Tried to reproduce the case in Ranger 0.7 and master branch without patch. in Ranger 0.7 installation found that hive servicedef def_options field is having value '{}', while in master branch fresh Ranger installation shows hive servicedef def_options field is having value '{"enableDenyAndExceptionsInPolicies":"false"}'; which should not be there. **With patch:** Ranger 0.7 and master branch Ranger both are having value '{}' **Other use cases tested :** If before upgrade servicedef def_options is having : { "key1", "value1" }; then after upgrade servicedef def_options should remain same. If before upgrade servicedef def_options is having { "key1", "value1", "enableDenyAndExceptionsInPolicies":"true" }; then after upgrade also servicedef def_options should remain same. Thanks, Pradeep Agrawal