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;
+ }
}