Andrii Tkach created AMBARI-10102:
-------------------------------------

             Summary: Create ember data model for widget
                 Key: AMBARI-10102
                 URL: https://issues.apache.org/jira/browse/AMBARI-10102
             Project: Ambari
          Issue Type: Task
          Components: ambari-web
    Affects Versions: 2.1.0
            Reporter: Andrii Tkach
            Assignee: Andrii Tkach
             Fix For: 2.1.0


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

{code}


{code}
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')
});
{code}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to