diff options
Diffstat (limited to 'ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java')
-rw-r--r-- | ambari-server/src/main/java/org/apache/ambari/server/view/ViewRegistry.java | 14 |
1 files changed, 8 insertions, 6 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); } } |