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 2017/10/23 19:48:03 UTC

[1/2] ambari git commit: AMBARI-22283 : Add stack name and version to mpack API (mradhakrishnan)

Repository: ambari
Updated Branches:
  refs/heads/branch-feature-AMBARI-14714 3d8c9b744 -> f50d9a2aa


AMBARI-22283 : Add stack name and version to mpack API (mradhakrishnan)


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

Branch: refs/heads/branch-feature-AMBARI-14714
Commit: 1c6de7914d6c7417584cd93e506f4e9c2f0d43e5
Parents: 3d8c9b7
Author: Madhuvanthi Radhakrishnan <mr...@hortonworks.com>
Authored: Sun Oct 22 14:34:34 2017 -0700
Committer: Madhuvanthi Radhakrishnan <mr...@hortonworks.com>
Committed: Sun Oct 22 14:34:34 2017 -0700

----------------------------------------------------------------------
 .../server/controller/internal/MpackResourceProvider.java | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/1c6de791/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/MpackResourceProvider.java
----------------------------------------------------------------------
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 2642d10..c72ae1b 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
@@ -144,12 +144,15 @@ public class MpackResourceProvider extends AbstractControllerResourceProvider {
       MpackResponse response = getManagementController().registerMpack(mpackRequest);
       if (response != null) {
         notifyCreate(Resource.Type.Mpack, request);
+        String[] stackNameVersion = response.getStackId().split("-");
         Resource resource = new ResourceImpl(Resource.Type.Mpack);
         resource.setProperty(MPACK_ID, response.getMpackId());
         resource.setProperty(REGISTRY_ID, response.getRegistryId());
         resource.setProperty(MPACK_NAME, response.getMpackName());
         resource.setProperty(MPACK_VERSION, response.getMpackVersion());
         resource.setProperty(MPACK_URI, response.getMpackUri());
+        resource.setProperty(STACK_NAME_PROPERTY_ID, stackNameVersion[0]);
+        resource.setProperty(STACK_VERSION_PROPERTY_ID, stackNameVersion[1]);
 
         associatedResources.add(resource);
         return getRequestStatus(null, associatedResources);
@@ -252,6 +255,9 @@ public class MpackResourceProvider extends AbstractControllerResourceProvider {
         resource.setProperty(MPACK_VERSION, entity.getMpackVersion());
         resource.setProperty(MPACK_URI, entity.getMpackUri());
         resource.setProperty(REGISTRY_ID, entity.getRegistryId());
+        StackEntity stackEntity = stackDAO.findByMpack(entity.getMpackId());
+        resource.setProperty(STACK_NAME_PROPERTY_ID, stackEntity.getStackName());
+        resource.setProperty(STACK_VERSION_PROPERTY_ID, stackEntity.getStackVersion());
         results.add(resource);
       }
     } else {
@@ -290,7 +296,9 @@ public class MpackResourceProvider extends AbstractControllerResourceProvider {
           resource.setProperty(MPACK_VERSION, entity.getMpackVersion());
           resource.setProperty(MPACK_URI, entity.getMpackUri());
           resource.setProperty(REGISTRY_ID, entity.getRegistryId());
-
+          StackEntity stackEntity = stackDAO.findByMpack(entity.getMpackId());
+          resource.setProperty(STACK_NAME_PROPERTY_ID, stackEntity.getStackName());
+          resource.setProperty(STACK_VERSION_PROPERTY_ID, stackEntity.getStackVersion());
           List<Packlet> packlets = getManagementController().getPacklets(entity.getMpackId());
           resource.setProperty(PACKLETS, packlets);
           results.add(resource);


[2/2] ambari git commit: AMBARI-22067 : Registry API should sort versions with latest at index 0 (mradhakrishnan)

Posted by mr...@apache.org.
AMBARI-22067 : Registry API should sort versions with latest at index 0 (mradhakrishnan)


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

Branch: refs/heads/branch-feature-AMBARI-14714
Commit: f50d9a2aa67d38712b36990d4047b400fafa4a68
Parents: 1c6de79
Author: Madhuvanthi Radhakrishnan <mr...@hortonworks.com>
Authored: Mon Oct 23 11:20:09 2017 -0700
Committer: Madhuvanthi Radhakrishnan <mr...@hortonworks.com>
Committed: Mon Oct 23 11:20:09 2017 -0700

----------------------------------------------------------------------
 .../RegistryMpackVersionResourceProvider.java   | 56 ++++++++++++++++++--
 1 file changed, 51 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/f50d9a2a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RegistryMpackVersionResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RegistryMpackVersionResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RegistryMpackVersionResourceProvider.java
index 32cf234..3b8a3f5 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RegistryMpackVersionResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RegistryMpackVersionResourceProvider.java
@@ -19,8 +19,12 @@ package org.apache.ambari.server.controller.internal;
 
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
@@ -30,9 +34,11 @@ import org.apache.ambari.server.ParentObjectNotFoundException;
 import org.apache.ambari.server.controller.AmbariManagementController;
 import org.apache.ambari.server.controller.RegistryMpackVersionRequest;
 import org.apache.ambari.server.controller.RegistryMpackVersionResponse;
+import org.apache.ambari.server.controller.spi.ExtendedResourceProvider;
 import org.apache.ambari.server.controller.spi.NoSuchParentResourceException;
 import org.apache.ambari.server.controller.spi.NoSuchResourceException;
 import org.apache.ambari.server.controller.spi.Predicate;
+import org.apache.ambari.server.controller.spi.QueryResponse;
 import org.apache.ambari.server.controller.spi.Request;
 import org.apache.ambari.server.controller.spi.Resource;
 import org.apache.ambari.server.controller.spi.SystemException;
@@ -42,11 +48,12 @@ import org.apache.ambari.server.exceptions.RegistryMpackNotFoundException;
 import org.apache.ambari.server.registry.Registry;
 import org.apache.ambari.server.registry.RegistryMpack;
 import org.apache.ambari.server.registry.RegistryMpackVersion;
+import org.apache.ambari.server.utils.VersionUtils;
 
 /**
  * ResourceProvider for mpacks in software registry
  */
-public class RegistryMpackVersionResourceProvider extends AbstractControllerResourceProvider {
+public class RegistryMpackVersionResourceProvider extends AbstractControllerResourceProvider implements ExtendedResourceProvider {
   public static final String RESPONSE_KEY = "RegistryMpackVersionInfo";
   public static final String ALL_PROPERTIES = RESPONSE_KEY + PropertyHelper.EXTERNAL_PATH_SEP + "*";
 
@@ -72,6 +79,11 @@ public class RegistryMpackVersionResourceProvider extends AbstractControllerReso
    */
   private static final Map<Resource.Type, String> KEY_PROPERTY_IDS = new HashMap<>();
 
+  /***
+   * Resource count for get resources
+   */
+  private static int resourceCount;
+
   static {
     // properties
     PROPERTY_IDS.add(REGISTRY_ID);
@@ -96,6 +108,7 @@ public class RegistryMpackVersionResourceProvider extends AbstractControllerReso
    */
   protected RegistryMpackVersionResourceProvider(final AmbariManagementController managementController) {
     super(PROPERTY_IDS, KEY_PROPERTY_IDS, managementController);
+    resourceCount = 0;
   }
 
   /**
@@ -133,7 +146,7 @@ public class RegistryMpackVersionResourceProvider extends AbstractControllerReso
       }
     });
 
-    Set<Resource> resources = new HashSet<>();
+    List<Resource> sortedResources = new LinkedList<>();
     for (RegistryMpackVersionResponse response : responses) {
       Resource resource = new ResourceImpl(Resource.Type.RegistryMpackVersion);
       setResourceProperty(resource, REGISTRY_ID, response.getRegistryId(), requestedIds);
@@ -144,9 +157,25 @@ public class RegistryMpackVersionResourceProvider extends AbstractControllerReso
       setResourceProperty(resource, REGISTRY_MPACK_DOC_URL, response.getMpackDocUrl(), requestedIds);
       setResourceProperty(resource, REGISTRY_MPACK_SERVICES, response.getMpackServices(), requestedIds);
       setResourceProperty(resource, REGISTRY_MPACK_COMPATIBLE_MPACKS, response.getCompatibleMpacks(), requestedIds);
-      resources.add(resource);
+      sortedResources.add(resource);
     }
-    return resources;
+    sortedResources.sort(new Comparator<Resource>() {
+      @Override
+      public int compare(final Resource o1, final Resource o2) {
+        int o1Wins = 0;
+        int o2Wins = 0;
+          int compareResult = VersionUtils.compareVersions((String)o1.getPropertyValue(REGISTRY_MPACK_VERSION), (String)o2.getPropertyValue(REGISTRY_MPACK_VERSION));
+          if(compareResult > 0) {
+            o1Wins++;
+          } else if(compareResult < 0) {
+            o2Wins++;
+          }
+        // Order in reverse order
+        return o2Wins - o1Wins;
+      }
+    });
+    resourceCount = sortedResources.size();
+    return new LinkedHashSet<>(sortedResources);
   }
 
   private RegistryMpackVersionRequest getRequest(Map<String, Object> properties) {
@@ -231,5 +260,22 @@ public class RegistryMpackVersionResourceProvider extends AbstractControllerReso
       }
     }
     return responses;
-  }  
+  }
+
+  @Override
+  public QueryResponse queryForResources(Request request, Predicate predicate) throws SystemException, UnsupportedPropertyException, NoSuchResourceException, NoSuchParentResourceException {
+    return new QueryResponseImpl(
+            getResourcesAuthorized(request, predicate),
+            true,
+            request.getPageRequest() != null,
+            getResourceCount());
+  }
+
+  /***
+   *
+   * @return number of resources returned in response to GET calls.
+   */
+  private int getResourceCount() {
+    return resourceCount;
+  }
 }