summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDipayan Bhowmick <dipayan.bhowmick@gmail.com>2016-10-20 22:08:48 +0530
committerDipayan Bhowmick <dipayan.bhowmick@gmail.com>2016-10-20 22:17:22 +0530
commitaffca7689655762a5a749b3283668e222ce1b2d9 (patch)
treef84ff1519f6f69d70bb274d0825cd089bb4a1c6d
parent9e8ad661446e5e0aad10ea191b18056a85301e05 (diff)
AMBARI-18371. View migration removes current permissions. (Ashwin Rajeev via dipayanb)
-rw-r--r--ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java14
-rw-r--r--ambari-server/src/test/java/org/apache/ambari/server/view/ViewDataMigrationUtilityTest.java3
2 files changed, 8 insertions, 9 deletions
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
index 156fd5babe..455b4f16c7 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java
@@ -711,10 +711,7 @@ public class ViewRegistry {
targetInstanceEntity.getName());
List<PrivilegeEntity> targetInstancePrivileges = privilegeDAO.findByResourceId(targetInstanceEntity.getResource().getId());
if (targetInstancePrivileges.size() > 0) {
- LOG.warn("Old privileges will be removed for " + targetInstanceEntity.getName());
- for (PrivilegeEntity privilegeEntity : targetInstancePrivileges) {
- removePrivilegeEntity(privilegeEntity);
- }
+ LOG.warn("Target instance {} already has privileges assigned, these will not be deleted. Manual clean up may be needed",targetInstanceEntity.getName());
}
List<PrivilegeEntity> sourceInstancePrivileges = privilegeDAO.findByResourceId(sourceInstanceEntity.getResource().getId());
@@ -723,9 +720,14 @@ public class ViewRegistry {
targetPrivilege.setPrincipal(sourcePrivilege.getPrincipal());
targetPrivilege.setResource(targetInstanceEntity.getResource());
targetPrivilege.setPermission(sourcePrivilege.getPermission());
- privilegeDAO.create(targetPrivilege);
+ try {
+ privilegeDAO.create(targetPrivilege);
+ targetPrivilege.getPrincipal().getPrivileges().add(sourcePrivilege);
+ } catch (Exception e){
+ LOG.warn("Could not migrate privilege {} ",targetPrivilege);
+ LOG.error("Caught exception",e);
+ }
- targetPrivilege.getPrincipal().getPrivileges().add(sourcePrivilege);
}
}
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewDataMigrationUtilityTest.java b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewDataMigrationUtilityTest.java
index f9975894bc..0306c0a393 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/view/ViewDataMigrationUtilityTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/view/ViewDataMigrationUtilityTest.java
@@ -18,7 +18,6 @@
package org.apache.ambari.server.view;
import junit.framework.Assert;
-import org.apache.ambari.server.api.services.ViewDataMigrationService;
import org.apache.ambari.server.orm.entities.ViewEntity;
import org.apache.ambari.server.orm.entities.ViewInstanceEntity;
import org.apache.ambari.view.migration.ViewDataMigrationContext;
@@ -34,8 +33,6 @@ import java.util.HashMap;
import java.util.Map;
import static org.easymock.EasyMock.*;
-import static org.easymock.EasyMock.replay;
-import static org.junit.Assert.*;
/**
* ViewDataMigrationUtility Tests.