AMBARI-21998. Ambari upgrade don't delete stale constraints (dlysnichenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/439a9ad0 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/439a9ad0 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/439a9ad0 Branch: refs/heads/branch-3.0-ams Commit: 439a9ad09d360d806befc386c5717ca576c3f221 Parents: a873626 Author: Lisnichenko Dmitro <dlysniche...@hortonworks.com> Authored: Tue Sep 26 18:58:22 2017 +0300 Committer: Lisnichenko Dmitro <dlysniche...@hortonworks.com> Committed: Tue Sep 26 18:58:52 2017 +0300 ---------------------------------------------------------------------- .../server/upgrade/UpgradeCatalog260.java | 25 ++++++++++++++++++++ .../server/upgrade/UpgradeCatalog260Test.java | 14 +++++++++++ 2 files changed, 39 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/439a9ad0/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog260.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog260.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog260.java index 5003c13..c31469e 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog260.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog260.java @@ -143,6 +143,12 @@ public class UpgradeCatalog260 extends AbstractUpgradeCatalog { public static final String NOT_REQUIRED = "NOT_REQUIRED"; public static final String CURRENT = "CURRENT"; public static final String SELECTED = "1"; + public static final String VIEWURL_TABLE = "viewurl"; + public static final String PK_VIEWURL = "PK_viewurl"; + public static final String URL_ID_COLUMN = "url_id"; + public static final String STALE_POSTGRESS_VIEWURL_PKEY = "viewurl_pkey"; + public static final String USERS_TABLE = "users"; + public static final String STALE_POSTGRESS_USERS_LDAP_USER_KEY = "users_ldap_user_key"; /** @@ -189,6 +195,25 @@ public class UpgradeCatalog260 extends AbstractUpgradeCatalog { updateRepositoryVersionTable(); renameServiceDeletedColumn(); expandUpgradeItemItemTextColumn(); + addViewUrlPKConstraint(); + removeStaleConstraints(); + } + + + /** + * Updates {@value #VIEWURL_TABLE} table. + * Adds the {@value #PK_VIEWURL} constraint. + */ + private void addViewUrlPKConstraint() throws SQLException { + dbAccessor.dropPKConstraint(VIEWURL_TABLE, STALE_POSTGRESS_VIEWURL_PKEY); + dbAccessor.addPKConstraint(VIEWURL_TABLE, PK_VIEWURL, URL_ID_COLUMN); + } + + /** + * remove stale unnamed constraints + */ + private void removeStaleConstraints() throws SQLException { + dbAccessor.dropUniqueConstraint(USERS_TABLE, STALE_POSTGRESS_USERS_LDAP_USER_KEY); } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/439a9ad0/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java index d0d5dac..cc58988 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog260Test.java @@ -201,6 +201,9 @@ public class UpgradeCatalog260Test { Capture<DBColumnInfo> unapped = newCapture(); expectRenameServiceDeletedColumn(unapped); + expectAddViewUrlPKConstraint(); + expectRemoveStaleConstraints(); + replay(dbAccessor, configuration, connection, statement, resultSet); Injector injector = getInjector(); @@ -218,6 +221,17 @@ public class UpgradeCatalog260Test { verifyUpdateRepositoryVersionTableTable(repoVersionHiddenColumnCapture, repoVersionResolvedColumnCapture); } + private void expectRemoveStaleConstraints() throws SQLException { + dbAccessor.dropUniqueConstraint(eq(UpgradeCatalog260.USERS_TABLE), eq(UpgradeCatalog260.STALE_POSTGRESS_USERS_LDAP_USER_KEY)); + } + + private void expectAddViewUrlPKConstraint() throws SQLException { + dbAccessor.dropPKConstraint(eq(UpgradeCatalog260.VIEWURL_TABLE), eq(UpgradeCatalog260.STALE_POSTGRESS_VIEWURL_PKEY)); + expectLastCall().once(); + dbAccessor.addPKConstraint(eq(UpgradeCatalog260.VIEWURL_TABLE), eq(UpgradeCatalog260.PK_VIEWURL), eq(UpgradeCatalog260.URL_ID_COLUMN)); + expectLastCall().once(); + } + public void expectDropStaleTables() throws SQLException { dbAccessor.dropTable(eq(UpgradeCatalog260.CLUSTER_CONFIG_MAPPING_TABLE)); expectLastCall().once();