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

Create ember data model for widget

    XMLWordPrintableJSON

Details

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

    Description

      As a part of this ticket, create an experimental flag under which poll for the widget information from the stack while landing on the service summary page for the first time. Since this is a static information, it is required to be polled just once. This needs to be mapped to a model as described below

      Example API for HDFS service:

      {
        href: "http://c6401.ambari.apache.org:8080/api/v1/stacks/HDP/2.2/services/HDFS/artifacts/widget_layout",
        Artifacts: {
          artifact_name: "widget_order",
          service_name: "HDFS",
          stack_name: "HDP",
          stack_version: "2.2"
        },
      
       artifact_data: {
             name: "HDFS",  // This is the serviceName in the ember-data model
             sections: [ 
               {
                 name: "HDFS_SUMMARY" // This is the sectionName as described in the below ember-data model
                 widgets: [
                   {
                     widget_name: “NAMENODE_HEAP”,
                     widget_type: “GAUGE”,
                     component_name: “NAMENODE”,
                     display_name: "NameNode Heap",
                      expression: [{
                        template: “${jvmMemoryHeapUsed}/${jvmMemoryHeapMax}”
                     }],
                     properties: {
                       “warning_threshold”: 0.5,
                       “error_threshold”:   0.7
                     }
                   }, 
                   {
                     widget_name: "HDFS_BYTES_READ",
                     widget_type: “HEATMAP”,
                     display_name: "HDFS Bytes Read",
                     description: "", 
                     component_name: “DATANODE”,
                     expression: [
                    {
                     template: "${metrics.dfs.datanode.bytes_read}"
                    } 
                 ]
                 properties: {
                   display_unit: "MB",
                   max_limit: "1024"
                 }
                   }      
                 ]
               }
             ]  
           },
           
             ]  
           }
         ]
       }  
      }
      
      
      App.Widget = DS.Model.extend({
        widgetName: DS.attr('string'),
        defaultOrder: "" // This field is not derived from API but needs to be filled in the mapper on the client side
        widgetType: DS.attr('string'),
        displayName: DS.attr('string'),
        serviceName: DS.attr('string'),
        componentName: DS.attr('string'),
        timeCreated: DS.attr('number'),
        sectionName: DS.attr('string'), 
        author: DS.attr('string'),
        properties: DS.attr('object'),
        expression: DS.attr('array')
      });
      

      Attachments

        1. AMBARI-10102.patch
          9 kB
          Andrii Tkach

        Activity

          People

            atkach Andrii Tkach
            atkach Andrii Tkach
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: