You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@ambari.apache.org by Swapan Shridhar <ss...@hortonworks.com> on 2017/08/28 09:08:33 UTC

Review Request 61917: AMBARI-21824. MultiEverything : Make services as sub-resource of ServiceGroups and use Servicegroup while doing Creation, Update and retrieval of HostComponents and ServiceComponents.

-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61917/
-----------------------------------------------------------

Review request for Ambari, Jayush Luniya and Madhuvanthi Radhakrishnan.


Bugs: AMBARI-21824
    https://issues.apache.org/jira/browse/AMBARI-21824


Repository: ambari


Description
-------

ServiceGroup was a new sub-resource added for cluster in AMBARI-21594.

This change involves :
- moving **Services** which was earlier a sub-resource of **Cluster** under **ServiceGroup** now, and
- using **Servicegroup** while doing Creation, Update and retrieval of **HostComponents** and **ServiceComponents**.

The new API calls will be the following:


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
**Service:**

http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services
http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>

**ServiceComponent:**

http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>/components/
http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>/components/ZOOKEEPER_SERVER

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

**HostComponent:** (API remains same, but has notion of servicegroup in Ambari backend)

http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/
http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/<HostComponentName>


- The change also includes UI changes as well, which create a **default ServiceGroup named 'core'**, and all services created goes under it.


Diffs
-----

  ambari-server/src/main/java/org/apache/ambari/server/ServiceComponentNotFoundException.java 8f25cb1 
  ambari-server/src/main/java/org/apache/ambari/server/ServiceNotFoundException.java 6b18c09 
  ambari-server/src/main/java/org/apache/ambari/server/StateRecoveryManager.java 03990a2 
  ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java d83a5d1 
  ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java 2690008 
  ambari-server/src/main/java/org/apache/ambari/server/agent/StatusCommand.java e8c0b05 
  ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java 24c2810 
  ambari-server/src/main/java/org/apache/ambari/server/api/resources/ComponentResourceDefinition.java 2a98a9c 
  ambari-server/src/main/java/org/apache/ambari/server/api/resources/ServiceGroupResourceDefinition.java f686851 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java 80bd58d 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java c38489d 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java b489a15 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceGroupService.java aa1270a 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceService.java 6ab2704 
  ambari-server/src/main/java/org/apache/ambari/server/checks/ComponentsInstallationCheck.java 988fc78 
  ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java b440c93 
  ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java 543df26 
  ambari-server/src/main/java/org/apache/ambari/server/checks/ServicesUpCheck.java 6b03249 
  ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java 663d857 
  ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java ca84826 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterResponse.java 3f75971 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java e09f433 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostRequest.java 94b5985 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostResponse.java 7b75e06 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentRequest.java 3a65ff8 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentResponse.java 9bd3e44 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java 3b3c940 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceResponse.java ed1832a 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java 166fc5f 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java 2df3b00 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java aaf4656 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java 01e0aac 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java f94b979 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java 89f75f3 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/DatabaseChecker.java 95352bf 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/DefaultServiceCalculatedState.java 5e02a64 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/FlumeServiceCalculatedState.java ca4fe6e 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HBaseServiceCalculatedState.java eac0dce 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HDFSServiceCalculatedState.java 7bbad2a 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HiveServiceCalculatedState.java 77e44a5 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/OozieServiceCalculatedState.java 1803f70 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/YARNServiceCalculatedState.java 2f1619f 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentInstalledEvent.java 0ba4ac2 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentUninstalledEvent.java 8acc401 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceEvent.java 08f739e 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceInstalledEvent.java 1f341d9 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceRemovedEvent.java de96342 
  ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListener.java 2eb89a2 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterServiceDAO.java 09419ec 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentDesiredStateDAO.java 57e409c 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentStateDAO.java ad6867e 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentDesiredStateDAO.java dfe7d7b 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceGroupDAO.java dc997b0 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java 2af9a47 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntityPK.java 578edea 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java 36a7a25 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentStateEntity.java 0d295a4 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java e0f52c6 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentVersionEntity.java ffb3b82 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntity.java fc26478 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntityPK.java 3fa5289 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceGroupEntity.java cd9d2c8 
  ambari-server/src/main/java/org/apache/ambari/server/orm/models/HostComponentSummary.java f5b12b5 
  ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java ce4c961 
  ambari-server/src/main/java/org/apache/ambari/server/state/Service.java 65189ca 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponent.java 9fb2aba 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentHost.java 5ff9e37 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java 5f85e38 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceFactory.java a4c953f 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java 0247774 
  ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java 1494488 
  ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java 605cb7a 
  ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java 3ceaa48 
  ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java 45d8e8e 
  ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java 230b031 
  ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostSummary.java e9359ef 
  ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java 662f9aa 
  ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql b1a13d3 
  ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql 2beee0f 
  ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 190eb8b 
  ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 0f6b075 
  ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 668d1e7 
  ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql d7afe73 
  ambari-server/src/main/resources/key_properties.json 5d76062 
  ambari-server/src/main/resources/properties.json 11ca7f6 
  ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalogHelper.java 58d4c3e 
  ambari-web/app/app.js 2c638e4 
  ambari-web/app/controllers/global/update_controller.js 8a3f984 
  ambari-web/app/controllers/main/admin/kerberos/step3_controller.js 15be4f9 
  ambari-web/app/controllers/main/service/add_controller.js c11bcf2 
  ambari-web/app/controllers/wizard/step8_controller.js cc06b5b 
  ambari-web/app/controllers/wizard/step9_controller.js 9f27f65 
  ambari-web/app/mappers/service_mapper.js 3523379 
  ambari-web/app/mappers/service_metrics_mapper.js 87b6149 
  ambari-web/app/mixins/common/configs/configs_saver.js dafee79 
  ambari-web/app/mixins/wizard/wizardProgressPageController.js 9d9d000 
  ambari-web/app/utils/ajax/ajax.js 4a1f9ef 


Diff: https://reviews.apache.org/r/61917/diff/1/


Testing
-------

Manually tested by deplyoying cluster via UI.


Thanks,

Swapan Shridhar


Re: Review Request 61917: AMBARI-21824. MultiEverything : Make services as sub-resource of ServiceGroups and use Servicegroup while doing Creation, Update and retrieval of HostComponents and ServiceComponents.

Posted by Jayush Luniya <jl...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61917/#review184047
-----------------------------------------------------------


Ship it!




Ship It!

- Jayush Luniya


On Aug. 28, 2017, 9:08 a.m., Swapan Shridhar wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/61917/
> -----------------------------------------------------------
> 
> (Updated Aug. 28, 2017, 9:08 a.m.)
> 
> 
> Review request for Ambari, Jayush Luniya and Madhuvanthi Radhakrishnan.
> 
> 
> Bugs: AMBARI-21824
>     https://issues.apache.org/jira/browse/AMBARI-21824
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> ServiceGroup was a new sub-resource added for cluster in AMBARI-21594.
> 
> This change involves :
> - moving **Services** which was earlier a sub-resource of **Cluster** under **ServiceGroup** now, and
> - using **Servicegroup** while doing Creation, Update and retrieval of **HostComponents** and **ServiceComponents**.
> 
> The new API calls will be the following:
> 
> 
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> **Service:**
> 
> http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services
> http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>
> 
> **ServiceComponent:**
> 
> http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>/components/
> http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>/components/ZOOKEEPER_SERVER
> 
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> 
> **HostComponent:** (API remains same, but has notion of servicegroup in Ambari backend)
> 
> http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/
> http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/<HostComponentName>
> 
> 
> - The change also includes UI changes as well, which create a **default ServiceGroup named 'core'**, and all services created goes under it.
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/java/org/apache/ambari/server/ServiceComponentNotFoundException.java 8f25cb1 
>   ambari-server/src/main/java/org/apache/ambari/server/ServiceNotFoundException.java 6b18c09 
>   ambari-server/src/main/java/org/apache/ambari/server/StateRecoveryManager.java 03990a2 
>   ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java d83a5d1 
>   ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java 2690008 
>   ambari-server/src/main/java/org/apache/ambari/server/agent/StatusCommand.java e8c0b05 
>   ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java 24c2810 
>   ambari-server/src/main/java/org/apache/ambari/server/api/resources/ComponentResourceDefinition.java 2a98a9c 
>   ambari-server/src/main/java/org/apache/ambari/server/api/resources/ServiceGroupResourceDefinition.java f686851 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java 80bd58d 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java c38489d 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java b489a15 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceGroupService.java aa1270a 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceService.java 6ab2704 
>   ambari-server/src/main/java/org/apache/ambari/server/checks/ComponentsInstallationCheck.java 988fc78 
>   ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java b440c93 
>   ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java 543df26 
>   ambari-server/src/main/java/org/apache/ambari/server/checks/ServicesUpCheck.java 6b03249 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java 663d857 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java ca84826 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterResponse.java 3f75971 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java e09f433 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostRequest.java 94b5985 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostResponse.java 7b75e06 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentRequest.java 3a65ff8 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentResponse.java 9bd3e44 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java 3b3c940 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceResponse.java ed1832a 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java 166fc5f 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java 2df3b00 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java aaf4656 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java 01e0aac 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java f94b979 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java 89f75f3 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/DatabaseChecker.java 95352bf 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/DefaultServiceCalculatedState.java 5e02a64 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/FlumeServiceCalculatedState.java ca4fe6e 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HBaseServiceCalculatedState.java eac0dce 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HDFSServiceCalculatedState.java 7bbad2a 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HiveServiceCalculatedState.java 77e44a5 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/OozieServiceCalculatedState.java 1803f70 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/YARNServiceCalculatedState.java 2f1619f 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentInstalledEvent.java 0ba4ac2 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentUninstalledEvent.java 8acc401 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceEvent.java 08f739e 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceInstalledEvent.java 1f341d9 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceRemovedEvent.java de96342 
>   ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListener.java 2eb89a2 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterServiceDAO.java 09419ec 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentDesiredStateDAO.java 57e409c 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentStateDAO.java ad6867e 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentDesiredStateDAO.java dfe7d7b 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceGroupDAO.java dc997b0 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java 2af9a47 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntityPK.java 578edea 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java 36a7a25 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentStateEntity.java 0d295a4 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java e0f52c6 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentVersionEntity.java ffb3b82 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntity.java fc26478 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntityPK.java 3fa5289 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceGroupEntity.java cd9d2c8 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/models/HostComponentSummary.java f5b12b5 
>   ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java ce4c961 
>   ambari-server/src/main/java/org/apache/ambari/server/state/Service.java 65189ca 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponent.java 9fb2aba 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentHost.java 5ff9e37 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java 5f85e38 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceFactory.java a4c953f 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java 0247774 
>   ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java 1494488 
>   ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java 605cb7a 
>   ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java 3ceaa48 
>   ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java 45d8e8e 
>   ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java 230b031 
>   ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostSummary.java e9359ef 
>   ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java 662f9aa 
>   ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql b1a13d3 
>   ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql 2beee0f 
>   ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 190eb8b 
>   ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 0f6b075 
>   ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 668d1e7 
>   ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql d7afe73 
>   ambari-server/src/main/resources/key_properties.json 5d76062 
>   ambari-server/src/main/resources/properties.json 11ca7f6 
>   ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalogHelper.java 58d4c3e 
>   ambari-web/app/app.js 2c638e4 
>   ambari-web/app/controllers/global/update_controller.js 8a3f984 
>   ambari-web/app/controllers/main/admin/kerberos/step3_controller.js 15be4f9 
>   ambari-web/app/controllers/main/service/add_controller.js c11bcf2 
>   ambari-web/app/controllers/wizard/step8_controller.js cc06b5b 
>   ambari-web/app/controllers/wizard/step9_controller.js 9f27f65 
>   ambari-web/app/mappers/service_mapper.js 3523379 
>   ambari-web/app/mappers/service_metrics_mapper.js 87b6149 
>   ambari-web/app/mixins/common/configs/configs_saver.js dafee79 
>   ambari-web/app/mixins/wizard/wizardProgressPageController.js 9d9d000 
>   ambari-web/app/utils/ajax/ajax.js 4a1f9ef 
> 
> 
> Diff: https://reviews.apache.org/r/61917/diff/1/
> 
> 
> Testing
> -------
> 
> Manually tested by deplyoying cluster via UI.
> 
> 
> Thanks,
> 
> Swapan Shridhar
> 
>


Re: Review Request 61917: AMBARI-21824. MultiEverything : Make services as sub-resource of ServiceGroups and use Servicegroup while doing Creation, Update and retrieval of HostComponents and ServiceComponents.

Posted by Jayush Luniya <jl...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61917/#review184003
-----------------------------------------------------------




ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
Line 3555 (original), 3559 (patched)
<https://reviews.apache.org/r/61917/#comment260026>

    Rename to findService?


- Jayush Luniya


On Aug. 28, 2017, 9:08 a.m., Swapan Shridhar wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/61917/
> -----------------------------------------------------------
> 
> (Updated Aug. 28, 2017, 9:08 a.m.)
> 
> 
> Review request for Ambari, Jayush Luniya and Madhuvanthi Radhakrishnan.
> 
> 
> Bugs: AMBARI-21824
>     https://issues.apache.org/jira/browse/AMBARI-21824
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> ServiceGroup was a new sub-resource added for cluster in AMBARI-21594.
> 
> This change involves :
> - moving **Services** which was earlier a sub-resource of **Cluster** under **ServiceGroup** now, and
> - using **Servicegroup** while doing Creation, Update and retrieval of **HostComponents** and **ServiceComponents**.
> 
> The new API calls will be the following:
> 
> 
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> **Service:**
> 
> http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services
> http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>
> 
> **ServiceComponent:**
> 
> http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>/components/
> http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>/components/ZOOKEEPER_SERVER
> 
> ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
> 
> **HostComponent:** (API remains same, but has notion of servicegroup in Ambari backend)
> 
> http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/
> http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/<HostComponentName>
> 
> 
> - The change also includes UI changes as well, which create a **default ServiceGroup named 'core'**, and all services created goes under it.
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/java/org/apache/ambari/server/ServiceComponentNotFoundException.java 8f25cb1 
>   ambari-server/src/main/java/org/apache/ambari/server/ServiceNotFoundException.java 6b18c09 
>   ambari-server/src/main/java/org/apache/ambari/server/StateRecoveryManager.java 03990a2 
>   ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java d83a5d1 
>   ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java 2690008 
>   ambari-server/src/main/java/org/apache/ambari/server/agent/StatusCommand.java e8c0b05 
>   ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java 24c2810 
>   ambari-server/src/main/java/org/apache/ambari/server/api/resources/ComponentResourceDefinition.java 2a98a9c 
>   ambari-server/src/main/java/org/apache/ambari/server/api/resources/ServiceGroupResourceDefinition.java f686851 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java 80bd58d 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java c38489d 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java b489a15 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceGroupService.java aa1270a 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceService.java 6ab2704 
>   ambari-server/src/main/java/org/apache/ambari/server/checks/ComponentsInstallationCheck.java 988fc78 
>   ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java b440c93 
>   ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java 543df26 
>   ambari-server/src/main/java/org/apache/ambari/server/checks/ServicesUpCheck.java 6b03249 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java 663d857 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java ca84826 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterResponse.java 3f75971 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java e09f433 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostRequest.java 94b5985 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostResponse.java 7b75e06 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentRequest.java 3a65ff8 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentResponse.java 9bd3e44 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java 3b3c940 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceResponse.java ed1832a 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java 166fc5f 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java 2df3b00 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java aaf4656 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java 01e0aac 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java f94b979 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java 89f75f3 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/DatabaseChecker.java 95352bf 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/DefaultServiceCalculatedState.java 5e02a64 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/FlumeServiceCalculatedState.java ca4fe6e 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HBaseServiceCalculatedState.java eac0dce 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HDFSServiceCalculatedState.java 7bbad2a 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HiveServiceCalculatedState.java 77e44a5 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/OozieServiceCalculatedState.java 1803f70 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/YARNServiceCalculatedState.java 2f1619f 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentInstalledEvent.java 0ba4ac2 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentUninstalledEvent.java 8acc401 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceEvent.java 08f739e 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceInstalledEvent.java 1f341d9 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceRemovedEvent.java de96342 
>   ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListener.java 2eb89a2 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterServiceDAO.java 09419ec 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentDesiredStateDAO.java 57e409c 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentStateDAO.java ad6867e 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentDesiredStateDAO.java dfe7d7b 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceGroupDAO.java dc997b0 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java 2af9a47 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntityPK.java 578edea 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java 36a7a25 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentStateEntity.java 0d295a4 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java e0f52c6 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentVersionEntity.java ffb3b82 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntity.java fc26478 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntityPK.java 3fa5289 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceGroupEntity.java cd9d2c8 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/models/HostComponentSummary.java f5b12b5 
>   ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java ce4c961 
>   ambari-server/src/main/java/org/apache/ambari/server/state/Service.java 65189ca 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponent.java 9fb2aba 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentHost.java 5ff9e37 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java 5f85e38 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceFactory.java a4c953f 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java 0247774 
>   ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java 1494488 
>   ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java 605cb7a 
>   ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java 3ceaa48 
>   ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java 45d8e8e 
>   ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java 230b031 
>   ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostSummary.java e9359ef 
>   ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java 662f9aa 
>   ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql b1a13d3 
>   ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql 2beee0f 
>   ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 190eb8b 
>   ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 0f6b075 
>   ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 668d1e7 
>   ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql d7afe73 
>   ambari-server/src/main/resources/key_properties.json 5d76062 
>   ambari-server/src/main/resources/properties.json 11ca7f6 
>   ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalogHelper.java 58d4c3e 
>   ambari-web/app/app.js 2c638e4 
>   ambari-web/app/controllers/global/update_controller.js 8a3f984 
>   ambari-web/app/controllers/main/admin/kerberos/step3_controller.js 15be4f9 
>   ambari-web/app/controllers/main/service/add_controller.js c11bcf2 
>   ambari-web/app/controllers/wizard/step8_controller.js cc06b5b 
>   ambari-web/app/controllers/wizard/step9_controller.js 9f27f65 
>   ambari-web/app/mappers/service_mapper.js 3523379 
>   ambari-web/app/mappers/service_metrics_mapper.js 87b6149 
>   ambari-web/app/mixins/common/configs/configs_saver.js dafee79 
>   ambari-web/app/mixins/wizard/wizardProgressPageController.js 9d9d000 
>   ambari-web/app/utils/ajax/ajax.js 4a1f9ef 
> 
> 
> Diff: https://reviews.apache.org/r/61917/diff/1/
> 
> 
> Testing
> -------
> 
> Manually tested by deplyoying cluster via UI.
> 
> 
> Thanks,
> 
> Swapan Shridhar
> 
>


Re: Review Request 61917: AMBARI-21824. MultiEverything : Make services as sub-resource of ServiceGroups and use Servicegroup while doing Creation, Update and retrieval of HostComponents and ServiceComponents.

Posted by Jayush Luniya <jl...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61917/#review184091
-----------------------------------------------------------


Ship it!




Ship It!

- Jayush Luniya


On Aug. 29, 2017, 7:37 p.m., Swapan Shridhar wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/61917/
> -----------------------------------------------------------
> 
> (Updated Aug. 29, 2017, 7:37 p.m.)
> 
> 
> Review request for Ambari, Jayush Luniya and Madhuvanthi Radhakrishnan.
> 
> 
> Bugs: AMBARI-21824
>     https://issues.apache.org/jira/browse/AMBARI-21824
> 
> 
> Repository: ambari
> 
> 
> Description
> -------
> 
> ServiceGroup was a new sub-resource added for cluster in AMBARI-21594.
> 
> This Task involves :
> - moving *Services* which was earlier a sub-resource of *Cluster* under *ServiceGroup* now, and
> -  using *Servicegroup* while doing Creation, Update and retrieval of *HostComponents* and *ServiceComponents*.
> -  UI changes which includes creating a *default ServiceGroup named 'core'*, and all services created goes under it. Further, making UI calls SG aware, while making a call.
> 
> The new API calls will be the following:
> 
> 
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
> **======**
> **Service:**
> **======**
> 
> New API calls: 
> 
> http://<hostname>:<port>/api/v1/clusters/<clusterName>/*servicegroups/<ServiceGroupName>*/services
> http://<hostname>:<port>/api/v1/clusters/<clusterName>/*servicegroups/<ServiceGroupName>*/services/<ServiceName>
> 
> **POST**
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services
> 
> Request
> 
> {code}
> {
>   "ServiceInfo" : {
>     "cluster_name": "c1",
>     "service_group_name": "core",
>     "service_name": "RANGER",
>     "service_display_name": "RANGER"
>   }
> }
> {code}
> 
> Response
> 
> {code}
> {
>   "resources" : [
>     {
>       "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER",
>       "ServiceInfo" : {
>         "cluster_id" : 2,
>         "cluster_name" : "c1",
>         "credential_store_enabled" : false,
>         "credential_store_supported" : false,
>         "desired_repository_version_id" : "2.6.1.0-129",
>         "desired_stack" : "HDP-2.6",
>         "maintenance_state" : "OFF",
>         "repository_state" : "NOT_REQUIRED",
>         "service_display_name" : "RANGER",
>         "service_group_id" : 2,
>         "service_group_name" : "core",
>         "service_id" : 4,
>         "service_name" : "RANGER",
>         "state" : "INIT"
>       }
>     }
>   ]
> }
> {code}
> 
> 
> **GET**
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services
> 
> Request
> 
> {code}
> {code}
> 
> Response
> 
> {code}
> {
>   "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services",
>   "items" : [
>     {
>       "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER",
>       "ServiceInfo" : {
>         "cluster_name" : "c1",
>         "service_display_name" : "RANGER",
>         "service_group_name" : "core"
>       }
>     }
>   ]
> }
> {code}
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER
> 
> Request
> 
> {code}
> {code}
> 
> Response
> 
> {code}
> {
>   "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER",
>   "ServiceInfo" : {
>     "cluster_id" : 2,
>     "cluster_name" : "c1",
>     "credential_store_enabled" : "false",
>     "credential_store_supported" : "false",
>     "desired_repository_version_id" : 1,
>     "desired_stack" : {
>       "stackName" : "HDP",
>       "stackVersion" : "2.6",
>       "stackId" : "HDP-2.6"
>     },
>     "maintenance_state" : "OFF",
>     "repository_state" : "NOT_REQUIRED",
>     "service_display_name" : "RANGER",
>     "service_group_id" : 2,
>     "service_group_name" : "core",
>     "service_id" : 4,
>     "service_name" : "RANGER",
>     "state" : "UNKNOWN"
>   },
>   "alerts_summary" : {
>     "CRITICAL" : 0,
>     "MAINTENANCE" : 0,
>     "OK" : 0,
>     "UNKNOWN" : 0,
>     "WARNING" : 0
>   },
>   "alerts" : [ ],
>   "components" : [ ],
>   "artifacts" : [ ]
> }
> {code}
> 
> 
> **DELETE**
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER
> Request
> 
> {code}
> {code}
> 
> Response
> {code}
> {
>   "deleteResult" : [
>     {
>       "deleted" : {
>         "key" : "service_name: RANGER"
>       }
>     }
>   ]
> }
> {code}
> 
> 
> -----------------------------------------------------------------------------------------------------------------------------
> 
> 
> **================**
> **Service Component**
> **================**
> 
> New API calls: 
> 
> http://<hostname>:<port>/api/v1/clusters/<clusterName>/*servicegroups/<ServiceGroupName>*/services/<ServiceName>/components/
> http://<hostname>:<port>/api/v1/clusters/<clusterName>/*servicegroups/<ServiceGroupName>*/services/<ServiceName>/components/ZOOKEEPER_SERVER
> 
> 
> **POST**
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/
> Request
> 
> {code}
> {
>   "ServiceComponentInfo" : {
> 		"component_name" : "RANGER_USERSYNC"
> 	}
> }	
> {code}
> 
> Response
> 
> {code}
> {
>   "resources" : [
>     {
>       "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC/",
>       "ServiceComponentInfo" : {
>         "category" : null,
>         "cluster_id" : 2,
>         "cluster_name" : "c1",
>         "component_name" : "RANGER_USERSYNC",
>         "desired_stack" : "HDP-2.6",
>         "desired_version" : "NOT_REQUIRED",
>         "display_name" : "Ranger Usersync",
>         "recovery_enabled" : false,
>         "service_display_name" : "RANGER",
>         "service_group_id" : 2,
>         "service_group_name" : "core",
>         "service_id" : 4,
>         "service_name" : "RANGER",
>         "state" : "INIT",
>         "total_count" : {
>           "installFailedCount" : 0,
>           "unknownCount" : 0,
>           "installedCount" : 0,
>           "initCount" : 0,
>           "startedCount" : 0,
>           "totalCount" : 0
>         }
>       }
>     }
>   ]
> }
> {code}
> 
> 
> **GET**
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/
> 
> Request
> 
> {code}
> {code}
> 
> Response
> 
> {code}
> {
>   "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/",
>   "items" : [
>     {
>       "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC",
>       "ServiceComponentInfo" : {
>         "cluster_name" : "c1",
>         "component_name" : "RANGER_USERSYNC",
>         "service_display_name" : "RANGER",
>         "service_group_name" : "core"
>       }
>     }
>   ]
> }
> {code}
> 
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC
> 
> Request
> 
> {code}
> {code}
> 
> Response
> 
> {code}
> {
>   "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC",
>   "ServiceComponentInfo" : {
>     "category" : "MASTER",
>     "cluster_id" : 2,
>     "cluster_name" : "c1",
>     "component_name" : "RANGER_USERSYNC",
>     "desired_stack" : "HDP-2.6",
>     "desired_version" : "2.6.1.0-129",
>     "display_name" : "Ranger Usersync",
>     "init_count" : 0,
>     "install_failed_count" : 0,
>     "installed_count" : 0,
>     "recovery_enabled" : "false",
>     "repository_state" : "NOT_REQUIRED",
>     "service_display_name" : "RANGER",
>     "service_group_id" : 2,
>     "service_group_name" : "core",
>     "service_id" : 4,
>     "service_name" : "RANGER",
>     "started_count" : 0,
>     "state" : "INIT",
>     "total_count" : 0,
>     "unknown_count" : 0
>   },
>   "host_components" : [ ]
> }
> {code}
> 
> 
> **DELETE**
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC
> 
> Request
> 
> {code}
> {code}
> 
> Response
> 
> {code}
> {
>   "deleteResult" : [
>     {
>       "deleted" : {
>         "key" : "component_name: RANGER_USERSYNC"
>       }
>     }
>   ]
> }
> {code}
> 
> 
> -----------------------------------------------------------------------------------------------------------------------------
> 
> 
> **=============**
> **Host Component**
> **=============**
> 
> API URI remains same, but call's *body* and *Ambari backend* has notion of servicegroup embedded.
> 
> http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/
> http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/<HostComponentName>
> 
> 
> *POST*
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/
> 
> Request
> 
> {code}
> {
>   "HostRoles" : {
>    "cluster_name" : "c1",
>     "component_name" : "RANGER_USERSYNC",
>     "service_group_name" : "core",
>     "service_display_name" : "RANGER"
>   }
> }
> {code}
> 
> Response
> 
> {code}
> {
>   "resources" : [
>     {
>       "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC",
>       "HostRoles" : {
>         "actual_configs" : { },
>         "cluster_id" : 2,
>         "cluster_name" : "c1",
>         "component_name" : "RANGER_USERSYNC",
>         "desired_admin_state" : null,
>         "desired_repository_version" : "2.6.1.0-129",
>         "desired_stack_id" : "HDP-2.6",
>         "display_name" : "Ranger Usersync",
>         "host_name" : "c6404.ambari.apache.org",
>         "id" : 7,
>         "maintenance_state" : null,
>         "public_host_name" : "c6404.ambari.apache.org",
>         "service_display_name" : "RANGER",
>         "service_group_id" : 2,
>         "service_group_name" : "core",
>         "service_id" : 4,
>         "service_name" : "RANGER",
>         "stale_configs" : false,
>         "state" : "INIT",
>         "upgrade_state" : "NONE",
>         "version" : "UNKNOWN"
>       },
>       "host" : {
>         "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org"
>       }
>     }
>   ]
> }
> {code}
> 
> 
> **GET**
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/
> 
> Request
> 
> {code}
> {code}
> 
> Response
> 
> {code}
> {
>   "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/",
>   "items" : [
>     {
>       "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC",
>       "HostRoles" : {
>         "cluster_name" : "c1",
>         "component_name" : "RANGER_USERSYNC",
>         "host_name" : "c6404.ambari.apache.org",
>         "service_display_name" : "RANGER",
>         "service_group_name" : "core"
>       },
>       "host" : {
>         "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org"
>       }
>     }
> {code}
> 
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC
> 
> Request
> 
> {code}
> {code}
> 
> Response
> 
> {code}
> {
>   "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC",
>   "HostRoles" : {
>     "cluster_id" : 2,
>     "cluster_name" : "c1",
>     "component_name" : "RANGER_USERSYNC",
>     "desired_repository_version" : "2.6.1.0-129",
>     "desired_stack_id" : "HDP-2.6",
>     "desired_state" : "INIT",
>     "display_name" : "Ranger Usersync",
>     "host_name" : "c6404.ambari.apache.org",
>     "id" : 7,
>     "maintenance_state" : "OFF",
>     "public_host_name" : "c6404.ambari.apache.org",
>     "service_display_name" : "RANGER",
>     "service_group_id" : 2,
>     "service_group_name" : "core",
>     "service_id" : 4,
>     "service_name" : "RANGER",
>     "stale_configs" : false,
>     "state" : "INIT",
>     "upgrade_state" : "NONE",
>     "version" : "UNKNOWN",
>     "actual_configs" : { }
>   },
>   "host" : {
>     "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org"
>   },
>   "processes" : [ ],
>   "component" : [
>     {
>       "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC",
>       "ServiceComponentInfo" : {
>         "cluster_name" : "c1",
>         "component_name" : "RANGER_USERSYNC",
>         "service_display_name" : "RANGER",
>         "service_group_name" : "core"
>       }
>     }
>   ]
> }
> {code}
> 
> 
> **DELETE**
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC
> 
> Request
> 
> {code}
> {code}
> 
> Response
> 
> {code}
> {
>   "deleteResult" : [
>     {
>       "deleted" : {
>         "key" : "component_name: RANGER_USERSYNC"
>       }
>     }
>   ]
> }
> {code}
> 
> 
> **-----------------------------------------------------------------------------------------------------------------------------------------------------**
> 
> 
> **GET calls once Service, Service Component and Host Components are created:**
> 
> 
> **SERVICE: GET**
>  
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER
> 
> Request
> 
> {code}
> {code}
> 
> Response
> 
> {code}
> {
>   "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER",
>   "ServiceInfo" : {
>     "cluster_id" : 2,
>     "cluster_name" : "c1",
>     "credential_store_enabled" : "false",
>     "credential_store_supported" : "false",
>     "desired_repository_version_id" : 1,
>     "desired_stack" : {
>       "stackName" : "HDP",
>       "stackVersion" : "2.6",
>       "stackId" : "HDP-2.6"
>     },
>     "maintenance_state" : "OFF",
>     "repository_state" : "NOT_REQUIRED",
>     "service_display_name" : "RANGER",
>     "service_group_id" : 2,
>     "service_group_name" : "core",
>     "service_id" : 4,
>     "service_name" : "RANGER",
>     "state" : "INIT"
>   },
>   "alerts_summary" : {
>     "CRITICAL" : 0,
>     "MAINTENANCE" : 0,
>     "OK" : 0,
>     "UNKNOWN" : 0,
>     "WARNING" : 0
>   },
>   "alerts" : [ ],
>   "components" : [
>     {
>       "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC",
>       "ServiceComponentInfo" : {
>         "cluster_name" : "c1",
>         "component_name" : "RANGER_USERSYNC",
>         "service_display_name" : "RANGER",
>         "service_group_name" : "core"
>       }
>     }
>   ],
>   "artifacts" : [ ]
> }
> {code}
> 
> 
> **SERVICE COMPONENT : GET**
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC
> 
> Request
> 
> {code}
> {code}
> 
> Response
> 
> {code}
> {
>   "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC",
>   "ServiceComponentInfo" : {
>     "category" : "MASTER",
>     "cluster_id" : 2,
>     "cluster_name" : "c1",
>     "component_name" : "RANGER_USERSYNC",
>     "desired_stack" : "HDP-2.6",
>     "desired_version" : "2.6.1.0-129",
>     "display_name" : "Ranger Usersync",
>     "init_count" : 1,
>     "install_failed_count" : 0,
>     "installed_count" : 0,
>     "recovery_enabled" : "false",
>     "repository_state" : "NOT_REQUIRED",
>     "service_display_name" : "RANGER",
>     "service_group_id" : 2,
>     "service_group_name" : "core",
>     "service_id" : 4,
>     "service_name" : "RANGER",
>     "started_count" : 0,
>     "state" : "INIT",
>     "total_count" : 1,
>     "unknown_count" : 0
>   },
>   "host_components" : [
>     {
>       "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC",
>       "HostRoles" : {
>         "cluster_name" : "c1",
>         "component_name" : "RANGER_USERSYNC",
>         "host_name" : "c6404.ambari.apache.org",
>         "service_display_name" : "RANGER",
>         "service_group_name" : "core"
>       }
>     }
>   ]
> }
> {code}
> 
> 
> **HOST COMPONENT : GET**
> 
> Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC
> 
> Request
> 
> {code}
> {code}
> 
> Response
> 
> {code}
> {
>   "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC",
>   "HostRoles" : {
>     "cluster_id" : 2,
>     "cluster_name" : "c1",
>     "component_name" : "RANGER_USERSYNC",
>     "desired_repository_version" : "2.6.1.0-129",
>     "desired_stack_id" : "HDP-2.6",
>     "desired_state" : "INIT",
>     "display_name" : "Ranger Usersync",
>     "host_name" : "c6404.ambari.apache.org",
>     "id" : 7,
>     "maintenance_state" : "OFF",
>     "public_host_name" : "c6404.ambari.apache.org",
>     "service_display_name" : "RANGER",
>     "service_group_id" : 2,
>     "service_group_name" : "core",
>     "service_id" : 4,
>     "service_name" : "RANGER",
>     "stale_configs" : false,
>     "state" : "INIT",
>     "upgrade_state" : "NONE",
>     "version" : "UNKNOWN",
>     "actual_configs" : { }
>   },
>   "host" : {
>     "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org"
>   },
>   "component" : [
>     {
>       "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC",
>       "ServiceComponentInfo" : {
>         "cluster_name" : "c1",
>         "component_name" : "RANGER_USERSYNC",
>         "service_display_name" : "RANGER",
>         "service_group_name" : "core"
>       }
>     }
>   ],
>   "processes" : [ ]
> }
> {code}
> 
> 
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------
> 
> 
> Diffs
> -----
> 
>   ambari-server/src/main/java/org/apache/ambari/server/ServiceComponentNotFoundException.java 8f25cb1 
>   ambari-server/src/main/java/org/apache/ambari/server/ServiceNotFoundException.java 6b18c09 
>   ambari-server/src/main/java/org/apache/ambari/server/StateRecoveryManager.java 03990a2 
>   ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java d83a5d1 
>   ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java 2690008 
>   ambari-server/src/main/java/org/apache/ambari/server/agent/StatusCommand.java e8c0b05 
>   ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java 24c2810 
>   ambari-server/src/main/java/org/apache/ambari/server/api/resources/ComponentResourceDefinition.java 2a98a9c 
>   ambari-server/src/main/java/org/apache/ambari/server/api/resources/ServiceGroupResourceDefinition.java f686851 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java 80bd58d 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java c38489d 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java b489a15 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceGroupService.java aa1270a 
>   ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceService.java 6ab2704 
>   ambari-server/src/main/java/org/apache/ambari/server/checks/ComponentsInstallationCheck.java 988fc78 
>   ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java b440c93 
>   ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java 543df26 
>   ambari-server/src/main/java/org/apache/ambari/server/checks/ServicesUpCheck.java 6b03249 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java 663d857 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java ca84826 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterResponse.java 3f75971 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java e09f433 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostRequest.java 94b5985 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostResponse.java 7b75e06 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentRequest.java 3a65ff8 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentResponse.java 9bd3e44 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java 3b3c940 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceResponse.java ed1832a 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java 0242d7c 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java 166fc5f 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java 2df3b00 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java aaf4656 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java 01e0aac 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java f94b979 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java 89f75f3 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/logging/LoggingSearchPropertyProvider.java 64261b3 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/DatabaseChecker.java 95352bf 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/DefaultServiceCalculatedState.java 5e02a64 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/FlumeServiceCalculatedState.java ca4fe6e 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HBaseServiceCalculatedState.java eac0dce 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HDFSServiceCalculatedState.java 7bbad2a 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HiveServiceCalculatedState.java 77e44a5 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/OozieServiceCalculatedState.java 1803f70 
>   ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/YARNServiceCalculatedState.java 2f1619f 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentInstalledEvent.java 0ba4ac2 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentUninstalledEvent.java 8acc401 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceEvent.java 08f739e 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceInstalledEvent.java 1f341d9 
>   ambari-server/src/main/java/org/apache/ambari/server/events/ServiceRemovedEvent.java de96342 
>   ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListener.java 2eb89a2 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterServiceDAO.java 09419ec 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentDesiredStateDAO.java 57e409c 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentStateDAO.java ad6867e 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentDesiredStateDAO.java dfe7d7b 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceGroupDAO.java dc997b0 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java 2af9a47 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntityPK.java 578edea 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java 36a7a25 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentStateEntity.java 0d295a4 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java e0f52c6 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentVersionEntity.java ffb3b82 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntity.java fc26478 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntityPK.java 3fa5289 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceGroupEntity.java cd9d2c8 
>   ambari-server/src/main/java/org/apache/ambari/server/orm/models/HostComponentSummary.java f5b12b5 
>   ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java ce4c961 
>   ambari-server/src/main/java/org/apache/ambari/server/state/Service.java 65189ca 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponent.java 9fb2aba 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentHost.java 5ff9e37 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java 5f85e38 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceFactory.java a4c953f 
>   ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java 0247774 
>   ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java 1494488 
>   ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java 605cb7a 
>   ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java 3ceaa48 
>   ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java 45d8e8e 
>   ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java 230b031 
>   ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostSummary.java e9359ef 
>   ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java 662f9aa 
>   ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql b1a13d3 
>   ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql 2beee0f 
>   ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 190eb8b 
>   ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 0f6b075 
>   ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 668d1e7 
>   ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql d7afe73 
>   ambari-server/src/main/resources/key_properties.json 5d76062 
>   ambari-server/src/main/resources/properties.json 11ca7f6 
>   ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalogHelper.java 58d4c3e 
>   ambari-web/app/app.js 2c638e4 
>   ambari-web/app/controllers/global/update_controller.js 8a3f984 
>   ambari-web/app/controllers/main/admin/kerberos/step3_controller.js 15be4f9 
>   ambari-web/app/controllers/main/service/add_controller.js c11bcf2 
>   ambari-web/app/controllers/wizard/step8_controller.js cc06b5b 
>   ambari-web/app/controllers/wizard/step9_controller.js 9f27f65 
>   ambari-web/app/mappers/service_mapper.js 3523379 
>   ambari-web/app/mappers/service_metrics_mapper.js 87b6149 
>   ambari-web/app/mixins/common/configs/configs_saver.js dafee79 
>   ambari-web/app/mixins/wizard/wizardProgressPageController.js 9d9d000 
>   ambari-web/app/utils/ajax/ajax.js 4a1f9ef 
> 
> 
> Diff: https://reviews.apache.org/r/61917/diff/3/
> 
> 
> Testing
> -------
> 
> Manually tested by deploying cluster via UI.
> 
> 
> Thanks,
> 
> Swapan Shridhar
> 
>


Re: Review Request 61917: AMBARI-21824. MultiEverything : Make services as sub-resource of ServiceGroups and use Servicegroup while doing Creation, Update and retrieval of HostComponents and ServiceComponents.

Posted by Swapan Shridhar <ss...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61917/
-----------------------------------------------------------

(Updated Aug. 29, 2017, 7:37 p.m.)


Review request for Ambari, Jayush Luniya and Madhuvanthi Radhakrishnan.


Changes
-------

Updated Description.


Bugs: AMBARI-21824
    https://issues.apache.org/jira/browse/AMBARI-21824


Repository: ambari


Description (updated)
-------

ServiceGroup was a new sub-resource added for cluster in AMBARI-21594.

This Task involves :
- moving *Services* which was earlier a sub-resource of *Cluster* under *ServiceGroup* now, and
-  using *Servicegroup* while doing Creation, Update and retrieval of *HostComponents* and *ServiceComponents*.
-  UI changes which includes creating a *default ServiceGroup named 'core'*, and all services created goes under it. Further, making UI calls SG aware, while making a call.

The new API calls will be the following:


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
**======**
**Service:**
**======**

New API calls: 

http://<hostname>:<port>/api/v1/clusters/<clusterName>/*servicegroups/<ServiceGroupName>*/services
http://<hostname>:<port>/api/v1/clusters/<clusterName>/*servicegroups/<ServiceGroupName>*/services/<ServiceName>

**POST**

Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services

Request

{code}
{
  "ServiceInfo" : {
    "cluster_name": "c1",
    "service_group_name": "core",
    "service_name": "RANGER",
    "service_display_name": "RANGER"
  }
}
{code}

Response

{code}
{
  "resources" : [
    {
      "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER",
      "ServiceInfo" : {
        "cluster_id" : 2,
        "cluster_name" : "c1",
        "credential_store_enabled" : false,
        "credential_store_supported" : false,
        "desired_repository_version_id" : "2.6.1.0-129",
        "desired_stack" : "HDP-2.6",
        "maintenance_state" : "OFF",
        "repository_state" : "NOT_REQUIRED",
        "service_display_name" : "RANGER",
        "service_group_id" : 2,
        "service_group_name" : "core",
        "service_id" : 4,
        "service_name" : "RANGER",
        "state" : "INIT"
      }
    }
  ]
}
{code}


**GET**

Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services

Request

{code}
{code}

Response

{code}
{
  "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services",
  "items" : [
    {
      "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER",
      "ServiceInfo" : {
        "cluster_name" : "c1",
        "service_display_name" : "RANGER",
        "service_group_name" : "core"
      }
    }
  ]
}
{code}

Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER

Request

{code}
{code}

Response

{code}
{
  "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER",
  "ServiceInfo" : {
    "cluster_id" : 2,
    "cluster_name" : "c1",
    "credential_store_enabled" : "false",
    "credential_store_supported" : "false",
    "desired_repository_version_id" : 1,
    "desired_stack" : {
      "stackName" : "HDP",
      "stackVersion" : "2.6",
      "stackId" : "HDP-2.6"
    },
    "maintenance_state" : "OFF",
    "repository_state" : "NOT_REQUIRED",
    "service_display_name" : "RANGER",
    "service_group_id" : 2,
    "service_group_name" : "core",
    "service_id" : 4,
    "service_name" : "RANGER",
    "state" : "UNKNOWN"
  },
  "alerts_summary" : {
    "CRITICAL" : 0,
    "MAINTENANCE" : 0,
    "OK" : 0,
    "UNKNOWN" : 0,
    "WARNING" : 0
  },
  "alerts" : [ ],
  "components" : [ ],
  "artifacts" : [ ]
}
{code}


**DELETE**

Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER
Request

{code}
{code}

Response
{code}
{
  "deleteResult" : [
    {
      "deleted" : {
        "key" : "service_name: RANGER"
      }
    }
  ]
}
{code}


-----------------------------------------------------------------------------------------------------------------------------


**================**
**Service Component**
**================**

New API calls: 

http://<hostname>:<port>/api/v1/clusters/<clusterName>/*servicegroups/<ServiceGroupName>*/services/<ServiceName>/components/
http://<hostname>:<port>/api/v1/clusters/<clusterName>/*servicegroups/<ServiceGroupName>*/services/<ServiceName>/components/ZOOKEEPER_SERVER


**POST**

Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/
Request

{code}
{
  "ServiceComponentInfo" : {
		"component_name" : "RANGER_USERSYNC"
	}
}	
{code}

Response

{code}
{
  "resources" : [
    {
      "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC/",
      "ServiceComponentInfo" : {
        "category" : null,
        "cluster_id" : 2,
        "cluster_name" : "c1",
        "component_name" : "RANGER_USERSYNC",
        "desired_stack" : "HDP-2.6",
        "desired_version" : "NOT_REQUIRED",
        "display_name" : "Ranger Usersync",
        "recovery_enabled" : false,
        "service_display_name" : "RANGER",
        "service_group_id" : 2,
        "service_group_name" : "core",
        "service_id" : 4,
        "service_name" : "RANGER",
        "state" : "INIT",
        "total_count" : {
          "installFailedCount" : 0,
          "unknownCount" : 0,
          "installedCount" : 0,
          "initCount" : 0,
          "startedCount" : 0,
          "totalCount" : 0
        }
      }
    }
  ]
}
{code}


**GET**

Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/

Request

{code}
{code}

Response

{code}
{
  "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/",
  "items" : [
    {
      "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC",
      "ServiceComponentInfo" : {
        "cluster_name" : "c1",
        "component_name" : "RANGER_USERSYNC",
        "service_display_name" : "RANGER",
        "service_group_name" : "core"
      }
    }
  ]
}
{code}


Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC

Request

{code}
{code}

Response

{code}
{
  "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC",
  "ServiceComponentInfo" : {
    "category" : "MASTER",
    "cluster_id" : 2,
    "cluster_name" : "c1",
    "component_name" : "RANGER_USERSYNC",
    "desired_stack" : "HDP-2.6",
    "desired_version" : "2.6.1.0-129",
    "display_name" : "Ranger Usersync",
    "init_count" : 0,
    "install_failed_count" : 0,
    "installed_count" : 0,
    "recovery_enabled" : "false",
    "repository_state" : "NOT_REQUIRED",
    "service_display_name" : "RANGER",
    "service_group_id" : 2,
    "service_group_name" : "core",
    "service_id" : 4,
    "service_name" : "RANGER",
    "started_count" : 0,
    "state" : "INIT",
    "total_count" : 0,
    "unknown_count" : 0
  },
  "host_components" : [ ]
}
{code}


**DELETE**

Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC

Request

{code}
{code}

Response

{code}
{
  "deleteResult" : [
    {
      "deleted" : {
        "key" : "component_name: RANGER_USERSYNC"
      }
    }
  ]
}
{code}


-----------------------------------------------------------------------------------------------------------------------------


**=============**
**Host Component**
**=============**

API URI remains same, but call's *body* and *Ambari backend* has notion of servicegroup embedded.

http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/
http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/<HostComponentName>


*POST*

Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/

Request

{code}
{
  "HostRoles" : {
   "cluster_name" : "c1",
    "component_name" : "RANGER_USERSYNC",
    "service_group_name" : "core",
    "service_display_name" : "RANGER"
  }
}
{code}

Response

{code}
{
  "resources" : [
    {
      "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC",
      "HostRoles" : {
        "actual_configs" : { },
        "cluster_id" : 2,
        "cluster_name" : "c1",
        "component_name" : "RANGER_USERSYNC",
        "desired_admin_state" : null,
        "desired_repository_version" : "2.6.1.0-129",
        "desired_stack_id" : "HDP-2.6",
        "display_name" : "Ranger Usersync",
        "host_name" : "c6404.ambari.apache.org",
        "id" : 7,
        "maintenance_state" : null,
        "public_host_name" : "c6404.ambari.apache.org",
        "service_display_name" : "RANGER",
        "service_group_id" : 2,
        "service_group_name" : "core",
        "service_id" : 4,
        "service_name" : "RANGER",
        "stale_configs" : false,
        "state" : "INIT",
        "upgrade_state" : "NONE",
        "version" : "UNKNOWN"
      },
      "host" : {
        "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org"
      }
    }
  ]
}
{code}


**GET**

Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/

Request

{code}
{code}

Response

{code}
{
  "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/",
  "items" : [
    {
      "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC",
      "HostRoles" : {
        "cluster_name" : "c1",
        "component_name" : "RANGER_USERSYNC",
        "host_name" : "c6404.ambari.apache.org",
        "service_display_name" : "RANGER",
        "service_group_name" : "core"
      },
      "host" : {
        "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org"
      }
    }
{code}


Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC

Request

{code}
{code}

Response

{code}
{
  "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC",
  "HostRoles" : {
    "cluster_id" : 2,
    "cluster_name" : "c1",
    "component_name" : "RANGER_USERSYNC",
    "desired_repository_version" : "2.6.1.0-129",
    "desired_stack_id" : "HDP-2.6",
    "desired_state" : "INIT",
    "display_name" : "Ranger Usersync",
    "host_name" : "c6404.ambari.apache.org",
    "id" : 7,
    "maintenance_state" : "OFF",
    "public_host_name" : "c6404.ambari.apache.org",
    "service_display_name" : "RANGER",
    "service_group_id" : 2,
    "service_group_name" : "core",
    "service_id" : 4,
    "service_name" : "RANGER",
    "stale_configs" : false,
    "state" : "INIT",
    "upgrade_state" : "NONE",
    "version" : "UNKNOWN",
    "actual_configs" : { }
  },
  "host" : {
    "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org"
  },
  "processes" : [ ],
  "component" : [
    {
      "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC",
      "ServiceComponentInfo" : {
        "cluster_name" : "c1",
        "component_name" : "RANGER_USERSYNC",
        "service_display_name" : "RANGER",
        "service_group_name" : "core"
      }
    }
  ]
}
{code}


**DELETE**

Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC

Request

{code}
{code}

Response

{code}
{
  "deleteResult" : [
    {
      "deleted" : {
        "key" : "component_name: RANGER_USERSYNC"
      }
    }
  ]
}
{code}


**-----------------------------------------------------------------------------------------------------------------------------------------------------**


**GET calls once Service, Service Component and Host Components are created:**


**SERVICE: GET**
 
Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER

Request

{code}
{code}

Response

{code}
{
  "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER",
  "ServiceInfo" : {
    "cluster_id" : 2,
    "cluster_name" : "c1",
    "credential_store_enabled" : "false",
    "credential_store_supported" : "false",
    "desired_repository_version_id" : 1,
    "desired_stack" : {
      "stackName" : "HDP",
      "stackVersion" : "2.6",
      "stackId" : "HDP-2.6"
    },
    "maintenance_state" : "OFF",
    "repository_state" : "NOT_REQUIRED",
    "service_display_name" : "RANGER",
    "service_group_id" : 2,
    "service_group_name" : "core",
    "service_id" : 4,
    "service_name" : "RANGER",
    "state" : "INIT"
  },
  "alerts_summary" : {
    "CRITICAL" : 0,
    "MAINTENANCE" : 0,
    "OK" : 0,
    "UNKNOWN" : 0,
    "WARNING" : 0
  },
  "alerts" : [ ],
  "components" : [
    {
      "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC",
      "ServiceComponentInfo" : {
        "cluster_name" : "c1",
        "component_name" : "RANGER_USERSYNC",
        "service_display_name" : "RANGER",
        "service_group_name" : "core"
      }
    }
  ],
  "artifacts" : [ ]
}
{code}


**SERVICE COMPONENT : GET**

Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC

Request

{code}
{code}

Response

{code}
{
  "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC",
  "ServiceComponentInfo" : {
    "category" : "MASTER",
    "cluster_id" : 2,
    "cluster_name" : "c1",
    "component_name" : "RANGER_USERSYNC",
    "desired_stack" : "HDP-2.6",
    "desired_version" : "2.6.1.0-129",
    "display_name" : "Ranger Usersync",
    "init_count" : 1,
    "install_failed_count" : 0,
    "installed_count" : 0,
    "recovery_enabled" : "false",
    "repository_state" : "NOT_REQUIRED",
    "service_display_name" : "RANGER",
    "service_group_id" : 2,
    "service_group_name" : "core",
    "service_id" : 4,
    "service_name" : "RANGER",
    "started_count" : 0,
    "state" : "INIT",
    "total_count" : 1,
    "unknown_count" : 0
  },
  "host_components" : [
    {
      "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC",
      "HostRoles" : {
        "cluster_name" : "c1",
        "component_name" : "RANGER_USERSYNC",
        "host_name" : "c6404.ambari.apache.org",
        "service_display_name" : "RANGER",
        "service_group_name" : "core"
      }
    }
  ]
}
{code}


**HOST COMPONENT : GET**

Eg: http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC

Request

{code}
{code}

Response

{code}
{
  "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org/host_components/RANGER_USERSYNC",
  "HostRoles" : {
    "cluster_id" : 2,
    "cluster_name" : "c1",
    "component_name" : "RANGER_USERSYNC",
    "desired_repository_version" : "2.6.1.0-129",
    "desired_stack_id" : "HDP-2.6",
    "desired_state" : "INIT",
    "display_name" : "Ranger Usersync",
    "host_name" : "c6404.ambari.apache.org",
    "id" : 7,
    "maintenance_state" : "OFF",
    "public_host_name" : "c6404.ambari.apache.org",
    "service_display_name" : "RANGER",
    "service_group_id" : 2,
    "service_group_name" : "core",
    "service_id" : 4,
    "service_name" : "RANGER",
    "stale_configs" : false,
    "state" : "INIT",
    "upgrade_state" : "NONE",
    "version" : "UNKNOWN",
    "actual_configs" : { }
  },
  "host" : {
    "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/hosts/c6404.ambari.apache.org"
  },
  "component" : [
    {
      "href" : "http://c6404.ambari.apache.org:8080/api/v1/clusters/c1/servicegroups/core/services/RANGER/components/RANGER_USERSYNC",
      "ServiceComponentInfo" : {
        "cluster_name" : "c1",
        "component_name" : "RANGER_USERSYNC",
        "service_display_name" : "RANGER",
        "service_group_name" : "core"
      }
    }
  ],
  "processes" : [ ]
}
{code}


-----------------------------------------------------------------------------------------------------------------------------------------------------------------------


Diffs
-----

  ambari-server/src/main/java/org/apache/ambari/server/ServiceComponentNotFoundException.java 8f25cb1 
  ambari-server/src/main/java/org/apache/ambari/server/ServiceNotFoundException.java 6b18c09 
  ambari-server/src/main/java/org/apache/ambari/server/StateRecoveryManager.java 03990a2 
  ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java d83a5d1 
  ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java 2690008 
  ambari-server/src/main/java/org/apache/ambari/server/agent/StatusCommand.java e8c0b05 
  ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java 24c2810 
  ambari-server/src/main/java/org/apache/ambari/server/api/resources/ComponentResourceDefinition.java 2a98a9c 
  ambari-server/src/main/java/org/apache/ambari/server/api/resources/ServiceGroupResourceDefinition.java f686851 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java 80bd58d 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java c38489d 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java b489a15 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceGroupService.java aa1270a 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceService.java 6ab2704 
  ambari-server/src/main/java/org/apache/ambari/server/checks/ComponentsInstallationCheck.java 988fc78 
  ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java b440c93 
  ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java 543df26 
  ambari-server/src/main/java/org/apache/ambari/server/checks/ServicesUpCheck.java 6b03249 
  ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java 663d857 
  ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java ca84826 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterResponse.java 3f75971 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java e09f433 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostRequest.java 94b5985 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostResponse.java 7b75e06 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentRequest.java 3a65ff8 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentResponse.java 9bd3e44 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java 3b3c940 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceResponse.java ed1832a 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java 0242d7c 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java 166fc5f 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java 2df3b00 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java aaf4656 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java 01e0aac 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java f94b979 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java 89f75f3 
  ambari-server/src/main/java/org/apache/ambari/server/controller/logging/LoggingSearchPropertyProvider.java 64261b3 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/DatabaseChecker.java 95352bf 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/DefaultServiceCalculatedState.java 5e02a64 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/FlumeServiceCalculatedState.java ca4fe6e 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HBaseServiceCalculatedState.java eac0dce 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HDFSServiceCalculatedState.java 7bbad2a 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HiveServiceCalculatedState.java 77e44a5 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/OozieServiceCalculatedState.java 1803f70 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/YARNServiceCalculatedState.java 2f1619f 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentInstalledEvent.java 0ba4ac2 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentUninstalledEvent.java 8acc401 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceEvent.java 08f739e 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceInstalledEvent.java 1f341d9 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceRemovedEvent.java de96342 
  ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListener.java 2eb89a2 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterServiceDAO.java 09419ec 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentDesiredStateDAO.java 57e409c 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentStateDAO.java ad6867e 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentDesiredStateDAO.java dfe7d7b 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceGroupDAO.java dc997b0 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java 2af9a47 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntityPK.java 578edea 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java 36a7a25 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentStateEntity.java 0d295a4 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java e0f52c6 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentVersionEntity.java ffb3b82 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntity.java fc26478 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntityPK.java 3fa5289 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceGroupEntity.java cd9d2c8 
  ambari-server/src/main/java/org/apache/ambari/server/orm/models/HostComponentSummary.java f5b12b5 
  ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java ce4c961 
  ambari-server/src/main/java/org/apache/ambari/server/state/Service.java 65189ca 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponent.java 9fb2aba 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentHost.java 5ff9e37 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java 5f85e38 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceFactory.java a4c953f 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java 0247774 
  ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java 1494488 
  ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java 605cb7a 
  ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java 3ceaa48 
  ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java 45d8e8e 
  ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java 230b031 
  ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostSummary.java e9359ef 
  ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java 662f9aa 
  ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql b1a13d3 
  ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql 2beee0f 
  ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 190eb8b 
  ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 0f6b075 
  ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 668d1e7 
  ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql d7afe73 
  ambari-server/src/main/resources/key_properties.json 5d76062 
  ambari-server/src/main/resources/properties.json 11ca7f6 
  ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalogHelper.java 58d4c3e 
  ambari-web/app/app.js 2c638e4 
  ambari-web/app/controllers/global/update_controller.js 8a3f984 
  ambari-web/app/controllers/main/admin/kerberos/step3_controller.js 15be4f9 
  ambari-web/app/controllers/main/service/add_controller.js c11bcf2 
  ambari-web/app/controllers/wizard/step8_controller.js cc06b5b 
  ambari-web/app/controllers/wizard/step9_controller.js 9f27f65 
  ambari-web/app/mappers/service_mapper.js 3523379 
  ambari-web/app/mappers/service_metrics_mapper.js 87b6149 
  ambari-web/app/mixins/common/configs/configs_saver.js dafee79 
  ambari-web/app/mixins/wizard/wizardProgressPageController.js 9d9d000 
  ambari-web/app/utils/ajax/ajax.js 4a1f9ef 


Diff: https://reviews.apache.org/r/61917/diff/3/


Testing (updated)
-------

Manually tested by deploying cluster via UI.


Thanks,

Swapan Shridhar


Re: Review Request 61917: AMBARI-21824. MultiEverything : Make services as sub-resource of ServiceGroups and use Servicegroup while doing Creation, Update and retrieval of HostComponents and ServiceComponents.

Posted by Swapan Shridhar <ss...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61917/
-----------------------------------------------------------

(Updated Aug. 29, 2017, 7:31 p.m.)


Review request for Ambari, Jayush Luniya and Madhuvanthi Radhakrishnan.


Changes
-------

Renamed fn. 'findServiceName()' to appropriate name 'findServiceName()' as per Jayush's comment.


Bugs: AMBARI-21824
    https://issues.apache.org/jira/browse/AMBARI-21824


Repository: ambari


Description
-------

ServiceGroup was a new sub-resource added for cluster in AMBARI-21594.

This change involves :
- moving **Services** which was earlier a sub-resource of **Cluster** under **ServiceGroup** now, and
- using **Servicegroup** while doing Creation, Update and retrieval of **HostComponents** and **ServiceComponents**.

The new API calls will be the following:


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
**Service:**

http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services
http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>

**ServiceComponent:**

http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>/components/
http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>/components/ZOOKEEPER_SERVER

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

**HostComponent:** (API remains same, but has notion of servicegroup in Ambari backend)

http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/
http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/<HostComponentName>


- The change also includes UI changes as well, which create a **default ServiceGroup named 'core'**, and all services created goes under it.


Diffs (updated)
-----

  ambari-server/src/main/java/org/apache/ambari/server/ServiceComponentNotFoundException.java 8f25cb1 
  ambari-server/src/main/java/org/apache/ambari/server/ServiceNotFoundException.java 6b18c09 
  ambari-server/src/main/java/org/apache/ambari/server/StateRecoveryManager.java 03990a2 
  ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java d83a5d1 
  ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java 2690008 
  ambari-server/src/main/java/org/apache/ambari/server/agent/StatusCommand.java e8c0b05 
  ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java 24c2810 
  ambari-server/src/main/java/org/apache/ambari/server/api/resources/ComponentResourceDefinition.java 2a98a9c 
  ambari-server/src/main/java/org/apache/ambari/server/api/resources/ServiceGroupResourceDefinition.java f686851 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java 80bd58d 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java c38489d 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java b489a15 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceGroupService.java aa1270a 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceService.java 6ab2704 
  ambari-server/src/main/java/org/apache/ambari/server/checks/ComponentsInstallationCheck.java 988fc78 
  ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java b440c93 
  ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java 543df26 
  ambari-server/src/main/java/org/apache/ambari/server/checks/ServicesUpCheck.java 6b03249 
  ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java 663d857 
  ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java ca84826 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterResponse.java 3f75971 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java e09f433 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostRequest.java 94b5985 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostResponse.java 7b75e06 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentRequest.java 3a65ff8 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentResponse.java 9bd3e44 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java 3b3c940 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceResponse.java ed1832a 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/AbstractProviderModule.java 0242d7c 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java 166fc5f 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java 2df3b00 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java aaf4656 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java 01e0aac 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java f94b979 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java 89f75f3 
  ambari-server/src/main/java/org/apache/ambari/server/controller/logging/LoggingSearchPropertyProvider.java 64261b3 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/DatabaseChecker.java 95352bf 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/DefaultServiceCalculatedState.java 5e02a64 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/FlumeServiceCalculatedState.java ca4fe6e 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HBaseServiceCalculatedState.java eac0dce 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HDFSServiceCalculatedState.java 7bbad2a 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HiveServiceCalculatedState.java 77e44a5 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/OozieServiceCalculatedState.java 1803f70 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/YARNServiceCalculatedState.java 2f1619f 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentInstalledEvent.java 0ba4ac2 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentUninstalledEvent.java 8acc401 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceEvent.java 08f739e 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceInstalledEvent.java 1f341d9 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceRemovedEvent.java de96342 
  ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListener.java 2eb89a2 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterServiceDAO.java 09419ec 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentDesiredStateDAO.java 57e409c 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentStateDAO.java ad6867e 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentDesiredStateDAO.java dfe7d7b 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceGroupDAO.java dc997b0 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java 2af9a47 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntityPK.java 578edea 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java 36a7a25 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentStateEntity.java 0d295a4 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java e0f52c6 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentVersionEntity.java ffb3b82 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntity.java fc26478 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntityPK.java 3fa5289 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceGroupEntity.java cd9d2c8 
  ambari-server/src/main/java/org/apache/ambari/server/orm/models/HostComponentSummary.java f5b12b5 
  ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java ce4c961 
  ambari-server/src/main/java/org/apache/ambari/server/state/Service.java 65189ca 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponent.java 9fb2aba 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentHost.java 5ff9e37 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java 5f85e38 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceFactory.java a4c953f 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java 0247774 
  ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java 1494488 
  ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java 605cb7a 
  ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java 3ceaa48 
  ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java 45d8e8e 
  ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java 230b031 
  ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostSummary.java e9359ef 
  ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java 662f9aa 
  ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql b1a13d3 
  ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql 2beee0f 
  ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 190eb8b 
  ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 0f6b075 
  ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 668d1e7 
  ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql d7afe73 
  ambari-server/src/main/resources/key_properties.json 5d76062 
  ambari-server/src/main/resources/properties.json 11ca7f6 
  ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalogHelper.java 58d4c3e 
  ambari-web/app/app.js 2c638e4 
  ambari-web/app/controllers/global/update_controller.js 8a3f984 
  ambari-web/app/controllers/main/admin/kerberos/step3_controller.js 15be4f9 
  ambari-web/app/controllers/main/service/add_controller.js c11bcf2 
  ambari-web/app/controllers/wizard/step8_controller.js cc06b5b 
  ambari-web/app/controllers/wizard/step9_controller.js 9f27f65 
  ambari-web/app/mappers/service_mapper.js 3523379 
  ambari-web/app/mappers/service_metrics_mapper.js 87b6149 
  ambari-web/app/mixins/common/configs/configs_saver.js dafee79 
  ambari-web/app/mixins/wizard/wizardProgressPageController.js 9d9d000 
  ambari-web/app/utils/ajax/ajax.js 4a1f9ef 


Diff: https://reviews.apache.org/r/61917/diff/3/

Changes: https://reviews.apache.org/r/61917/diff/2-3/


Testing
-------

Manually tested by deplyoying cluster via UI.


Thanks,

Swapan Shridhar


Re: Review Request 61917: AMBARI-21824. MultiEverything : Make services as sub-resource of ServiceGroups and use Servicegroup while doing Creation, Update and retrieval of HostComponents and ServiceComponents.

Posted by Swapan Shridhar <ss...@hortonworks.com>.
-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/61917/
-----------------------------------------------------------

(Updated Aug. 29, 2017, 6:28 p.m.)


Review request for Ambari, Jayush Luniya and Madhuvanthi Radhakrishnan.


Changes
-------

Updated the following:

Backend:
- For Service, HostComponent and Component, added code for response block on POST and DELETE.
- Commented code which checks for passed in SG and retrieved SG for Service in ServiceResourceProvider with TODO, to be opened when we don't want to support queries for servies and components at cluster level.UI as of now makes that calls for optimizations purposes.

Frontend:
- Updated UI code to use default Servicegroup while making POST call for Service and Components.


Bugs: AMBARI-21824
    https://issues.apache.org/jira/browse/AMBARI-21824


Repository: ambari


Description
-------

ServiceGroup was a new sub-resource added for cluster in AMBARI-21594.

This change involves :
- moving **Services** which was earlier a sub-resource of **Cluster** under **ServiceGroup** now, and
- using **Servicegroup** while doing Creation, Update and retrieval of **HostComponents** and **ServiceComponents**.

The new API calls will be the following:


---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
**Service:**

http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services
http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>

**ServiceComponent:**

http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>/components/
http://<hostname>:<port>/api/v1/clusters/<clusterName>/**servicegroups/<ServiceGroupName>**/services/<ServiceName>/components/ZOOKEEPER_SERVER

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

**HostComponent:** (API remains same, but has notion of servicegroup in Ambari backend)

http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/
http://<hostname>:<port>/api/v1/clusters/c1/hosts/<HostName>/host_components/<HostComponentName>


- The change also includes UI changes as well, which create a **default ServiceGroup named 'core'**, and all services created goes under it.


Diffs (updated)
-----

  ambari-server/src/main/java/org/apache/ambari/server/ServiceComponentNotFoundException.java 8f25cb1 
  ambari-server/src/main/java/org/apache/ambari/server/ServiceNotFoundException.java 6b18c09 
  ambari-server/src/main/java/org/apache/ambari/server/StateRecoveryManager.java 03990a2 
  ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatMonitor.java d83a5d1 
  ambari-server/src/main/java/org/apache/ambari/server/agent/HeartbeatProcessor.java 2690008 
  ambari-server/src/main/java/org/apache/ambari/server/agent/StatusCommand.java e8c0b05 
  ambari-server/src/main/java/org/apache/ambari/server/api/resources/ClusterResourceDefinition.java 24c2810 
  ambari-server/src/main/java/org/apache/ambari/server/api/resources/ComponentResourceDefinition.java 2a98a9c 
  ambari-server/src/main/java/org/apache/ambari/server/api/resources/ServiceGroupResourceDefinition.java f686851 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/AmbariMetaInfo.java 80bd58d 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ClusterService.java c38489d 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ComponentService.java b489a15 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceGroupService.java aa1270a 
  ambari-server/src/main/java/org/apache/ambari/server/api/services/ServiceService.java 6ab2704 
  ambari-server/src/main/java/org/apache/ambari/server/checks/ComponentsInstallationCheck.java 988fc78 
  ambari-server/src/main/java/org/apache/ambari/server/checks/DatabaseConsistencyCheckHelper.java b440c93 
  ambari-server/src/main/java/org/apache/ambari/server/checks/SecondaryNamenodeDeletedCheck.java 543df26 
  ambari-server/src/main/java/org/apache/ambari/server/checks/ServicesUpCheck.java 6b03249 
  ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementController.java 663d857 
  ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java ca84826 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ClusterResponse.java 3f75971 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ControllerModule.java e09f433 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostRequest.java 94b5985 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentHostResponse.java 7b75e06 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentRequest.java 3a65ff8 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceComponentResponse.java 9bd3e44 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceRequest.java 3b3c940 
  ambari-server/src/main/java/org/apache/ambari/server/controller/ServiceResponse.java ed1832a 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ClientConfigResourceProvider.java 166fc5f 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ComponentResourceProvider.java 2df3b00 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostComponentResourceProvider.java aaf4656 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostResourceProvider.java 01e0aac 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/HostStatusHelper.java f94b979 
  ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ServiceResourceProvider.java 89f75f3 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/DatabaseChecker.java 95352bf 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/DefaultServiceCalculatedState.java 5e02a64 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/FlumeServiceCalculatedState.java ca4fe6e 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HBaseServiceCalculatedState.java eac0dce 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HDFSServiceCalculatedState.java 7bbad2a 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/HiveServiceCalculatedState.java 77e44a5 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/OozieServiceCalculatedState.java 1803f70 
  ambari-server/src/main/java/org/apache/ambari/server/controller/utilities/state/YARNServiceCalculatedState.java 2f1619f 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentInstalledEvent.java 0ba4ac2 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceComponentUninstalledEvent.java 8acc401 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceEvent.java 08f739e 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceInstalledEvent.java 1f341d9 
  ambari-server/src/main/java/org/apache/ambari/server/events/ServiceRemovedEvent.java de96342 
  ambari-server/src/main/java/org/apache/ambari/server/events/listeners/upgrade/HostVersionOutOfSyncListener.java 2eb89a2 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ClusterServiceDAO.java 09419ec 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentDesiredStateDAO.java 57e409c 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/HostComponentStateDAO.java ad6867e 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceComponentDesiredStateDAO.java dfe7d7b 
  ambari-server/src/main/java/org/apache/ambari/server/orm/dao/ServiceGroupDAO.java dc997b0 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntity.java 2af9a47 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ClusterServiceEntityPK.java 578edea 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentDesiredStateEntity.java 36a7a25 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/HostComponentStateEntity.java 0d295a4 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentDesiredStateEntity.java e0f52c6 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceComponentVersionEntity.java ffb3b82 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntity.java fc26478 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceDesiredStateEntityPK.java 3fa5289 
  ambari-server/src/main/java/org/apache/ambari/server/orm/entities/ServiceGroupEntity.java cd9d2c8 
  ambari-server/src/main/java/org/apache/ambari/server/orm/models/HostComponentSummary.java f5b12b5 
  ambari-server/src/main/java/org/apache/ambari/server/state/Cluster.java ce4c961 
  ambari-server/src/main/java/org/apache/ambari/server/state/Service.java 65189ca 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponent.java 9fb2aba 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentHost.java 5ff9e37 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java 5f85e38 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceFactory.java a4c953f 
  ambari-server/src/main/java/org/apache/ambari/server/state/ServiceImpl.java 0247774 
  ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java 1494488 
  ambari-server/src/main/java/org/apache/ambari/server/state/cluster/ClusterImpl.java 605cb7a 
  ambari-server/src/main/java/org/apache/ambari/server/state/host/HostImpl.java 3ceaa48 
  ambari-server/src/main/java/org/apache/ambari/server/state/repository/VersionDefinitionXml.java 45d8e8e 
  ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostImpl.java 230b031 
  ambari-server/src/main/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostSummary.java e9359ef 
  ambari-server/src/main/java/org/apache/ambari/server/topology/AmbariContext.java 662f9aa 
  ambari-server/src/main/resources/Ambari-DDL-Derby-CREATE.sql b1a13d3 
  ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql 2beee0f 
  ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 190eb8b 
  ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 0f6b075 
  ambari-server/src/main/resources/Ambari-DDL-SQLAnywhere-CREATE.sql 668d1e7 
  ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql d7afe73 
  ambari-server/src/main/resources/key_properties.json 5d76062 
  ambari-server/src/main/resources/properties.json 11ca7f6 
  ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalogHelper.java 58d4c3e 
  ambari-web/app/app.js 2c638e4 
  ambari-web/app/controllers/global/update_controller.js 8a3f984 
  ambari-web/app/controllers/main/admin/kerberos/step3_controller.js 15be4f9 
  ambari-web/app/controllers/main/service/add_controller.js c11bcf2 
  ambari-web/app/controllers/wizard/step8_controller.js cc06b5b 
  ambari-web/app/controllers/wizard/step9_controller.js 9f27f65 
  ambari-web/app/mappers/service_mapper.js 3523379 
  ambari-web/app/mappers/service_metrics_mapper.js 87b6149 
  ambari-web/app/mixins/common/configs/configs_saver.js dafee79 
  ambari-web/app/mixins/wizard/wizardProgressPageController.js 9d9d000 
  ambari-web/app/utils/ajax/ajax.js 4a1f9ef 


Diff: https://reviews.apache.org/r/61917/diff/2/

Changes: https://reviews.apache.org/r/61917/diff/1-2/


Testing
-------

Manually tested by deplyoying cluster via UI.


Thanks,

Swapan Shridhar