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);
 

Reply via email to