You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mr...@apache.org on 2018/09/28 21:20:49 UTC

[ambari] 18/20: [AMBARI-23254] Mpack should have both displayName and description

This is an automated email from the ASF dual-hosted git repository.

mradhakrishnan pushed a commit to branch AMBARI-24711
in repository https://gitbox.apache.org/repos/asf/ambari.git

commit 9360b63c8f12a969f1131268c225d5890bee36cf
Author: Madhuvanthi Radhakrishnan <mr...@hortonworks.com>
AuthorDate: Thu Mar 15 14:40:47 2018 -0700

    [AMBARI-23254] Mpack should have both displayName and description
---
 .../ambari/server/controller/MpackResponse.java    | 10 +++
 .../controller/internal/MpackResourceProvider.java | 23 ++++++
 .../java/org/apache/ambari/server/state/Mpack.java | 96 +++++++++++++++++-----
 3 files changed, 108 insertions(+), 21 deletions(-)

diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/MpackResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/MpackResponse.java
index bc1e47d..70ddabe 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/MpackResponse.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/MpackResponse.java
@@ -36,6 +36,7 @@ public class MpackResponse {
   private Long registryId;
   private String stackId;
   private String description;
+  private String displayName;
 
   public MpackResponse(Mpack mpack) {
     this.id = mpack.getResourceId();
@@ -45,6 +46,7 @@ public class MpackResponse {
     this.mpackUri = mpack.getMpackUri();
     this.registryId = mpack.getRegistryId();
     this.description = mpack.getDescription();
+    this.displayName = mpack.getDisplayName();
   }
 
   public Long getId() {
@@ -111,6 +113,14 @@ public class MpackResponse {
     this.stackId = stackId;
   }
 
+  public String getDisplayName() {
+    return displayName;
+  }
+
+  public void setDisplayName(String displayName) {
+    this.displayName = displayName;
+  }
+
   @Override
   public int hashCode() {
     int result = 1;
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MpackResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MpackResourceProvider.java
index 57e987d..110e0a2 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MpackResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MpackResourceProvider.java
@@ -74,6 +74,7 @@ public class MpackResourceProvider extends AbstractControllerResourceProvider {
   public static final String MPACK_NAME = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "mpack_name";
   public static final String MPACK_VERSION = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "mpack_version";
   public static final String MPACK_DESCRIPTION = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "mpack_description";
+  public static final String MPACK_DISPLAY_NAME = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "mpack_display_name";
   public static final String MPACK_URI = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "mpack_uri";
   public static final String MODULES = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "modules";
   public static final String STACK_NAME_PROPERTY_ID = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "stack_name";
@@ -114,6 +115,7 @@ public class MpackResourceProvider extends AbstractControllerResourceProvider {
     PROPERTY_IDS.add(MODULES);
     PROPERTY_IDS.add(STACK_NAME_PROPERTY_ID);
     PROPERTY_IDS.add(STACK_VERSION_PROPERTY_ID);
+    PROPERTY_IDS.add(MPACK_DISPLAY_NAME);
 
     // keys
     KEY_PROPERTY_IDS.put(Resource.Type.Mpack, MPACK_RESOURCE_ID);
@@ -153,6 +155,7 @@ public class MpackResourceProvider extends AbstractControllerResourceProvider {
         resource.setProperty(MPACK_URI, response.getMpackUri());
         resource.setProperty(MPACK_DESCRIPTION, response.getDescription());
         resource.setProperty(REGISTRY_ID, response.getRegistryId());
+        resource.setProperty(MPACK_DISPLAY_NAME, response.getDisplayName());
         associatedResources.add(resource);
         return getRequestStatus(null, associatedResources);
       }
@@ -241,6 +244,8 @@ public class MpackResourceProvider extends AbstractControllerResourceProvider {
         resource.setProperty(MPACK_URI, response.getMpackUri());
         resource.setProperty(MPACK_DESCRIPTION, response.getDescription());
         resource.setProperty(REGISTRY_ID, response.getRegistryId());
+        resource.setProperty(MPACK_DISPLAY_NAME, response.getDisplayName());
+
         results.add(resource);
       }
     } else {
@@ -293,6 +298,24 @@ public class MpackResourceProvider extends AbstractControllerResourceProvider {
             "Either the management pack ID or the stack name and version are required when searching");
       }
 
+      MpackResponse response = getManagementController().getMpack(mpackId);
+      Resource resource = new ResourceImpl(Resource.Type.Mpack);
+      if (null != response) {
+        resource.setProperty(MPACK_RESOURCE_ID, response.getId());
+        resource.setProperty(MPACK_ID, response.getMpackId());
+        resource.setProperty(MPACK_NAME, response.getMpackName());
+        resource.setProperty(MPACK_VERSION, response.getMpackVersion());
+        resource.setProperty(MPACK_URI, response.getMpackUri());
+        resource.setProperty(MPACK_DESCRIPTION, response.getDescription());
+        resource.setProperty(REGISTRY_ID, response.getRegistryId());
+        resource.setProperty(MPACK_DISPLAY_NAME, response.getDisplayName());
+
+        StackId stackId = new StackId(response.getStackId());
+        resource.setProperty(STACK_NAME_PROPERTY_ID, stackId.getStackName());
+        resource.setProperty(STACK_VERSION_PROPERTY_ID, stackId.getStackVersion());
+        results.add(resource);
+      }
+
       if (results.isEmpty()) {
         throw new NoSuchResourceException(
           "The requested resource doesn't exist: " + predicate);
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/Mpack.java b/ambari-server/src/main/java/org/apache/ambari/server/state/Mpack.java
index 233cd95..3e76338 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/Mpack.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/Mpack.java
@@ -18,9 +18,12 @@
 package org.apache.ambari.server.state;
 
 import com.google.gson.annotations.SerializedName;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.builder.EqualsBuilder;
 
 import java.util.HashMap;
 import java.util.List;
+import java.util.Objects;
 
 /**
  * Represents the state of an mpack.
@@ -59,6 +62,9 @@ public class Mpack {
   @SerializedName("description")
   private String description;
 
+  @SerializedName("displayName")
+  private String displayName;
+
   private String mpackUri;
 
   public Long getResourceId() {
@@ -141,6 +147,54 @@ public class Mpack {
     this.definition = definition;
   }
 
+  public String getDisplayName() {
+    return displayName;
+  }
+
+  public void setDisplayName(String displayName) {
+    this.displayName = displayName;
+  }
+
+  /**
+   * Gets the module with the given name. Module names are service names.
+   *
+   * @param moduleName
+   *          the name of the module.
+   * @return the module or {@code null}.
+   */
+  public Module getModule(String moduleName) {
+    for (Module module : modules) {
+      if (StringUtils.equals(moduleName, module.getName())) {
+        return module;
+      }
+    }
+
+    return null;
+  }
+
+  /**
+   * Gets a component from a given module.
+   *
+   * @param moduleName
+   *          the module (service) name.
+   * @param moduleComponentName
+   *          the name of the component.
+   * @return the component or {@code null}.
+   */
+  public ModuleComponent getModuleComponent(String moduleName, String moduleComponentName) {
+    for (Module module : modules) {
+      ModuleComponent moduleComponent = module.getModuleComponent(moduleComponentName);
+      if (null != moduleComponent) {
+        return moduleComponent;
+      }
+    }
+
+    return null;
+  }
+
+  /**
+   * {@inheritDoc}
+   */
   @Override
   public boolean equals(Object o) {
     if (this == o) return true;
@@ -148,31 +202,27 @@ public class Mpack {
 
     Mpack mpack = (Mpack) o;
 
-    if (!resourceId.equals(mpack.resourceId)) return false;
-    if (registryId != null ? !registryId.equals(mpack.registryId) : mpack.registryId != null) return false;
-    if (!mpackId.equals(mpack.mpackId)) return false;
-    if (!name.equals(mpack.name)) return false;
-    if (!version.equals(mpack.version)) return false;
-    if (!prerequisites.equals(mpack.prerequisites)) return false;
-    if (!modules.equals(mpack.modules)) return false;
-    if (!definition.equals(mpack.definition)) return false;
-    if (!description.equals(mpack.description)) return false;
-    return mpackUri.equals(mpack.mpackUri);
+    Mpack that = (Mpack) o;
+    EqualsBuilder equalsBuilder = new EqualsBuilder();
+    equalsBuilder.append(resourceId, that.resourceId);
+    equalsBuilder.append(registryId, that.registryId);
+    equalsBuilder.append(mpackId, that.mpackId);
+    equalsBuilder.append(name, that.name);
+    equalsBuilder.append(version, that.version);
+    equalsBuilder.append(prerequisites, that.prerequisites);
+    equalsBuilder.append(modules, that.modules);
+    equalsBuilder.append(definition, that.definition);
+    equalsBuilder.append(description, that.description);
+    equalsBuilder.append(mpackUri, that.mpackUri);
+    equalsBuilder.append(displayName, that.displayName);
+
+    return equalsBuilder.isEquals();
   }
 
   @Override
   public int hashCode() {
-    int result = resourceId.hashCode();
-    result = 31 * result + (registryId != null ? registryId.hashCode() : 0);
-    result = 31 * result + mpackId.hashCode();
-    result = 31 * result + name.hashCode();
-    result = 31 * result + version.hashCode();
-    result = 31 * result + prerequisites.hashCode();
-    result = 31 * result + modules.hashCode();
-    result = 31 * result + definition.hashCode();
-    result = 31 * result + description.hashCode();
-    result = 31 * result + mpackUri.hashCode();
-    return result;
+    return Objects.hash(resourceId, registryId, mpackId, name, version, prerequisites, modules,
+        definition, description, mpackUri, displayName);
   }
 
   @Override
@@ -188,6 +238,7 @@ public class Mpack {
             ", definition='" + definition + '\'' +
             ", description='" + description + '\'' +
             ", mpackUri='" + mpackUri + '\'' +
+            ", displayName='" + mpackUri + '\'' +
             '}';
   }
 
@@ -216,5 +267,8 @@ public class Mpack {
     if (this.definition == null) {
       this.definition = mpack.getDefinition();
     }
+    if (displayName == null) {
+      displayName = mpack.getDisplayName();
+    }
   }
 }