Antonenko Alexander created AMBARI-6624:
-------------------------------------------
Summary: Make validation for minimum required number of service
components from cardinality field of stacks API
Key: AMBARI-6624
URL: https://issues.apache.org/jira/browse/AMBARI-6624
Project: Ambari
Issue Type: Task
Components: client
Affects Versions: 1.7.0
Reporter: Antonenko Alexander
Assignee: Antonenko Alexander
Fix For: 1.7.0
web-ui imposes validation for minimum limit of host components required to be
installed for a service. Right now it is *1* for all *master components*
*except* ZK server and HBase Master. So on "Assign Master" page UI doesn't show
"+" sign next to any service component except ZK server and HBase master.
For now for Slave components, the minimum limit is *1* and maximum limit is
"ALL". So If user does not select any host, web-ui throws validation error
asking user to atleast select one host.
As a resolution to this ticket, this validation logic needs to be fetched from
the server. Stacks API has cardinality field
{code}
{
"href" :
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.1/stackServices/HDFS/components?fields=StackServiceComponents/cardinality",
"items" : [
{
"href" :
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.1/services/HDFS/components/DATANODE",
"StackServiceComponents" : {
"cardinality" : "1+",
"component_name" : "DATANODE",
"service_name" : "HDFS",
"stack_name" : "HDP",
"stack_version" : "2.1"
}
},
{
"href" :
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.1/services/HDFS/components/HDFS_CLIENT",
"StackServiceComponents" : {
"cardinality" : "0+",
"component_name" : "HDFS_CLIENT",
"service_name" : "HDFS",
"stack_name" : "HDP",
"stack_version" : "2.1"
}
},
{
"href" :
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.1/services/HDFS/components/JOURNALNODE",
"StackServiceComponents" : {
"cardinality" : "0+",
"component_name" : "JOURNALNODE",
"service_name" : "HDFS",
"stack_name" : "HDP",
"stack_version" : "2.1"
}
},
{
"href" :
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.1/services/HDFS/components/NAMENODE",
"StackServiceComponents" : {
"cardinality" : "1",
"component_name" : "NAMENODE",
"service_name" : "HDFS",
"stack_name" : "HDP",
"stack_version" : "2.1"
}
},
{
"href" :
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.1/services/HDFS/components/SECONDARY_NAMENODE",
"StackServiceComponents" : {
"cardinality" : "1",
"component_name" : "SECONDARY_NAMENODE",
"service_name" : "HDFS",
"stack_name" : "HDP",
"stack_version" : "2.1"
}
},
{
"href" :
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.1/services/HDFS/components/ZKFC",
"StackServiceComponents" : {
"cardinality" : "0+",
"component_name" : "ZKFC",
"service_name" : "HDFS",
"stack_name" : "HDP",
"stack_version" : "2.1"
}
}
]
}
{code}
cardinality can also have value "ALL" which means service component should be
installed on all hosts of the cluster
{code}
{
"href" :
"http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/versions/2.1/services/GANGLIA/components/GANGLIA_MONITOR?fields=StackServiceComponents/cardinality",
"StackServiceComponents" : {
"cardinality" : "ALL",
"component_name" : "GANGLIA_MONITOR",
"service_name" : "GANGLIA",
"stack_name" : "HDP",
"stack_version" : "2.1"
}
}
{code}
We should not require hard-coded map in App.StackServiceComponent.cardinality
function once this ticket is resolved
--
This message was sent by Atlassian JIRA
(v6.2#6252)