You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by dm...@apache.org on 2016/02/25 20:25:19 UTC
ambari git commit: AMBARI-15183. column "upgrade_id" does not exist
upgrading to Ambari 2.4.0 (dlysnichenko)
Repository: ambari
Updated Branches:
refs/heads/trunk 1621a53dc -> 1df953d68
AMBARI-15183. column "upgrade_id" does not exist upgrading to Ambari 2.4.0 (dlysnichenko)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/1df953d6
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/1df953d6
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/1df953d6
Branch: refs/heads/trunk
Commit: 1df953d68aea7bc33d0fa01f5500c8e896c3abe7
Parents: 1621a53
Author: Lisnichenko Dmitro <dl...@hortonworks.com>
Authored: Thu Feb 25 21:23:34 2016 +0200
Committer: Lisnichenko Dmitro <dl...@hortonworks.com>
Committed: Thu Feb 25 21:23:34 2016 +0200
----------------------------------------------------------------------
.../server/upgrade/UpgradeCatalog240.java | 17 ++++++++++++
.../server/upgrade/UpgradeCatalog240Test.java | 27 ++++++++++++++++++++
2 files changed, 44 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/1df953d6/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 a3316c0..2f509b4 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
@@ -32,6 +32,7 @@ import java.util.concurrent.atomic.AtomicLong;
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.controller.AmbariManagementController;
+import org.apache.ambari.server.orm.DBAccessor;
import org.apache.ambari.server.orm.DBAccessor.DBColumnInfo;
import org.apache.ambari.server.orm.dao.AlertDefinitionDAO;
import org.apache.ambari.server.orm.dao.PermissionDAO;
@@ -43,6 +44,7 @@ import org.apache.ambari.server.orm.entities.RoleAuthorizationEntity;
import org.apache.ambari.server.state.Cluster;
import org.apache.ambari.server.state.Clusters;
import org.apache.ambari.server.state.RepositoryType;
+import org.apache.ambari.server.state.State;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jdbc.support.JdbcUtils;
@@ -72,6 +74,10 @@ public class UpgradeCatalog240 extends AbstractUpgradeCatalog {
protected static final String SERVICE_COMPONENT_HISTORY_TABLE = "servicecomponent_history";
protected static final String UPGRADE_TABLE = "upgrade";
protected static final String STACK_TABLE = "stack";
+ protected static final String CLUSTER_TABLE = "clusters";
+ protected static final String CLUSTER_UPGRADE_ID_COLUMN = "upgrade_id";
+ public static final String DESIRED_VERSION_COLUMN_NAME = "desired_version";
+
@Inject
PermissionDAO permissionDAO;
@@ -132,6 +138,14 @@ public class UpgradeCatalog240 extends AbstractUpgradeCatalog {
updateRepoVersionTableDDL();
updateServiceComponentDesiredStateTableDDL();
createServiceComponentHistoryTable();
+ updateClusterTableDDL();
+ }
+
+ private void updateClusterTableDDL() throws SQLException {
+ dbAccessor.addColumn(CLUSTER_TABLE, new DBColumnInfo(CLUSTER_UPGRADE_ID_COLUMN, Long.class, null, null, true));
+
+ dbAccessor.addFKConstraint(CLUSTER_TABLE, "FK_clusters_upgrade_id",
+ CLUSTER_UPGRADE_ID_COLUMN, UPGRADE_TABLE, "upgrade_id", false);
}
@Override
@@ -562,5 +576,8 @@ public class UpgradeCatalog240 extends AbstractUpgradeCatalog {
// recovery_enabled SMALLINT DEFAULT 0 NOT NULL
dbAccessor.addColumn(SERVICE_COMPONENT_DESIRED_STATE_TABLE,
new DBColumnInfo(RECOVERY_ENABLED_COL, Short.class, null, 0, false));
+
+ dbAccessor.addColumn(SERVICE_COMPONENT_DESIRED_STATE_TABLE,
+ new DBColumnInfo(DESIRED_VERSION_COLUMN_NAME, String.class, 255, State.UNKNOWN.toString(), false));
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/1df953d6/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 f5fafbc..a909f84 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
@@ -104,6 +104,8 @@ public class UpgradeCatalog240Test {
public void testExecuteDDLUpdates() throws SQLException, AmbariException {
Capture<DBAccessor.DBColumnInfo> capturedColumnInfo = newCapture();
Capture<DBAccessor.DBColumnInfo> capturedScColumnInfo = newCapture();
+ Capture<DBAccessor.DBColumnInfo> capturedScDesiredVersionColumnInfo = newCapture();
+
final DBAccessor dbAccessor = createStrictMock(DBAccessor.class);
Configuration configuration = createNiceMock(Configuration.class);
Connection connection = createNiceMock(Connection.class);
@@ -113,6 +115,8 @@ public class UpgradeCatalog240Test {
dbAccessor.addColumn(eq("adminpermission"), capture(capturedColumnInfo));
dbAccessor.addColumn(eq(UpgradeCatalog240.SERVICE_COMPONENT_DESIRED_STATE_TABLE), capture(capturedScColumnInfo));
+ dbAccessor.addColumn(eq(UpgradeCatalog240.SERVICE_COMPONENT_DESIRED_STATE_TABLE),
+ capture(capturedScDesiredVersionColumnInfo));
dbAccessor.createTable(eq("setting"), capture(capturedSettingColumns), eq("id"));
expect(configuration.getDatabaseUrl()).andReturn(Configuration.JDBC_IN_MEMORY_URL).anyTimes();
@@ -152,10 +156,16 @@ public class UpgradeCatalog240Test {
dbAccessor.addFKConstraint("servicecomponent_history", "FK_sc_history_to_stack_id",
"to_stack_id", "stack", "stack_id", false);
+
expect(dbAccessor.getConnection()).andReturn(connection);
expect(connection.createStatement()).andReturn(statement);
expect(statement.executeQuery(anyObject(String.class))).andReturn(resultSet);
+ Capture<DBAccessor.DBColumnInfo> capturedClusterUpgradeColumnInfo = newCapture();
+ dbAccessor.addColumn(eq(UpgradeCatalog240.CLUSTER_TABLE), capture(capturedClusterUpgradeColumnInfo));
+ dbAccessor.addFKConstraint(UpgradeCatalog240.CLUSTER_TABLE, "FK_clusters_upgrade_id",
+ UpgradeCatalog240.CLUSTER_UPGRADE_ID_COLUMN, UpgradeCatalog240.UPGRADE_TABLE, "upgrade_id", false);
+
replay(dbAccessor, configuration, connection, statement, resultSet);
Module module = new Module() {
@@ -188,6 +198,23 @@ public class UpgradeCatalog240Test {
Assert.assertEquals(0, columnScInfo.getDefaultValue());
Assert.assertEquals(false, columnScInfo.isNullable());
+ DBAccessor.DBColumnInfo columnScDesiredVersionInfo = capturedScDesiredVersionColumnInfo.getValue();
+ Assert.assertNotNull(columnScDesiredVersionInfo);
+ Assert.assertEquals(UpgradeCatalog240.DESIRED_VERSION_COLUMN_NAME, columnScDesiredVersionInfo.getName());
+ Assert.assertEquals(Integer.valueOf(255), columnScDesiredVersionInfo.getLength());
+ Assert.assertEquals(String.class, columnScDesiredVersionInfo.getType());
+ Assert.assertEquals("UNKNOWN", columnScDesiredVersionInfo.getDefaultValue());
+ Assert.assertEquals(false, columnScDesiredVersionInfo.isNullable());
+
+ // Verify if upgrade_id column was added to clusters table
+ DBAccessor.DBColumnInfo clusterUpgradeColumnInfo = capturedClusterUpgradeColumnInfo.getValue();
+ Assert.assertNotNull(clusterUpgradeColumnInfo);
+ Assert.assertEquals(UpgradeCatalog240.CLUSTER_UPGRADE_ID_COLUMN, clusterUpgradeColumnInfo.getName());
+ Assert.assertEquals(null, clusterUpgradeColumnInfo.getLength());
+ Assert.assertEquals(Long.class, clusterUpgradeColumnInfo.getType());
+ Assert.assertEquals(null, clusterUpgradeColumnInfo.getDefaultValue());
+ Assert.assertEquals(true, clusterUpgradeColumnInfo.isNullable());
+
Map<String, Class> expectedCaptures = new HashMap<>();
expectedCaptures.put("id", Long.class);
expectedCaptures.put("name", String.class);