You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@ambari.apache.org by "Swapan Shridhar (JIRA)" <ji...@apache.org> on 2017/10/17 23:58:00 UTC

[jira] [Resolved] (AMBARI-21824) Make services as sub-resource of ServiceGroups and use Servicegroup while doing Creation, Update and retrieval of HostComponents and ServiceComponents.

     [ https://issues.apache.org/jira/browse/AMBARI-21824?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Swapan Shridhar resolved AMBARI-21824.
--------------------------------------
    Resolution: Fixed

> Make services as sub-resource of ServiceGroups and use Servicegroup while doing Creation, Update and retrieval of HostComponents and ServiceComponents.
> -------------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMBARI-21824
>                 URL: https://issues.apache.org/jira/browse/AMBARI-21824
>             Project: Ambari
>          Issue Type: Task
>          Components: ambari-server, ambari-web
>    Affects Versions: 3.0.0
>            Reporter: Swapan Shridhar
>            Assignee: Swapan Shridhar
>             Fix For: 3.0.0
>
>         Attachments: AMBARI-21824.1.patch
>
>
> 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}
> -----------------------------------------------------------------------------------------------------------------------------------------------------------------------



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)