-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/42085/
-----------------------------------------------------------
(Updated Jan. 8, 2016, 8:52 p.m.)
Review request for Ambari, Mahadev Konar and Sumit Mohanty.
Changes
-------
Updated patch to remove extraneous file changes not required to implement
AMBARI-14555.
Bugs: AMBARI-14555
https://issues.apache.org/jira/browse/AMBARI-14555
Repository: ambari
Description
-------
This patch implements the new Blueprint support described in AMBARI-14555.
Blueprints will now support syntax to allow users to mark certain components in
a Blueprint host group as "INSTALL_ONLY", meaning that Ambari will install
them, but that these components will not be started initially.
This patch implements the following:
1. Adds a new column to the "hostgroup_component" table in the Ambari DB,
"provision_action", to store the provisioning state desired for a component.
2. Moves the ProvisionAction enumerated type to a top-level class, in order to
share this across the entire Blueprints implementation.
3. Adds code to the UpgradeCatalog implementation for Ambari 2.2.1, in order to
add the new column to older databases during an upgrade, and adds a unit test
for this as well.
4. Refactors the HostGroup interface and implementation, in order to support
more configuration data being attached to a given host group component.
5. Updates various sections of the code that use the HostGroup interface, to
accomodate these changes.
6. Adds handling code to store and read this new Blueprint syntax during the
POST/GET calls on the BlueprintResourceProvider.
7. Modifies the HostComponentResourceProvider's start() method, such that a set
of components that are marked as "INSTALL_ONLY" can be passed in. Modifies the
start() implementation to use a new set of predicates to filter out any
components that should not be started prior to the start() operation being
executed on the host.
8. Updates various unit tests to accomodate interface and implementation
changes.
Diffs (updated)
-----
ambari-server/src/main/java/org/apache/ambari/server/api/query/render/ClusterBlueprintRenderer.java
3705ceb
ambari-server/src/main/java/org/apache/ambari/server/api/services/stackadvisor/StackAdvisorBlueprintProcessor.java
d57c17d
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/BlueprintResourceProvider.java
f3100b5
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExportBlueprintRequest.java
8c8b89d
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java
194d75f
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ProvisionAction.java
PRE-CREATION
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ProvisionClusterRequest.java
7b1de26
ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostGroupComponentEntity.java
984c549
ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostGroupComponentEntityPK.java
fb9011b
ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java
6bfee93
ambari-server/src/main/java/org/apache/ambari/server/topology/BlueprintFactory.java
b8ce749
ambari-server/src/main/java/org/apache/ambari/server/topology/BlueprintImpl.java
88052b0
ambari-server/src/main/java/org/apache/ambari/server/topology/BlueprintValidatorImpl.java
1c293ee
ambari-server/src/main/java/org/apache/ambari/server/topology/ClusterTopology.java
c3c04db
ambari-server/src/main/java/org/apache/ambari/server/topology/ClusterTopologyImpl.java
e78300c
ambari-server/src/main/java/org/apache/ambari/server/topology/Component.java
PRE-CREATION
ambari-server/src/main/java/org/apache/ambari/server/topology/HostGroup.java
07e3e88
ambari-server/src/main/java/org/apache/ambari/server/topology/HostGroupImpl.java
b89e7e4
ambari-server/src/main/java/org/apache/ambari/server/topology/HostRequest.java
440638c
ambari-server/src/main/java/org/apache/ambari/server/topology/LogicalRequest.java
bd9f2e0
ambari-server/src/main/java/org/apache/ambari/server/topology/RequiredPasswordValidator.java
e26de3f
ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog221.java
5cde24b
ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql d93a3c2
ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql aa8ced1
ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql b534344
ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 941fc6e
ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
dd517f8
ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql f837f9e
ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql 239d27e
ambari-server/src/test/java/org/apache/ambari/server/api/query/render/ClusterBlueprintRendererTest.java
522d902
ambari-server/src/test/java/org/apache/ambari/server/api/services/stackadvisor/StackAdvisorBlueprintProcessorTest.java
514e6ab
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/BlueprintConfigurationProcessorTest.java
0384b45
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ExportBlueprintRequestTest.java
94ba90f
ambari-server/src/test/java/org/apache/ambari/server/orm/entities/HostGroupComponentEntityTest.java
c0efd0d
ambari-server/src/test/java/org/apache/ambari/server/topology/BlueprintFactoryTest.java
3a3b6dc
ambari-server/src/test/java/org/apache/ambari/server/topology/BlueprintImplTest.java
3addfc4
ambari-server/src/test/java/org/apache/ambari/server/topology/BlueprintValidatorImplTest.java
304cded
ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterInstallWithoutStartTest.java
1354a72
ambari-server/src/test/java/org/apache/ambari/server/topology/ClusterTopologyImplTest.java
08aa3d3
ambari-server/src/test/java/org/apache/ambari/server/topology/RequiredPasswordValidatorTest.java
f4ded70
ambari-server/src/test/java/org/apache/ambari/server/topology/TopologyManagerTest.java
47169f4
ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog221Test.java
319024b
Diff: https://reviews.apache.org/r/42085/diff/
Testing
-------
1. Tested a 3-node HDFS HA cluster using a Blueprint with the original syntax
(no new additions), and this deployment succeeded.
2. Tested a 3-node HDFS HA cluster with certain components marked as
"INSTALL_ONLY" with the new syntax. Verified that the cluster deployed
properly, and that the marked components were installed, but were not started
by the Blueprints deployment.
3. Ran "mvn clean test" in the ambari-server project:
"Tests in error:
UpgradeCatalog221Test.testExecuteDMLUpdates:158 ยป NullPointer
Tests run: 3741, Failures: 0, Errors: 1, Skipped: 29"
The one failure seen also occurs in trunk without any patches applied, so this
current patch does not introduce any new failures.
Thanks,
Robert Nettleton