AMBARI-22724. Idempotent issue on Ambari Upgrade, renameServiceDeletedColumn failed with column already exists exception.(vbrodetskyi)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/cd5c1cad Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/cd5c1cad Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/cd5c1cad Branch: refs/heads/branch-feature-AMBARI-20859 Commit: cd5c1cad8f62c45de62094de2b5e442d161c9b34 Parents: e13bfb9 Author: Vitaly Brodetskyi <[email protected]> Authored: Fri Jan 5 16:29:39 2018 +0200 Committer: Vitaly Brodetskyi <[email protected]> Committed: Fri Jan 5 16:32:21 2018 +0200 ---------------------------------------------------------------------- .../org/apache/ambari/server/upgrade/UpgradeCatalog252.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/cd5c1cad/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog252.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog252.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog252.java index 1b706d6..62e56fc 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog252.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog252.java @@ -59,6 +59,7 @@ public class UpgradeCatalog252 extends AbstractUpgradeCatalog { static final String CLUSTERCONFIG_TABLE = "clusterconfig"; static final String SERVICE_DELETED_COLUMN = "service_deleted"; + static final String UNMAPPED_COLUMN = "unmapped"; private static final String UPGRADE_TABLE = "upgrade"; private static final String UPGRADE_TABLE_FROM_REPO_COLUMN = "from_repo_version_id"; @@ -141,8 +142,10 @@ public class UpgradeCatalog252 extends AbstractUpgradeCatalog { * @throws java.sql.SQLException */ private void addServiceDeletedColumnToClusterConfigTable() throws SQLException { - dbAccessor.addColumn(CLUSTERCONFIG_TABLE, - new DBColumnInfo(SERVICE_DELETED_COLUMN, Short.class, null, 0, false)); + if (!dbAccessor.tableHasColumn(CLUSTERCONFIG_TABLE, UNMAPPED_COLUMN)) { + dbAccessor.addColumn(CLUSTERCONFIG_TABLE, + new DBColumnInfo(SERVICE_DELETED_COLUMN, Short.class, null, 0, false)); + } } /**
