Repository: ambari
Updated Branches:
  refs/heads/trunk cf62f66a1 -> 5c4e25e2b


AMBARI-11031. Widgets with same widgetName in different layout are not created.


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/5c4e25e2
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/5c4e25e2
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/5c4e25e2

Branch: refs/heads/trunk
Commit: 5c4e25e2b109c004bd2e85c038cf4aa04965c1e1
Parents: cf62f66
Author: Siddharth Wagle <swa...@hortonworks.com>
Authored: Fri May 8 10:01:28 2015 -0700
Committer: Siddharth Wagle <swa...@hortonworks.com>
Committed: Fri May 8 10:01:28 2015 -0700

----------------------------------------------------------------------
 .../AmbariManagementControllerImpl.java          | 11 ++++++++---
 .../ambari/server/controller/WidgetResponse.java |  2 +-
 .../internal/WidgetResourceProvider.java         |  6 ------
 .../apache/ambari/server/orm/dao/WidgetDAO.java  |  3 ++-
 .../ambari/server/orm/entities/WidgetEntity.java | 19 ++++++++++++-------
 .../server/state/stack/WidgetLayoutInfo.java     | 14 +++++++-------
 .../ambari/server/upgrade/UpgradeCatalog210.java |  2 +-
 .../main/resources/Ambari-DDL-MySQL-CREATE.sql   |  2 +-
 .../main/resources/Ambari-DDL-Oracle-CREATE.sql  |  2 +-
 .../resources/Ambari-DDL-Postgres-CREATE.sql     |  2 +-
 .../Ambari-DDL-Postgres-EMBEDDED-CREATE.sql      |  2 +-
 .../resources/Ambari-DDL-SQLServer-CREATE.sql    |  2 +-
 .../HBASE/0.96.0.2.0/widgets.json                | 10 ++++++++++
 .../common-services/HDFS/2.1.0.2.0/widgets.json  |  4 ++--
 .../YARN/2.1.0.2.0/YARN_widgets.json             |  9 ++++++---
 .../AmbariManagementControllerTest.java          |  1 +
 .../internal/WidgetResourceProviderTest.java     | 13 +++----------
 .../ambari/server/orm/dao/WidgetDAOTest.java     |  8 +++++++-
 .../server/orm/dao/WidgetLayoutDAOTest.java      |  2 +-
 .../stacks/OTHER/2.0/services/HBASE/widgets.json |  8 +++-----
 20 files changed, 69 insertions(+), 53 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
index ccf1705..bb8f088 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
@@ -4014,7 +4014,8 @@ public class AmbariManagementControllerImpl implements 
AmbariManagementControlle
   private WidgetEntity addIfNotExistsWidgetEntity(WidgetLayoutInfo layoutInfo, 
ClusterEntity clusterEntity,
                                           String user, long createTime) {
     List<WidgetEntity> createdEntities =
-      widgetDAO.findByName(clusterEntity.getClusterId(), 
layoutInfo.getWidgetName(), user);
+      widgetDAO.findByName(clusterEntity.getClusterId(), 
layoutInfo.getWidgetName(),
+              user, layoutInfo.getDefaultSectionName());
 
     if (createdEntities == null || createdEntities.isEmpty()) {
       WidgetEntity widgetEntity = new WidgetEntity();
@@ -4022,7 +4023,7 @@ public class AmbariManagementControllerImpl implements 
AmbariManagementControlle
       widgetEntity.setClusterEntity(clusterEntity);
       widgetEntity.setScope(WidgetResourceProvider.SCOPE.CLUSTER.name());
       widgetEntity.setWidgetName(layoutInfo.getWidgetName());
-      widgetEntity.setDisplayName(layoutInfo.getDisplayName());
+      widgetEntity.setDefaultSectionName(layoutInfo.getDefaultSectionName());
       widgetEntity.setAuthor(user);
       widgetEntity.setDescription(layoutInfo.getDescription());
       widgetEntity.setTimeCreated(createTime);
@@ -4035,7 +4036,8 @@ public class AmbariManagementControllerImpl implements 
AmbariManagementControlle
         "cluster = " + clusterEntity.getClusterName());
       widgetDAO.create(widgetEntity);
 
-      createdEntities = widgetDAO.findByName(clusterEntity.getClusterId(), 
layoutInfo.getWidgetName(), user);
+      createdEntities = widgetDAO.findByName(clusterEntity.getClusterId(), 
layoutInfo.getWidgetName(),
+              user, layoutInfo.getDefaultSectionName());
       if (createdEntities != null && !createdEntities.isEmpty()) {
         return createdEntities.iterator().next();
       }
@@ -4076,6 +4078,9 @@ public class AmbariManagementControllerImpl implements 
AmbariManagementControlle
           List<WidgetLayoutUserWidgetEntity> widgetLayoutUserWidgetEntityList 
= new LinkedList<WidgetLayoutUserWidgetEntity>();
           int order = 0;
           for (WidgetLayoutInfo layoutInfo : 
widgetLayout.getWidgetLayoutInfoList()) {
+            if (layoutInfo.getDefaultSectionName() == null) {
+              layoutInfo.setDefaultSectionName(layoutEntity.getSectionName());
+            }
             WidgetEntity widgetEntity = addIfNotExistsWidgetEntity(layoutInfo, 
clusterEntity, user, now);
             // Add to layout if visibility is true and widget was newly added
             if (widgetEntity != null && layoutInfo.isVisible()) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/java/org/apache/ambari/server/controller/WidgetResponse.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/WidgetResponse.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/WidgetResponse.java
index 9d8c95d..f7809e3 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/WidgetResponse.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/WidgetResponse.java
@@ -169,7 +169,7 @@ public class WidgetResponse {
     response.setMetrics(entity.getMetrics());
     response.setTimeCreated(entity.getTimeCreated());
     response.setAuthor(entity.getAuthor());
-    response.setDisplayName(entity.getDisplayName());
+    response.setDisplayName(entity.getDefaultSectionName());
     response.setScope(entity.getScope());
     response.setWidgetValues(entity.getWidgetValues());
     response.setProperties(entity.getProperties());

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetResourceProvider.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetResourceProvider.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetResourceProvider.java
index 48a0d67..64bb94c 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetResourceProvider.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/WidgetResourceProvider.java
@@ -62,7 +62,6 @@ public class WidgetResourceProvider extends 
AbstractControllerResourceProvider {
   public static final String WIDGET_ID_PROPERTY_ID                 = 
PropertyHelper.getPropertyId("WidgetInfo", "id");
   public static final String WIDGET_CLUSTER_NAME_PROPERTY_ID                 = 
PropertyHelper.getPropertyId("WidgetInfo", "cluster_name");
   public static final String WIDGET_WIDGET_NAME_PROPERTY_ID                 = 
PropertyHelper.getPropertyId("WidgetInfo", "widget_name");
-  public static final String WIDGET_DISPLAY_NAME_PROPERTY_ID                 = 
PropertyHelper.getPropertyId("WidgetInfo", "display_name");
   public static final String WIDGET_WIDGET_TYPE_PROPERTY_ID                 = 
PropertyHelper.getPropertyId("WidgetInfo", "widget_type");
   public static final String WIDGET_TIME_CREATED_PROPERTY_ID                 = 
PropertyHelper.getPropertyId("WidgetInfo", "time_created");
   public static final String WIDGET_AUTHOR_PROPERTY_ID                 = 
PropertyHelper.getPropertyId("WidgetInfo", "author");
@@ -88,7 +87,6 @@ public class WidgetResourceProvider extends 
AbstractControllerResourceProvider {
     {
       add(WIDGET_ID_PROPERTY_ID);
       add(WIDGET_WIDGET_NAME_PROPERTY_ID);
-      add(WIDGET_DISPLAY_NAME_PROPERTY_ID);
       add(WIDGET_WIDGET_TYPE_PROPERTY_ID);
       add(WIDGET_TIME_CREATED_PROPERTY_ID);
       add(WIDGET_CLUSTER_NAME_PROPERTY_ID);
@@ -141,7 +139,6 @@ public class WidgetResourceProvider extends 
AbstractControllerResourceProvider {
           final String[] requiredProperties = {
               WIDGET_CLUSTER_NAME_PROPERTY_ID,
               WIDGET_WIDGET_NAME_PROPERTY_ID,
-              WIDGET_DISPLAY_NAME_PROPERTY_ID,
               WIDGET_WIDGET_TYPE_PROPERTY_ID,
               WIDGET_SCOPE_PROPERTY_ID
           };
@@ -158,11 +155,9 @@ public class WidgetResourceProvider extends 
AbstractControllerResourceProvider {
             throw new AmbariException("Only cluster operator can create 
widgets with cluster scope");
           }
 
-          
entity.setDisplayName(properties.get(WIDGET_DISPLAY_NAME_PROPERTY_ID).toString());
           
entity.setWidgetName(properties.get(WIDGET_WIDGET_NAME_PROPERTY_ID).toString());
           
entity.setWidgetType(properties.get(WIDGET_WIDGET_TYPE_PROPERTY_ID).toString());
           
entity.setClusterId(getManagementController().getClusters().getCluster(clusterName).getClusterId());
-          
entity.setDisplayName(properties.get(WIDGET_DISPLAY_NAME_PROPERTY_ID).toString());
           entity.setScope(scope);
 
           String metrics = 
(properties.containsKey(WIDGET_METRICS_PROPERTY_ID)) ?
@@ -240,7 +235,6 @@ public class WidgetResourceProvider extends 
AbstractControllerResourceProvider {
       setResourceProperty(resource, WIDGET_TIME_CREATED_PROPERTY_ID, 
entity.getTimeCreated(), requestedIds);
       resource.setProperty(WIDGET_AUTHOR_PROPERTY_ID, entity.getAuthor());
       setResourceProperty(resource, WIDGET_DESCRIPTION_PROPERTY_ID, 
entity.getDescription(), requestedIds);
-      resource.setProperty(WIDGET_DISPLAY_NAME_PROPERTY_ID, 
entity.getDisplayName());
       resource.setProperty(WIDGET_SCOPE_PROPERTY_ID, entity.getScope());
       setResourceProperty(resource, WIDGET_VALUES_PROPERTY_ID, 
entity.getWidgetValues(), requestedIds);
       setResourceProperty(resource, WIDGET_PROPERTIES_PROPERTY_ID, 
entity.getProperties(), requestedIds);

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/WidgetDAO.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/WidgetDAO.java 
b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/WidgetDAO.java
index dd41bd5..93fd7c2 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/WidgetDAO.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/orm/dao/WidgetDAO.java
@@ -63,12 +63,13 @@ public class WidgetDAO {
   }
 
   @RequiresSession
-  public List<WidgetEntity> findByName(Long clusterId, String widgetName, 
String author) {
+  public List<WidgetEntity> findByName(Long clusterId, String widgetName, 
String author, String defaultSectionName) {
     TypedQuery<WidgetEntity> query = entityManagerProvider.get()
       .createNamedQuery("WidgetEntity.findByName", WidgetEntity.class);
     query.setParameter("clusterId", clusterId);
     query.setParameter("widgetName", widgetName);
     query.setParameter("author", author);
+    query.setParameter("defaultSectionName", defaultSectionName);
 
     return daoUtils.selectList(query);
   }

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetEntity.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetEntity.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetEntity.java
index b65a87b..8710e5d 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetEntity.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/orm/entities/WidgetEntity.java
@@ -47,7 +47,12 @@ import java.util.List;
 @NamedQueries({
     @NamedQuery(name = "WidgetEntity.findAll", query = "SELECT widget FROM 
WidgetEntity widget"),
     @NamedQuery(name = "WidgetEntity.findByCluster", query = "SELECT widget 
FROM WidgetEntity widget WHERE widget.clusterId = :clusterId"),
-    @NamedQuery(name = "WidgetEntity.findByName", query = "SELECT widget FROM 
WidgetEntity widget WHERE widget.clusterId = :clusterId AND widget.widgetName = 
:widgetName AND widget.author = :author"),
+    @NamedQuery(name = "WidgetEntity.findByName", query =
+            "SELECT widget FROM WidgetEntity widget " +
+                    "WHERE widget.clusterId = :clusterId " +
+                    "AND widget.widgetName = :widgetName " +
+                    "AND widget.author = :author " +
+                    "AND widget.defaultSectionName = :defaultSectionName"),
     @NamedQuery(name = "WidgetEntity.findBySectionName", query =
                 "SELECT widget FROM WidgetEntity widget " +
                 "INNER JOIN widget.listWidgetLayoutUserWidgetEntity 
widgetLayoutUserWidget " +
@@ -84,8 +89,8 @@ public class WidgetEntity {
   @Column(name = "description", length = 255)
   private String description;
 
-  @Column(name = "display_name",  length = 255)
-  private String displayName;
+  @Column(name = "default_section_name",  length = 255, nullable = true)
+  private String defaultSectionName;
 
   @Column(name = "scope", length = 255)
   private String scope;
@@ -166,12 +171,12 @@ public class WidgetEntity {
     this.description = description;
   }
 
-  public String getDisplayName() {
-    return displayName;
+  public String getDefaultSectionName() {
+    return defaultSectionName;
   }
 
-  public void setDisplayName(String displayName) {
-    this.displayName = displayName;
+  public void setDefaultSectionName(String displayName) {
+    this.defaultSectionName = displayName;
   }
 
   public String getScope() {

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/java/org/apache/ambari/server/state/stack/WidgetLayoutInfo.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/WidgetLayoutInfo.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/WidgetLayoutInfo.java
index 49b8fe9..385a873 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/state/stack/WidgetLayoutInfo.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/state/stack/WidgetLayoutInfo.java
@@ -26,8 +26,8 @@ import java.util.Map;
 public class WidgetLayoutInfo {
   @SerializedName("widget_name")
   private String widgetName;
-  @SerializedName("display_name")
-  private String displayName;
+  @SerializedName("default_section_name")
+  private String defaultSectionName = null;
   @SerializedName("description")
   private String description;
   @SerializedName("widget_type")
@@ -50,13 +50,13 @@ public class WidgetLayoutInfo {
     this.widgetName = widgetName;
   }
 
-  @JsonProperty("display_name")
-  public String getDisplayName() {
-    return displayName;
+  @JsonProperty("default_section_name")
+  public String getDefaultSectionName() {
+    return defaultSectionName;
   }
 
-  public void setDisplayName(String displayName) {
-    this.displayName = displayName;
+  public void setDefaultSectionName(String defaultSectionName) {
+    this.defaultSectionName = defaultSectionName;
   }
 
   @JsonProperty("description")

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java
 
b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java
index ccc0d51..c27849b 100644
--- 
a/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java
+++ 
b/ambari-server/src/main/java/org/apache/ambari/server/upgrade/UpgradeCatalog210.java
@@ -501,7 +501,7 @@ public class UpgradeCatalog210 extends 
AbstractUpgradeCatalog {
     columns.add(new DBColumnInfo("time_created", Long.class,  null,   null, 
false));
     columns.add(new DBColumnInfo("author", String.class,  255,   null, true));
     columns.add(new DBColumnInfo("description", String.class,  255,   null, 
true));
-    columns.add(new DBColumnInfo("display_name", String.class,  255,   null, 
true));
+    columns.add(new DBColumnInfo("default_section_name", String.class,  255,   
null, true));
     columns.add(new DBColumnInfo("scope", String.class,  255,   null, true));
     columns.add(new DBColumnInfo("widget_values", byte[].class,  null,   null, 
true));
     columns.add(new DBColumnInfo("properties", byte[].class, null, null, 
true));

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql 
b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
index 91173a0..7827df4 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-MySQL-CREATE.sql
@@ -549,7 +549,7 @@ CREATE TABLE widget (
   time_created BIGINT NOT NULL,
   author VARCHAR(255),
   description VARCHAR(255),
-  display_name VARCHAR(255),
+  default_section_name VARCHAR(255),
   scope VARCHAR(255),
   widget_values LONGTEXT,
   properties LONGTEXT,

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql 
b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
index cca6caa..5d79618 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Oracle-CREATE.sql
@@ -539,7 +539,7 @@ CREATE TABLE widget (
   time_created NUMBER(19) NOT NULL,
   author VARCHAR2(255),
   description VARCHAR2(255),
-  display_name VARCHAR2(255),
+  default_section_name VARCHAR2(255),
   scope VARCHAR2(255),
   widget_values CLOB,
   properties CLOB,

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql 
b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
index 5983bc5..9ab65c3 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Postgres-CREATE.sql
@@ -548,7 +548,7 @@ CREATE TABLE widget (
   time_created BIGINT NOT NULL,
   author VARCHAR(255),
   description VARCHAR(255),
-  display_name VARCHAR(255),
+  default_section_name VARCHAR(255),
   scope VARCHAR(255),
   widget_values TEXT,
   properties TEXT,

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql 
b/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
index defc154..cbe47f7 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-Postgres-EMBEDDED-CREATE.sql
@@ -624,7 +624,7 @@ CREATE TABLE ambari.widget (
   time_created BIGINT NOT NULL,
   author VARCHAR(255),
   description VARCHAR(255),
-  display_name VARCHAR(255),
+  default_section_name VARCHAR(255),
   scope VARCHAR(255),
   widget_values TEXT,
   properties TEXT,

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql 
b/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql
index a8cb7c1..860eed7 100644
--- a/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql
+++ b/ambari-server/src/main/resources/Ambari-DDL-SQLServer-CREATE.sql
@@ -667,7 +667,7 @@ CREATE TABLE widget (
   time_created BIGINT NOT NULL,
   author VARCHAR(255),
   description VARCHAR(255),
-  display_name VARCHAR(255),
+  default_section_name VARCHAR(255),
   scope VARCHAR(255),
   widget_values VARCHAR(4000),
   properties VARCHAR(4000),

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/widgets.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/widgets.json
 
b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/widgets.json
index 42087b4..1601798 100644
--- 
a/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/widgets.json
+++ 
b/ambari-server/src/main/resources/common-services/HBASE/0.96.0.2.0/widgets.json
@@ -8,6 +8,7 @@
         {
           "widget_name": "Reads and Writes",
           "description": "This widget shows all the read requests and write 
requests on all regions for a RegionServer",
+          "default_section_name": "HBASE_SUMMARY",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -61,6 +62,7 @@
         {
           "widget_name": "Read Latency",
           "description": "Widget shows 95% Read Latency",
+          "default_section_name": "HBASE_SUMMARY",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -86,6 +88,7 @@
         {
           "widget_name": "Write Latency",
           "description": "This widget shows 95th percentile of the write 
latency.",
+          "default_section_name": "HBASE_SUMMARY",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -141,6 +144,7 @@
         {
           "widget_name": "Open Connections",
           "description": "This widget shows number of current open 
connections",
+          "default_section_name": "HBASE_SUMMARY",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -167,6 +171,7 @@
         {
           "widget_name": "Request Handlers",
           "widget_type": "GRAPH",
+          "default_section_name": "HBASE_SUMMARY",
           "is_visible": true,
           "metrics": [
             {
@@ -200,6 +205,7 @@
         {
           "widget_name": "Files Local",
           "description": "This widget shows weighted average for local files.",
+          "default_section_name": "HBASE_SUMMARY",
           "widget_type": "NUMBER",
           "is_visible": true,
           "metrics": [
@@ -225,6 +231,7 @@
         {
           "widget_name": "Blocked Updates",
           "description": "Number of milliseconds updates have been blocked so 
the memstore can be flushed",
+          "default_section_name": "HBASE_SUMMARY",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -250,6 +257,7 @@
         {
           "widget_name": "Cluster CPU",
           "description": "ReqionServer widget for CPU utilization",
+          "default_section_name": "HBASE_SUMMARY",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -299,6 +307,7 @@
         {
           "widget_name": "Cluster Network",
           "description": "ReqionServer widget for network utilization",
+          "default_section_name": "HBASE_SUMMARY",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -333,6 +342,7 @@
         {
           "widget_name": "Cluster Disk",
           "description": "ReqionServer widget for Disk utilization",
+          "default_section_name": "HBASE_SUMMARY",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/widgets.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/widgets.json 
b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/widgets.json
index 6e52d03..e2fdcb0 100644
--- 
a/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/widgets.json
+++ 
b/ambari-server/src/main/resources/common-services/HDFS/2.1.0.2.0/widgets.json
@@ -359,7 +359,7 @@
       "widgetLayoutInfo": [
         {
           "widget_name": "HDFS Bytes Read",
-          "display_name": "HDFS Bytes Read",
+          "default_section_name": "HDFS_HEATMAPS",
           "description": "",
           "widget_type": "HEATMAP",
           "is_visible": true,
@@ -480,7 +480,7 @@
         },
         {
           "widget_name": "DataNode Process Disk I/O Utilization",
-          "display_name": "DataNode Process Disk I/O Utilization",
+          "default_section_name": "HDFS_HEATMAPS",
           "description": "",
           "widget_type": "HEATMAP",
           "is_visible": false,

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/YARN_widgets.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/YARN_widgets.json
 
b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/YARN_widgets.json
index a4f35b9..767c678 100644
--- 
a/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/YARN_widgets.json
+++ 
b/ambari-server/src/main/resources/common-services/YARN/2.1.0.2.0/YARN_widgets.json
@@ -268,8 +268,9 @@
           }
         },
         {
-          "widget_name": "Cluster(NodeManager) Disk",
+          "widget_name": "Cluster Disk",
           "description": "NodeManager widget for disk utilization",
+          "default_section_name": "YARN_SUMMARY",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -298,8 +299,9 @@
           }
         },
         {
-          "widget_name": "Cluster(NodeManager) Network",
+          "widget_name": "Cluster Network",
           "description": "NodeManager widget for network utilization",
+          "default_section_name": "YARN_SUMMARY",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [
@@ -332,8 +334,9 @@
           }
         },
         {
-          "widget_name": "Cluster(NodeManager) CPU",
+          "widget_name": "Cluster CPU",
           "description": "NodeManager widget for CPU utilization",
+          "default_section_name": "YARN_SUMMARY",
           "widget_type": "GRAPH",
           "is_visible": true,
           "metrics": [

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
index da61db2..14dc186 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
@@ -10434,6 +10434,7 @@ public class AmbariManagementControllerTest {
     Assert.assertEquals("OPEN_CONNECTIONS", 
layoutUserWidgetEntities.get(1).getWidget().getWidgetName());
     Assert.assertEquals("FILES_LOCAL", 
layoutUserWidgetEntities.get(2).getWidget().getWidgetName());
     Assert.assertEquals("UPDATED_BLOCKED_TIME", 
layoutUserWidgetEntities.get(3).getWidget().getWidgetName());
+    Assert.assertEquals("HBASE_SUMMARY", 
layoutUserWidgetEntities.get(0).getWidget().getDefaultSectionName());
   }
 
   // this is a temporary measure as a result of moving updateHostComponents 
from AmbariManagementController

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetResourceProviderTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetResourceProviderTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetResourceProviderTest.java
index a79fd16..244049c 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetResourceProviderTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/WidgetResourceProviderTest.java
@@ -107,7 +107,6 @@ public class WidgetResourceProviderTest {
     Request request = PropertyHelper.getReadRequest(
       WidgetResourceProvider.WIDGET_ID_PROPERTY_ID,
       WidgetResourceProvider.WIDGET_WIDGET_NAME_PROPERTY_ID,
-      WidgetResourceProvider.WIDGET_DISPLAY_NAME_PROPERTY_ID,
       WidgetResourceProvider.WIDGET_WIDGET_TYPE_PROPERTY_ID,
       WidgetResourceProvider.WIDGET_TIME_CREATED_PROPERTY_ID,
       WidgetResourceProvider.WIDGET_CLUSTER_NAME_PROPERTY_ID,
@@ -143,7 +142,6 @@ public class WidgetResourceProviderTest {
     Assert.assertEquals("GAUGE", 
r.getPropertyValue(WidgetResourceProvider.WIDGET_WIDGET_TYPE_PROPERTY_ID));
     Assert.assertEquals("USER", 
r.getPropertyValue(WidgetResourceProvider.WIDGET_SCOPE_PROPERTY_ID));
     Assert.assertEquals("username", 
r.getPropertyValue(WidgetResourceProvider.WIDGET_AUTHOR_PROPERTY_ID));
-    Assert.assertEquals("displ_name", 
r.getPropertyValue(WidgetResourceProvider.WIDGET_DISPLAY_NAME_PROPERTY_ID));
     Assert.assertEquals("widget name", 
r.getPropertyValue(WidgetResourceProvider.WIDGET_WIDGET_NAME_PROPERTY_ID));
     Object metrics = 
r.getPropertyValue(WidgetResourceProvider.WIDGET_METRICS_PROPERTY_ID);
     Assert.assertEquals("[{\"widget_id\":\"metrics/jvm/HeapMemoryUsed\"," +
@@ -187,7 +185,6 @@ public class WidgetResourceProviderTest {
     Map<String, Object> requestProps = new HashMap<String, Object>();
     requestProps.put(WidgetResourceProvider.WIDGET_CLUSTER_NAME_PROPERTY_ID, 
"c1");
     requestProps.put(WidgetResourceProvider.WIDGET_WIDGET_NAME_PROPERTY_ID, 
"widget name");
-    requestProps.put(WidgetResourceProvider.WIDGET_DISPLAY_NAME_PROPERTY_ID, 
"display_name");
     requestProps.put(WidgetResourceProvider.WIDGET_WIDGET_TYPE_PROPERTY_ID, 
"GAUGE");
     requestProps.put(WidgetResourceProvider.WIDGET_AUTHOR_PROPERTY_ID, 
"admin");
     requestProps.put(WidgetResourceProvider.WIDGET_SCOPE_PROPERTY_ID, "USER");
@@ -212,7 +209,7 @@ public class WidgetResourceProviderTest {
     Assert.assertEquals(Long.valueOf(1), entity.getClusterId());
     Assert.assertEquals("USER", entity.getScope());
     Assert.assertEquals("widget name", entity.getWidgetName());
-    Assert.assertEquals("display_name", entity.getDisplayName());
+    Assert.assertEquals(null, entity.getDefaultSectionName());
     Assert.assertEquals("GAUGE", entity.getWidgetType());
     Assert.assertEquals("admin", entity.getAuthor());
     Assert.assertEquals("[{\"name\":\"value\",\"name2\":\"value2\"}]", 
entity.getMetrics());
@@ -243,7 +240,6 @@ public class WidgetResourceProviderTest {
     Map<String, Object> requestProps = new HashMap<String, Object>();
     requestProps.put(WidgetResourceProvider.WIDGET_CLUSTER_NAME_PROPERTY_ID, 
"c1");
     requestProps.put(WidgetResourceProvider.WIDGET_WIDGET_NAME_PROPERTY_ID, 
"widget name");
-    requestProps.put(WidgetResourceProvider.WIDGET_DISPLAY_NAME_PROPERTY_ID, 
"display_name");
     requestProps.put(WidgetResourceProvider.WIDGET_WIDGET_TYPE_PROPERTY_ID, 
"GAUGE");
     requestProps.put(WidgetResourceProvider.WIDGET_AUTHOR_PROPERTY_ID, 
"admin");
     requestProps.put(WidgetResourceProvider.WIDGET_SCOPE_PROPERTY_ID, "USER");
@@ -289,7 +285,6 @@ public class WidgetResourceProviderTest {
     requestProps.put(WidgetResourceProvider.WIDGET_ID_PROPERTY_ID, "1");
     requestProps.put(WidgetResourceProvider.WIDGET_CLUSTER_NAME_PROPERTY_ID, 
"c1");
     requestProps.put(WidgetResourceProvider.WIDGET_WIDGET_NAME_PROPERTY_ID, 
"widget name2");
-    requestProps.put(WidgetResourceProvider.WIDGET_DISPLAY_NAME_PROPERTY_ID, 
"display_name");
     requestProps.put(WidgetResourceProvider.WIDGET_WIDGET_TYPE_PROPERTY_ID, 
"GAUGE");
     requestProps.put(WidgetResourceProvider.WIDGET_AUTHOR_PROPERTY_ID, 
"admin");
     requestProps.put(WidgetResourceProvider.WIDGET_SCOPE_PROPERTY_ID, "USER");
@@ -313,7 +308,7 @@ public class WidgetResourceProviderTest {
     
Assert.assertEquals("[{\"name\":\"new_value\",\"new_name\":\"new_value2\"}]",entity.getMetrics());
     
Assert.assertEquals("{\"new_property\":\"new_value2\",\"property1\":\"new_value1\"}",entity.getProperties());
     Assert.assertEquals("widget name2",entity.getWidgetName());
-    Assert.assertEquals("display_name",entity.getDisplayName());
+    Assert.assertEquals(null,entity.getDefaultSectionName());
 
     verify(amc, clusters, cluster, dao);
   }
@@ -341,7 +336,6 @@ public class WidgetResourceProviderTest {
     Map<String, Object> requestProps = new HashMap<String, Object>();
     requestProps.put(WidgetResourceProvider.WIDGET_CLUSTER_NAME_PROPERTY_ID, 
"c1");
     requestProps.put(WidgetResourceProvider.WIDGET_WIDGET_NAME_PROPERTY_ID, 
"widget name");
-    requestProps.put(WidgetResourceProvider.WIDGET_DISPLAY_NAME_PROPERTY_ID, 
"display_name");
     requestProps.put(WidgetResourceProvider.WIDGET_WIDGET_TYPE_PROPERTY_ID, 
"GAUGE");
     requestProps.put(WidgetResourceProvider.WIDGET_AUTHOR_PROPERTY_ID, 
"admin");
     requestProps.put(WidgetResourceProvider.WIDGET_SCOPE_PROPERTY_ID, "USER");
@@ -406,7 +400,6 @@ public class WidgetResourceProviderTest {
     Map<String, Object> requestProps = new HashMap<String, Object>();
     requestProps.put(WidgetResourceProvider.WIDGET_CLUSTER_NAME_PROPERTY_ID, 
"c1");
     requestProps.put(WidgetResourceProvider.WIDGET_WIDGET_NAME_PROPERTY_ID, 
"widget name");
-    requestProps.put(WidgetResourceProvider.WIDGET_DISPLAY_NAME_PROPERTY_ID, 
"display_name");
     requestProps.put(WidgetResourceProvider.WIDGET_WIDGET_TYPE_PROPERTY_ID, 
"GAUGE");
     requestProps.put(WidgetResourceProvider.WIDGET_AUTHOR_PROPERTY_ID, 
"admin");
     requestProps.put(WidgetResourceProvider.WIDGET_SCOPE_PROPERTY_ID, 
"CLUSTER");
@@ -440,7 +433,7 @@ public class WidgetResourceProviderTest {
     widgetEntity.setWidgetType("GAUGE");
     widgetEntity.setAuthor("username");
     widgetEntity.setScope("USER");
-    widgetEntity.setDisplayName("displ_name");
+    widgetEntity.setDefaultSectionName("default_section_name");
     widgetEntity.setDescription("Description");
     widgetEntity.setMetrics("[{\"widget_id\":\"metrics/jvm/HeapMemoryUsed\"," +
             
"\"host_component_criteria\":\"host_components/metrics/dfs/FSNamesystem/HAState\\u003dactive\","
 +

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/WidgetDAOTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/WidgetDAOTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/WidgetDAOTest.java
index 66e68e7..38bbbaf 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/WidgetDAOTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/WidgetDAOTest.java
@@ -61,8 +61,8 @@ public class WidgetDAOTest {
   private void createRecords() {
     for (int i=0; i<3; i++) {
       WidgetEntity widgetEntity = new WidgetEntity();
-      widgetEntity.setDisplayName("display name" + i);
       widgetEntity.setAuthor("author");
+      widgetEntity.setDefaultSectionName("section_name");
       widgetEntity.setClusterId(clusterId);
       widgetEntity.setMetrics("metrics");
       widgetEntity.setDescription("description");
@@ -113,6 +113,12 @@ public class WidgetDAOTest {
     Assert.assertEquals(3, widgetDAO.findAll().size());
   }
 
+  @Test
+  public void testFindByName() {
+    createRecords();
+    Assert.assertEquals(1, widgetDAO.findByName(clusterId, "widget0", 
"author", "section_name").size());
+  }
+
   @After
   public void after() {
     injector.getInstance(PersistService.class).stop();

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/WidgetLayoutDAOTest.java
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/WidgetLayoutDAOTest.java
 
b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/WidgetLayoutDAOTest.java
index b74bea4..b3badb1 100644
--- 
a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/WidgetLayoutDAOTest.java
+++ 
b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/WidgetLayoutDAOTest.java
@@ -79,7 +79,7 @@ public class WidgetLayoutDAOTest {
 
     for (int i=0; i<3; i++) {
       WidgetEntity widgetEntity = new WidgetEntity();
-      widgetEntity.setDisplayName("display name" + i);
+      widgetEntity.setDefaultSectionName("display name" + i);
       widgetEntity.setAuthor("author");
       widgetEntity.setClusterId(clusterId);
       widgetEntity.setMetrics("metrics");

http://git-wip-us.apache.org/repos/asf/ambari/blob/5c4e25e2/ambari-server/src/test/resources/stacks/OTHER/2.0/services/HBASE/widgets.json
----------------------------------------------------------------------
diff --git 
a/ambari-server/src/test/resources/stacks/OTHER/2.0/services/HBASE/widgets.json 
b/ambari-server/src/test/resources/stacks/OTHER/2.0/services/HBASE/widgets.json
index 3d4e7bb..70a7fa0 100644
--- 
a/ambari-server/src/test/resources/stacks/OTHER/2.0/services/HBASE/widgets.json
+++ 
b/ambari-server/src/test/resources/stacks/OTHER/2.0/services/HBASE/widgets.json
@@ -6,7 +6,6 @@
       "widgetLayoutInfo": [
         {
           "widget_name": "RS_READS_WRITES",
-          "display_name": "RegionServer Reads and Writes",
           "description": "This widget shows all the read requests and write 
requests on all regions for a RegionServer",
           "widget_type": "GRAPH",
           "is_visible": true,
@@ -73,7 +72,6 @@
         },
         {
           "widget_name": "OPEN_CONNECTIONS",
-          "display_name": "Open Connections",
           "description": "This widget shows number of current open 
connections",
           "widget_type": "GRAPH",
           "is_visible": true,
@@ -100,7 +98,7 @@
         },
         {
           "widget_name": "ACTIVE_HANDLER",
-          "display_name": "Active Handlers vs Calls in General Queue",
+          "default_section_name": "HBASE_SUMMARY",
           "widget_type": "GRAPH",
           "is_visible": false,
           "metrics": [
@@ -136,7 +134,7 @@
         },
         {
           "widget_name": "FILES_LOCAL",
-          "display_name": "Files Local",
+          "default_section_name": "HBASE_SUMMARY",
           "description": "This widget shows percentage of files local.",
           "widget_type": "NUMBER",
           "is_visible": true,
@@ -161,7 +159,7 @@
         },
         {
           "widget_name": "UPDATED_BLOCKED_TIME",
-          "display_name": "Updated Blocked Time",
+          "default_section_name": "HBASE_SUMMARY",
           "description": "",
           "widget_type": "GRAPH",
           "is_visible": true,

Reply via email to