diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/query/render/ClusterBlueprintRenderer.java b/ambari-server/src/main/java/org/apache/ambari/server/api/query/render/ClusterBlueprintRenderer.java index e2c9bfda019..c7ad7e3dbd2 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/api/query/render/ClusterBlueprintRenderer.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/api/query/render/ClusterBlueprintRenderer.java @@ -244,13 +244,13 @@ private Resource createBlueprintResource(TreeNode clusterNode) { * Adds mpack instances to the exported blueprint resource. */ private void addMpackInstances(Resource blueprintResource, TreeNode clusterNode) { - List> mpackInstances = clusterNode.getChild("stack_versions").getChildren().stream().map( + // TODO: find a way to add mpack uri + List> mpackInstances = clusterNode.getChild("servicegroups").getChildren().stream().map( child -> { - Map stackVersionProps = child.getObject().getPropertiesMap().get("ClusterStackVersions"); + Map serviceGroupProps = child.getObject().getPropertiesMap().get("ServiceGroupInfo"); return ImmutableMap.of( - "name", stackVersionProps.get("stack"), - "version", stackVersionProps.get("version"), - "url", stackVersionProps.get("mpack_uri")); + "name", serviceGroupProps.get("mpack_name"), + "version", serviceGroupProps.get("mpack_version")); }). collect(toList()); blueprintResource.setProperty(BlueprintResourceProvider.MPACK_INSTANCES_PROPERTY_ID, mpackInstances); diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExportBlueprintRequest.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExportBlueprintRequest.java index 14179f40ac0..dc3f2d56f70 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExportBlueprintRequest.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/ExportBlueprintRequest.java @@ -82,7 +82,7 @@ public ExportBlueprintRequest(TreeNode clusterNode) throws InvalidTopo // create service group to mpack map serviceGroupToMpack = clusterNode.getChild("servicegroups").getChildren().stream(). map(tn -> tn.getObject().getPropertiesMap().get(ServiceGroupResourceProvider.RESPONSE_KEY)). - collect(toMap(m -> m.get("service_group_name").toString(), m -> new StackId(m.get("version").toString()))); + collect(toMap(m -> m.get("service_group_name").toString(), m -> new StackId(m.get("stack").toString()))); createConfiguration(clusterNode); //todo: should be parsing Configuration from the beginning diff --git a/ambari-server/src/main/java/org/apache/ambari/server/topology/Component.java b/ambari-server/src/main/java/org/apache/ambari/server/topology/Component.java index 40d81faf3aa..eac584f8840 100644 --- a/ambari-server/src/main/java/org/apache/ambari/server/topology/Component.java +++ b/ambari-server/src/main/java/org/apache/ambari/server/topology/Component.java @@ -88,6 +88,7 @@ public StackId getStackId() { public String getMpackInstance() { return this.mpackInstance; } + /** * @return the service instance this component belongs to. Can be {@code null} if component does not belong to a service * instance (there is a single service of the component's service type) @@ -99,7 +100,7 @@ public String getServiceInstance() { /** * Gets the provision action associated with this component. * - * @return the provision action for this component, whichRequest's Mpack instances isRequest's Mpack instances is + * @return the provision action for this component, which * may be null if the default action is to be used */ public ProvisionAction getProvisionAction() { diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/query/render/ClusterBlueprintRendererTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/query/render/ClusterBlueprintRendererTest.java index 34e3bd3a166..5298d1f9ab5 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/api/query/render/ClusterBlueprintRendererTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/api/query/render/ClusterBlueprintRendererTest.java @@ -287,6 +287,8 @@ public TreeNode createResultTreeSettingsObject(TreeNode resu serviceGroupResource.setProperty("ServiceGroupInfo/cluster_name", "c1"); serviceGroupResource.setProperty("ServiceGroupInfo/service_group_id", "1"); serviceGroupResource.setProperty("ServiceGroupInfo/service_group_name", "core"); + serviceGroupResource.setProperty("ServiceGroupInfo/mpack_name", "HDP"); + serviceGroupResource.setProperty("ServiceGroupInfo/mpack_version", "1.3.3"); TreeNode serviceGroup1Tree = serviceGroupsTree.addChild(serviceGroupResource, "ServiceGroup:1"); clusterTree.addChild(serviceGroupsTree); @@ -710,6 +712,8 @@ public Map> getPropertiesMap() { serviceGroupResource.setProperty("ServiceGroupInfo/cluster_name", "c1"); serviceGroupResource.setProperty("ServiceGroupInfo/service_group_id", "1"); serviceGroupResource.setProperty("ServiceGroupInfo/service_group_name", "core"); + serviceGroupResource.setProperty("ServiceGroupInfo/mpack_name", "HDP"); + serviceGroupResource.setProperty("ServiceGroupInfo/mpack_version", "1.3.3"); TreeNode serviceGroup1Tree = serviceGroupsTree.addChild(serviceGroupResource, "ServiceGroup:1"); clusterTree.addChild(serviceGroupsTree);