Uploaded image for project: 'Ambari'
  1. Ambari
  2. AMBARI-6624

Make validation for minimum required number of service components from cardinality field of stacks API

    XMLWordPrintableJSON

Details

    • Task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.7.0
    • 1.7.0
    • ambari-web
    • None

    Description

      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

      {
        "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"
            }
          }
        ]
      }
      

      cardinality can also have value "ALL" which means service component should be installed on all hosts of the cluster

      {
        "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"
        }
      }
      

      We should not require hard-coded map in App.StackServiceComponent.cardinality function once this ticket is resolved

      Attachments

        1. AMBARI-66624.patch
          92 kB
          Antonenko Alexander

        Activity

          People

            aantonenko Antonenko Alexander
            aantonenko Antonenko Alexander
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: