From affca7689655762a5a749b3283668e222ce1b2d9 Mon Sep 17 00:00:00 2001 From: Dipayan Bhowmick Date: Thu, 20 Oct 2016 22:08:48 +0530 Subject: AMBARI-18371. View migration removes current permissions. (Ashwin Rajeev via dipayanb) --- .../java/org/apache/ambari/server/view/ViewRegistry.java | 14 ++++++++------ .../ambari/server/view/ViewDataMigrationUtilityTest.java | 3 --- 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 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 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. -- cgit v1.2.3