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)

Reply via email to