Repository: ambari Updated Branches: refs/heads/trunk ef30d78a3 -> 21b82cc4e
AMBARI-15446. ADDENDUM. Auto-retry on failure during RU/EU (alejandro) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/21b82cc4 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/21b82cc4 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/21b82cc4 Branch: refs/heads/trunk Commit: 21b82cc4e26df76b449b5f4978045187778019ff Parents: ef30d78 Author: Alejandro Fernandez <[email protected]> Authored: Wed Apr 6 11:44:37 2016 -0700 Committer: Alejandro Fernandez <[email protected]> Committed: Wed Apr 6 13:29:19 2016 -0700 ---------------------------------------------------------------------- .../ambari/server/upgrade/UpgradeCatalog240.java | 14 ++++++++++++-- .../ambari/server/upgrade/UpgradeCatalog240Test.java | 14 ++++++++++++++ 2 files changed, 26 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/21b82cc4/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java index e183d8d..6a1c60c 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog240.java @@ -159,6 +159,7 @@ public class UpgradeCatalog240 extends AbstractUpgradeCatalog { updateAlertDefinitionTable(); updateAlertCurrentTable(); createBlueprintSettingTable(); + updateHostRoleCommandTableDDL(); } private void updateClusterTableDDL() throws SQLException { @@ -182,6 +183,7 @@ public class UpgradeCatalog240 extends AbstractUpgradeCatalog { addManageUserPersistedDataPermission(); updateAMSConfigs(); updateClusterEnv(); + updateHostRoleCommandTableDML(); } private void createSettingTable() throws SQLException { @@ -861,7 +863,7 @@ public class UpgradeCatalog240 extends AbstractUpgradeCatalog { * <ul> * <li>id BIGINT NOT NULL</li> * <li>Drops FKs on {@value #HOST_COMPONENT_DS_TABLE} and {@value #HOST_COMPONENT_STATE_TABLE}</li> - * <li>Populates {@value #SQLException#ID} in {@value #SERVICE_COMPONENT_DS_TABLE}</li> + * <li>Populates ID in {@value #SERVICE_COMPONENT_DS_TABLE}</li> * <li>Creates {@code UNIQUE} constraint on {@value #HOST_COMPONENT_DS_TABLE}</li> * <li>Adds FKs on {@value #HOST_COMPONENT_DS_TABLE} and {@value #HOST_COMPONENT_STATE_TABLE}</li> * <li>Adds new sequence value of {@code servicecomponentdesiredstate_id_seq}</li> @@ -1004,10 +1006,18 @@ public class UpgradeCatalog240 extends AbstractUpgradeCatalog { * allows overriding the value in ActionScheduler.java * @throws SQLException */ - private void updateHostRoleCommandTable() throws SQLException { + private void updateHostRoleCommandTableDDL() throws SQLException { final String columnName = "original_start_time"; DBColumnInfo originalStartTimeColumn = new DBColumnInfo(columnName, Long.class, null, -1L, true); dbAccessor.addColumn(HOST_ROLE_COMMAND_TABLE, originalStartTimeColumn); + } + + /** + * Alter host_role_command table to update original_start_time with values and make it non-nullable + * @throws SQLException + */ + protected void updateHostRoleCommandTableDML() throws SQLException { + final String columnName = "original_start_time"; dbAccessor.executeQuery("UPDATE " + HOST_ROLE_COMMAND_TABLE + " SET original_start_time = start_time", false); dbAccessor.executeQuery("UPDATE " + HOST_ROLE_COMMAND_TABLE + " SET original_start_time=-1 WHERE original_start_time IS NULL"); dbAccessor.setColumnNullable(HOST_ROLE_COMMAND_TABLE, columnName, false); http://git-wip-us.apache.org/repos/asf/ambari/blob/21b82cc4/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog240Test.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog240Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog240Test.java index 56dd033..a04fb2f 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog240Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog240Test.java @@ -192,6 +192,10 @@ public class UpgradeCatalog240Test { expect(connection.createStatement()).andReturn(statement); expect(statement.executeQuery(anyObject(String.class))).andReturn(resultSet); + // Test host_role_command adds a column called original_start_time + Capture<DBAccessor.DBColumnInfo> hostRoleCommandOriginalStartTimeColumnInfo = newCapture(); + dbAccessor.addColumn(eq(UpgradeCatalog240.HOST_ROLE_COMMAND_TABLE), capture(hostRoleCommandOriginalStartTimeColumnInfo)); + replay(dbAccessor, configuration, connection, statement, resultSet); Module module = new Module() { @@ -320,6 +324,13 @@ public class UpgradeCatalog240Test { assertEquals(expectedCaptures, actualCaptures); + // Verify host_role_command column + DBAccessor.DBColumnInfo originalStartTimeInfo = hostRoleCommandOriginalStartTimeColumnInfo.getValue(); + Assert.assertNotNull(originalStartTimeInfo); + Assert.assertEquals("original_start_time", originalStartTimeInfo.getName()); + Assert.assertEquals(Long.class, originalStartTimeInfo.getType()); + Assert.assertEquals(-1L, originalStartTimeInfo.getDefaultValue()); + verify(dbAccessor); } @@ -331,6 +342,7 @@ public class UpgradeCatalog240Test { Method addSettingPermission = UpgradeCatalog240.class.getDeclaredMethod("addSettingPermission"); Method updateAmsConfigs = UpgradeCatalog240.class.getDeclaredMethod("updateAMSConfigs"); Method updateClusterEnv = UpgradeCatalog240.class.getDeclaredMethod("updateClusterEnv"); + Method updateHostRoleCommandTableDML = UpgradeCatalog240.class.getDeclaredMethod("updateHostRoleCommandTableDML"); Capture<String> capturedStatements = newCapture(CaptureType.ALL); @@ -344,6 +356,7 @@ public class UpgradeCatalog240Test { .addMockedMethod(addManageUserPersistedDataPermission) .addMockedMethod(updateAmsConfigs) .addMockedMethod(updateClusterEnv) + .addMockedMethod(updateHostRoleCommandTableDML) .createMock(); Field field = AbstractUpgradeCatalog.class.getDeclaredField("dbAccessor"); @@ -355,6 +368,7 @@ public class UpgradeCatalog240Test { upgradeCatalog240.addManageUserPersistedDataPermission(); upgradeCatalog240.updateAMSConfigs(); upgradeCatalog240.updateClusterEnv(); + upgradeCatalog240.updateHostRoleCommandTableDML(); replay(upgradeCatalog240, dbAccessor);
