You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by nc...@apache.org on 2017/04/27 20:20:18 UTC

[31/50] [abbrv] ambari git commit: Merge branch 'trunk' into branch-feature-AMBARI-12556

Merge branch 'trunk' into branch-feature-AMBARI-12556


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/353a076c
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/353a076c
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/353a076c

Branch: refs/heads/trunk
Commit: 353a076c8bf65a911f29b1f908e60d011459ffe0
Parents: 0c3478b cb030a4
Author: Nate Cole <nc...@hortonworks.com>
Authored: Fri Feb 24 09:18:46 2017 -0500
Committer: Nate Cole <nc...@hortonworks.com>
Committed: Fri Feb 24 09:18:46 2017 -0500

----------------------------------------------------------------------
 .../main/resources/ui/admin-web/app/index.html  |   2 +-
 ambari-agent/etc/init.d/ambari-agent            |   1 +
 .../org/apache/ambari/logfeeder/LogFeeder.java  |  13 +-
 .../ambari/logfeeder/common/ConfigBlock.java    |   2 +-
 .../apache/ambari/logfeeder/filter/Filter.java  |   4 +-
 .../ambari/logfeeder/input/InputSimulate.java   |  31 +-
 .../handler/UploadConfigurationHandler.java     |  65 +-
 ambari-metrics/ambari-metrics-assembly/pom.xml  |  12 +
 .../src/main/assembly/collector-windows.xml     |   1 +
 .../src/main/assembly/collector.xml             |   1 +
 .../timeline/AbstractTimelineMetricsSink.java   |  22 +-
 .../timeline/HadoopTimelineMetricsSink.java     |  11 +-
 .../ambari-metrics-kafka-sink/pom.xml           |   7 +-
 .../kafka/KafkaTimelineMetricsReporter.java     |   9 +-
 .../conf/unix/amshbase_metrics_whitelist        | 162 +++++
 .../conf/windows/amshbase_metrics_whitelist     | 162 +++++
 .../ambari-metrics-timelineservice/pom.xml      |   5 +
 .../timeline/HBaseTimelineMetricStore.java      |   2 +-
 .../timeline/TimelineMetricConfiguration.java   |  39 ++
 .../metrics/timeline/TimelineMetricsFilter.java |  45 +-
 .../timeline/TimelineMetricsFilterTest.java     |  59 +-
 .../timeline/discovery/TestMetadataManager.java |  15 +-
 ambari-server/sbin/ambari-server                |   2 +-
 .../checks/DatabaseConsistencyCheckHelper.java  |  79 +--
 .../internal/ServiceResourceProvider.java       |   2 +-
 .../internal/UpgradeResourceProvider.java       |  25 +-
 .../controller/utilities/DatabaseChecker.java   | 100 +--
 .../ambari/server/orm/dao/ClusterDAO.java       | 136 +---
 .../orm/entities/ClusterConfigEntity.java       | 125 ++--
 .../entities/ClusterConfigMappingEntity.java    | 207 -------
 .../entities/ClusterConfigMappingEntityPK.java  |  83 ---
 .../server/orm/entities/ClusterEntity.java      |  13 +-
 .../orm/entities/ServiceConfigEntity.java       |   2 +-
 .../orm/helpers/dbms/GenericDbmsHelper.java     |   2 +-
 .../kerberos/FinalizeKerberosServerAction.java  |  14 +-
 .../kerberos/KerberosServerAction.java          |   2 +-
 .../ambari/server/state/ConfigHelper.java       |  80 ++-
 .../ambari/server/state/DesiredConfig.java      |  20 -
 .../ambari/server/state/RepositoryInfo.java     |  20 +-
 .../apache/ambari/server/state/ServiceImpl.java |  33 +-
 .../server/state/cluster/ClusterImpl.java       | 238 ++-----
 .../ambari/server/state/host/HostImpl.java      |  13 +-
 .../stack/upgrade/RepositoryVersionHelper.java  |   2 +
 .../ambari/server/topology/TopologyManager.java |   3 +
 .../server/upgrade/UpgradeCatalog300.java       |  92 ++-
 .../main/resources/Ambari-DDL-Derby-CREATE.sql  |  12 +-
 .../main/resources/Ambari-DDL-MySQL-CREATE.sql  |  12 +-
 .../main/resources/Ambari-DDL-Oracle-CREATE.sql |  12 +-
 .../resources/Ambari-DDL-Postgres-CREATE.sql    |  12 +-
 .../resources/Ambari-DDL-SQLAnywhere-CREATE.sql |  12 +-
 .../resources/Ambari-DDL-SQLServer-CREATE.sql   |  12 +-
 .../HDP/grafana-logsearch-home.json             | 600 ++++++++++++++++++
 .../package/scripts/metadata_server.py          |   5 +-
 .../ATLAS/0.1.0.2.3/package/scripts/params.py   |   1 +
 .../DRUID/0.9.2/package/scripts/params.py       |   2 +-
 .../DRUID/0.9.2/package/scripts/superset.py     |   2 +-
 .../KAFKA/0.8.1/package/scripts/kafka_broker.py |  15 +-
 .../KAFKA/0.8.1/package/scripts/params.py       |   2 +
 .../LOGSEARCH/0.5.0/package/scripts/params.py   |   9 +
 .../0.5.0/package/scripts/setup_logfeeder.py    |  43 +-
 .../0.5.0/package/scripts/setup_logsearch.py    |  35 +-
 .../0.4.0/package/scripts/setup_ranger_xml.py   |  13 +-
 .../common-services/YARN/2.1.0.2.0/metainfo.xml |   1 +
 .../common-services/YARN/3.0.0.3.0/metainfo.xml |   1 +
 .../src/main/resources/scripts/configs.sh       |   8 +-
 .../stacks/HDP/2.0.6/services/stack_advisor.py  |   1 +
 .../stacks/HDP/2.3/upgrades/config-upgrade.xml  |  57 +-
 .../HDP/2.3/upgrades/nonrolling-upgrade-2.4.xml |  17 -
 .../HDP/2.3/upgrades/nonrolling-upgrade-2.5.xml |  17 -
 .../HDP/2.3/upgrades/nonrolling-upgrade-2.6.xml |  48 +-
 .../stacks/HDP/2.3/upgrades/upgrade-2.4.xml     |  15 -
 .../stacks/HDP/2.3/upgrades/upgrade-2.5.xml     |  14 -
 .../stacks/HDP/2.3/upgrades/upgrade-2.6.xml     |  19 +-
 .../stacks/HDP/2.4/upgrades/config-upgrade.xml  |  57 +-
 .../HDP/2.4/upgrades/nonrolling-upgrade-2.5.xml |  16 -
 .../HDP/2.4/upgrades/nonrolling-upgrade-2.6.xml |  48 +-
 .../stacks/HDP/2.4/upgrades/upgrade-2.5.xml     |  14 -
 .../stacks/HDP/2.4/upgrades/upgrade-2.6.xml     |  22 +-
 .../HIVE/configuration/hive-interactive-env.xml |   2 +-
 .../configuration/hive-interactive-site.xml     |   6 -
 .../stacks/HDP/2.5/services/stack_advisor.py    |   8 +
 .../stacks/HDP/2.5/upgrades/config-upgrade.xml  |  40 ++
 .../HDP/2.5/upgrades/nonrolling-upgrade-2.6.xml |  32 +-
 .../stacks/HDP/2.5/upgrades/upgrade-2.6.xml     |   8 +
 .../HIVE/configuration/hive-interactive-env.xml |   2 +-
 .../configuration/hive-interactive-site.xml     |   7 +
 .../HIVE/configuration/tez-interactive-site.xml |   6 +-
 .../src/main/resources/stacks/stack_advisor.py  |  14 +-
 .../DatabaseConsistencyCheckHelperTest.java     |  56 +-
 .../server/orm/dao/ServiceConfigDAOTest.java    | 324 +++++-----
 .../FinalizeKerberosServerActionTest.java       | 206 ++++++
 .../ambari/server/state/DesiredConfigTest.java  |   2 -
 .../server/state/cluster/ClusterTest.java       | 281 ++++-----
 .../server/state/cluster/ClustersTest.java      |   7 +-
 .../ambari/server/state/host/HostTest.java      |  10 +-
 .../upgrade/RepositoryVersionHelperTest.java    |   3 +-
 .../server/upgrade/UpgradeCatalog300Test.java   | 167 ++++-
 .../stacks/2.2/common/test_stack_advisor.py     |  20 +-
 .../stacks/2.4/LOGSEARCH/test_logfeeder.py      |   6 +
 .../stacks/2.4/LOGSEARCH/test_logsearch.py      |   6 +
 .../test/python/stacks/2.4/configs/default.json |   1 +
 .../stacks/2.5/common/test_stack_advisor.py     |  21 +-
 .../test/resources/stacks/old_stack_advisor.py  |  12 +-
 ambari-web/app/assets/data/clusters/info.json   |  11 +
 ambari-web/app/assets/img/ambari-logo.png       | Bin 0 -> 2779 bytes
 ambari-web/app/assets/img/logo-white.png        | Bin 4538 -> 0 bytes
 ambari-web/app/config.js                        |   6 +-
 .../main/admin/kerberos/step1_controller.js     |   2 +-
 .../main/admin/kerberos/step2_controller.js     |  10 +-
 .../main/admin/kerberos/step4_controller.js     |   2 +
 .../main/admin/kerberos/step5_controller.js     |   4 +
 .../main/admin/stack_and_upgrade_controller.js  |   1 -
 .../main/alert_definitions_controller.js        |  14 +-
 .../main/alerts/alert_instances_controller.js   | 151 -----
 .../controllers/main/service/info/summary.js    |  12 +-
 .../wizard/step7/assign_master_controller.js    |  13 +-
 .../app/controllers/wizard/step9_controller.js  |   7 +-
 ambari-web/app/messages.js                      |   6 +
 .../wizard/wizardProgressPageController.js      |   2 +
 ambari-web/app/routes/add_kerberos_routes.js    |  50 +-
 ambari-web/app/routes/main.js                   |   8 +-
 ambari-web/app/styles/application.less          |  14 +-
 ambari-web/app/styles/common.less               |  13 +-
 .../app/styles/enhanced_service_dashboard.less  |   1 -
 ambari-web/app/styles/modal_popups.less         |  11 +-
 ambari-web/app/styles/stack_versions.less       |   2 +-
 .../app/styles/theme/bootstrap-ambari.css       | 619 ++++++++++++++++++-
 ambari-web/app/styles/top-nav.less              | 204 ++----
 ambari-web/app/styles/wizard.less               |  14 +-
 ambari-web/app/templates/application.hbs        | 226 ++++---
 .../common/assign_master_components.hbs         |  33 +-
 .../app/templates/common/button_progress.hbs    |  29 +
 .../configs/propertyDependence_footer.hbs       |  25 -
 ambari-web/app/templates/common/modal_popup.hbs |  26 +-
 ambari-web/app/templates/common/progress.hbs    |  18 +-
 .../app/templates/main/admin/kerberos/step1.hbs |   2 +-
 .../app/templates/main/admin/kerberos/step2.hbs |   5 +-
 .../app/templates/main/admin/kerberos/step3.hbs |   4 +-
 .../app/templates/main/admin/kerberos/step4.hbs |   5 +-
 .../app/templates/main/admin/kerberos/step5.hbs |  13 +-
 .../main/alerts/alert_notifications_popup.hbs   |  69 +++
 ambari-web/app/templates/main/dashboard.hbs     |  26 +-
 ambari-web/app/templates/main/menu.hbs          |  23 -
 ambari-web/app/templates/main/menu_item.hbs     |  50 --
 ambari-web/app/templates/main/service.hbs       |   6 +-
 .../main/service/all_services_actions.hbs       | 100 ++-
 .../main/service/info/save_popup_footer.hbs     |  13 +-
 .../app/templates/main/service/menu_item.hbs    |   4 +-
 .../app/templates/main/side-menu-item.hbs       |  53 ++
 .../step3/step3_host_warning_popup_footer.hbs   |  14 +-
 ambari-web/app/utils/date/date.js               |  26 +-
 ambari-web/app/utils/ember_reopen.js            |   4 +
 ambari-web/app/views.js                         |   3 +
 ambari-web/app/views/application.js             | 125 +++-
 .../common/assign_master_components_view.js     |   6 +-
 .../common/buttons/button_progress_view.js      |  77 +++
 .../app/views/common/buttons/wizard_buttons.js  |  36 ++
 .../configs/service_configs_by_category_view.js |  15 +-
 .../views/main/admin/kerberos/disable_view.js   |   2 +-
 .../main/alerts/alert_instances_popup_view.js   | 190 ++++++
 .../dashboard/widgets/uptime_text_widget.js     |   9 +-
 ambari-web/app/views/main/menu.js               | 179 ++++--
 .../views/main/service/all_services_actions.js  |   2 +
 ambari-web/app/views/main/service/menu.js       | 104 +---
 .../app/views/main/service/services/yarn.js     |   1 +
 .../views/wizard/step7/assign_master_view.js    |   6 +-
 ambari-web/brunch-config.js                     |   3 +-
 .../admin/kerberos/step1_controller_test.js     |   6 +-
 .../admin/kerberos/step2_controller_test.js     |   2 +-
 .../alerts/alert_instances_controller_test.js   |  33 -
 ambari-web/test/init_test.js                    |  42 ++
 ambari-web/test/mappers/service_mapper_test.js  |   2 +-
 ambari-web/test/utils/date/date_test.js         |  30 +-
 .../stack_upgrade/upgrade_history_view_test.js  |   8 +-
 .../widgets/hbase_master_uptime_test.js         |   4 +-
 .../dashboard/widgets/namenode_uptime_test.js   |   4 +-
 .../widgets/resource_manager_uptime_test.js     |   4 +-
 .../widgets/uptime_text_widget_test.js          |   4 +-
 ambari-web/test/views/main/menu_test.js         |   2 +-
 .../vendor/scripts/theme/bootstrap-ambari.js    | 204 ++++++
 .../stacks/HDF/2.0/services/stack_advisor.py    |   2 +-
 .../ambari/view/commons/hdfs/UploadService.java |   2 +-
 .../resources/ui/app/adapters/application.js    |   6 +
 .../resources/ui/app/components/upload-file.js  |  19 +-
 .../ambari/view/hive20/ConnectionSystem.java    |  27 -
 .../hive20/actor/DatabaseChangeNotifier.java    | 168 -----
 .../view/hive20/actor/DatabaseManager.java      | 313 ----------
 .../ambari/view/hive20/actor/JdbcConnector.java |   5 +-
 .../ambari/view/hive20/actor/LogAggregator.java |   4 +-
 .../view/hive20/actor/MetaDataManager.java      | 137 ----
 .../view/hive20/actor/MetaDataRetriever.java    | 173 ------
 .../view/hive20/actor/TableChangeNotifier.java  |  95 ---
 .../ambari/view/hive20/actor/message/Ping.java  |  50 --
 .../ambari/view/hive20/client/DDLDelegator.java |   7 +-
 .../view/hive20/client/DDLDelegatorImpl.java    |  52 +-
 .../view/hive20/internal/dto/TableInfo.java     |  12 +-
 .../view/hive20/internal/dto/TableResponse.java |   9 -
 .../view/hive20/resources/browser/DDLProxy.java |  67 +-
 .../resources/browser/HiveBrowserService.java   | 259 --------
 .../hive20/resources/system/SystemService.java  |  28 +-
 .../utils/MetaDataManagerEventSubmitter.java    |  43 --
 .../src/main/resources/ui/app/adapters/ping.js  |  35 --
 .../main/resources/ui/app/adapters/ranger.js    |  27 +
 .../resources/ui/app/components/list-filter.js  |   5 +-
 .../ui/app/components/table-statistics.js       |   5 +-
 .../ui/app/components/visual-explain.js         |   2 +
 .../resources/ui/app/configs/result-tabs.js     |   6 +-
 .../src/main/resources/ui/app/models/table.js   |   9 +-
 .../main/resources/ui/app/models/worksheet.js   |   3 +-
 .../main/resources/ui/app/routes/application.js |   5 -
 .../routes/databases/database/tables/table.js   |   2 +
 .../databases/database/tables/table/auth.js     |   2 +-
 .../databases/database/tables/table/edit.js     |   2 +-
 .../main/resources/ui/app/routes/queries/new.js |   1 -
 .../resources/ui/app/routes/queries/query.js    | 126 +++-
 .../resources/ui/app/routes/savedqueries.js     |   3 -
 .../resources/ui/app/serializers/database.js    |  25 +
 .../main/resources/ui/app/serializers/table.js  |  22 +
 .../src/main/resources/ui/app/services/jobs.js  |   5 +
 .../resources/ui/app/services/keep-alive.js     |  31 -
 .../resources/ui/app/services/tez-view-info.js  |  83 +++
 .../src/main/resources/ui/app/styles/app.scss   |   9 +
 .../app/templates/components/visual-explain.hbs |   2 +-
 .../ui/app/templates/queries/query.hbs          |  17 +-
 .../ui/app/templates/queries/query/tez-ui.hbs   |   6 +-
 .../resources/ui/app/templates/savedqueries.hbs |   1 -
 .../app/utils/hive-explainer/renderer-force.js  |   2 +-
 .../ui/app/utils/hive-explainer/renderer.js     |   4 +-
 .../views/hive20/src/main/resources/view.xml    |   5 -
 .../apache/oozie/ambari/view/OozieDelegate.java |  12 +-
 .../ambari/view/OozieProxyImpersonator.java     | 381 +++++-------
 .../oozie/ambari/view/assets/AssetResource.java |  93 +--
 .../oozie/ambari/view/exception/ErrorCode.java  |  58 ++
 .../ambari/view/exception/WfmException.java     |  46 ++
 .../ambari/view/exception/WfmWebException.java  | 115 ++++
 .../WorkflowsManagerResource.java               |  36 +-
 .../ui/app/components/bundle-config.js          |   8 +-
 .../resources/ui/app/components/coord-config.js |   6 +-
 .../ui/app/components/designer-errors.js        |  49 ++
 .../ui/app/components/flow-designer.js          | 108 ++--
 .../main/resources/ui/app/components/save-wf.js |   2 +-
 .../ui/app/components/stack-trace-dialog.js     |  26 +
 .../ui/app/components/workflow-action-editor.js |  40 +-
 .../ui/app/domain/cytoscape-flow-renderer.js    |   2 +-
 .../resources/ui/app/domain/cytoscape-style.js  |   8 +
 .../main/resources/ui/app/domain/workflow.js    |   9 +-
 .../src/main/resources/ui/app/styles/app.less   |  18 +-
 .../app/templates/components/bundle-config.hbs  |   4 +-
 .../app/templates/components/coord-config.hbs   |   2 +-
 .../templates/components/designer-errors.hbs    |  17 +
 .../app/templates/components/flow-designer.hbs  |  20 +-
 .../ui/app/templates/components/save-wf.hbs     |   4 +-
 .../templates/components/stack-trace-dialog.hbs |  33 +
 .../components/workflow-action-editor.hbs       |   5 +-
 .../components/stack-trace-dialog-test.js       |  40 ++
 255 files changed, 5951 insertions(+), 4532 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/353a076c/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ambari/blob/353a076c/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java
----------------------------------------------------------------------
diff --cc ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java
index 483362b,d9b9b57..d527290
--- a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog300.java
@@@ -106,8 -110,8 +113,9 @@@ public class UpgradeCatalog300 extends 
     */
    @Override
    protected void executeDDLUpdates() throws AmbariException, SQLException {
 +    addServiceComponentColumn();
      updateStageTable();
+     updateClusterConfigurationTable();
    }
  
    protected void updateStageTable() throws SQLException {

http://git-wip-us.apache.org/repos/asf/ambari/blob/353a076c/ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ambari/blob/353a076c/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ambari/blob/353a076c/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ambari/blob/353a076c/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ambari/blob/353a076c/ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ambari/blob/353a076c/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/ambari/blob/353a076c/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog300Test.java
----------------------------------------------------------------------
diff --cc ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog300Test.java
index 3c933d9,a44c2b3..e0d07b4
--- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog300Test.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog300Test.java
@@@ -53,25 -122,86 +121,96 @@@ public class UpgradeCatalog300Test 
  
    @Test
    public void testExecuteDDLUpdates() throws Exception {
+     Module module = new Module() {
+       @Override
+       public void configure(Binder binder) {
+         binder.bind(DBAccessor.class).toInstance(dbAccessor);
+         binder.bind(OsFamily.class).toInstance(osFamily);
+         binder.bind(EntityManager.class).toInstance(entityManager);
+         binder.bind(Configuration.class).toInstance(configuration);
+       }
+     };
+ 
+     Capture<DBAccessor.DBColumnInfo> clusterConfigSelectedColumn = newCapture();
+     Capture<DBAccessor.DBColumnInfo> clusterConfigSelectedTimestampColumn = newCapture();
+     dbAccessor.addColumn(eq(UpgradeCatalog300.CLUSTER_CONFIG_TABLE), capture(clusterConfigSelectedColumn));
+     dbAccessor.addColumn(eq(UpgradeCatalog300.CLUSTER_CONFIG_TABLE), capture(clusterConfigSelectedTimestampColumn));
+ 
++    // component table
++    Capture<DBAccessor.DBColumnInfo> componentStateColumn = newCapture();
++    dbAccessor.addColumn(eq(UpgradeCatalog250.COMPONENT_TABLE), capture(componentStateColumn));
++
+     replay(dbAccessor, configuration);
+ 
+     Injector injector = Guice.createInjector(module);
+     UpgradeCatalog300 upgradeCatalog300 = injector.getInstance(UpgradeCatalog300.class);
+     upgradeCatalog300.executeDDLUpdates();
  
-     Method updateStageTable = UpgradeCatalog300.class.getDeclaredMethod("updateStageTable");
-     Method addServiceComponentColumn = UpgradeCatalog300.class
-         .getDeclaredMethod("addServiceComponentColumn");
+     DBAccessor.DBColumnInfo capturedSelectedColumn = clusterConfigSelectedColumn.getValue();
+     Assert.assertNotNull(capturedSelectedColumn);
+     Assert.assertEquals(UpgradeCatalog300.CLUSTER_CONFIG_SELECTED_COLUMN, capturedSelectedColumn.getName());
+     Assert.assertEquals(Short.class, capturedSelectedColumn.getType());
  
-     UpgradeCatalog300 upgradeCatalog300 = createMockBuilder(UpgradeCatalog300.class)
-         .addMockedMethod(addServiceComponentColumn)
-         .addMockedMethod(updateStageTable)
-         .createMock();
+     DBAccessor.DBColumnInfo capturedSelectedTimestampColumn = clusterConfigSelectedTimestampColumn.getValue();
+     Assert.assertNotNull(capturedSelectedTimestampColumn);
+     Assert.assertEquals(UpgradeCatalog300.CLUSTER_CONFIG_SELECTED_TIMESTAMP_COLUMN, capturedSelectedTimestampColumn.getName());
+     Assert.assertEquals(Long.class, capturedSelectedTimestampColumn.getType());
  
-     upgradeCatalog300.addServiceComponentColumn();
++    // component table
++    DBAccessor.DBColumnInfo capturedStateColumn = componentStateColumn.getValue();
++    Assert.assertNotNull(componentStateColumn);
++    Assert.assertEquals("repo_state", capturedStateColumn.getName());
++    Assert.assertEquals(String.class, capturedStateColumn.getType());
 +
-     upgradeCatalog300.updateStageTable();
+     verify(dbAccessor);
+   }
  
-     replay(upgradeCatalog300);
+   /**
+    * Tests pre-DML executions.
+    *
+    * @throws Exception
+    */
+   @Test
+   public void testExecutePreDMLUpdates() throws Exception {
+     Module module = new Module() {
+       @Override
+       public void configure(Binder binder) {
+         binder.bind(DBAccessor.class).toInstance(dbAccessor);
+         binder.bind(OsFamily.class).toInstance(osFamily);
+         binder.bind(EntityManager.class).toInstance(entityManager);
+         binder.bind(Configuration.class).toInstance(configuration);
+       }
+     };
  
-     upgradeCatalog300.executeDDLUpdates();
+     EntityManagerFactory emFactory = EasyMock.createNiceMock(EntityManagerFactory.class);
+     Cache emCache = EasyMock.createNiceMock(Cache.class);
  
-     verify(upgradeCatalog300);
-   }
+     expect(entityManager.getEntityManagerFactory()).andReturn(emFactory).atLeastOnce();
+     expect(emFactory.getCache()).andReturn(emCache).atLeastOnce();
+ 
+     EntityTransaction mockTransaction = EasyMock.createNiceMock(EntityTransaction.class);
+     Connection mockConnection = EasyMock.createNiceMock(Connection.class);
+     Statement mockStatement = EasyMock.createNiceMock(Statement.class);
  
+     expect(dbAccessor.getConnection()).andReturn(mockConnection).once();
+     expect(mockConnection.createStatement()).andReturn(mockStatement).once();
+ 
+     expect(mockStatement.executeQuery(EasyMock.anyString())).andReturn(
+         EasyMock.createNiceMock(ResultSet.class));
+ 
+     expect(entityManager.getTransaction()).andReturn(
+         mockTransaction).atLeastOnce();
+ 
+     dbAccessor.dropTable(UpgradeCatalog300.CLUSTER_CONFIG_MAPPING_TABLE);
+     EasyMock.expectLastCall().once();
+ 
+     replay(dbAccessor, entityManager, emFactory, emCache, mockConnection, mockTransaction,
+         mockStatement, configuration);
+ 
+     Injector injector = Guice.createInjector(module);
+     UpgradeCatalog300 upgradeCatalog300 = injector.getInstance(UpgradeCatalog300.class);
+     upgradeCatalog300.executePreDMLUpdates();
+ 
+     verify(dbAccessor, entityManager, emFactory, emCache);
+   }
  }