You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by tb...@apache.org on 2014/12/18 11:35:50 UTC
ambari git commit: AMBARI-8784 - Unable To Move Manual Task From
HOLDING to COMPLETED Via API (tbeerbower)
Repository: ambari
Updated Branches:
refs/heads/trunk 18e831dea -> 95fe4b028
AMBARI-8784 - Unable To Move Manual Task From HOLDING to COMPLETED Via API (tbeerbower)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/95fe4b02
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/95fe4b02
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/95fe4b02
Branch: refs/heads/trunk
Commit: 95fe4b028ea7a3176a24315cd417b4147d31ff21
Parents: 18e831d
Author: tbeerbower <tb...@hortonworks.com>
Authored: Thu Dec 18 05:35:29 2014 -0500
Committer: tbeerbower <tb...@hortonworks.com>
Committed: Thu Dec 18 05:35:43 2014 -0500
----------------------------------------------------------------------
.../server/api/services/UpgradeItemService.java | 26 ++++++-
.../internal/UpgradeItemResourceProvider.java | 34 ++++-----
.../api/services/UpgradeItemServiceTest.java | 78 ++++++++++++++++++++
3 files changed, 118 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/95fe4b02/ambari-server/src/main/java/org/apache/ambari/server/api/services/UpgradeItemService.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/UpgradeItemService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/UpgradeItemService.java
index 9bfcf36..ab7e125 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/UpgradeItemService.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/UpgradeItemService.java
@@ -67,6 +67,28 @@ public class UpgradeItemService extends BaseService {
createResourceInstance(id));
}
+ /**
+ * Handles:
+ * PUT /clusters/{clusterId}/upgrades/{upgradeId}/upgrade_groups/{upgradeGroupId}/upgrade_items/{upgradeItemId}
+ *
+ * Change state of existing upgrade item.
+ *
+ * @param body http body
+ * @param headers http headers
+ * @param ui uri info
+ * @param id the upgrade item id
+ *
+ * @return information regarding the created services
+ */
+ @PUT
+ @Path("{upgradeItemId}")
+ @Produces("text/plain")
+ public Response updateUpgradeItem(String body,
+ @Context HttpHeaders headers,
+ @Context UriInfo ui, @PathParam("upgradeItemId") Long id) {
+ return handleRequest(headers, body, ui, Request.Type.PUT, createResourceInstance(id));
+ }
+
@Path("{upgradeItemId}/tasks")
public TaskService getTasks(
@Context HttpHeaders headers,
@@ -79,16 +101,14 @@ public class UpgradeItemService extends BaseService {
* @param upgradeItemId the specific item id
* @return the resource instance
*/
- private ResourceInstance createResourceInstance(Long upgradeItemId) {
+ ResourceInstance createResourceInstance(Long upgradeItemId) {
Map<Resource.Type, String> mapIds = new HashMap<Resource.Type, String>();
mapIds.put(Resource.Type.Cluster, m_clusterName);
mapIds.put(Resource.Type.Upgrade, m_upgradeId);
mapIds.put(Resource.Type.UpgradeGroup, m_upgradeGroupId);
- mapIds.put(Resource.Type.Request, m_upgradeId);
if (null != upgradeItemId) {
mapIds.put(Resource.Type.UpgradeItem, upgradeItemId.toString());
- mapIds.put(Resource.Type.Stage, upgradeItemId.toString());
}
return createResource(Resource.Type.UpgradeItem, mapIds);
http://git-wip-us.apache.org/repos/asf/ambari/blob/95fe4b02/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java
index 6286f08..ad6ae1f 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java
@@ -182,27 +182,27 @@ public class UpgradeItemResourceProvider extends ReadOnlyResourceProvider {
resultMap.put(entity.getStageId(), r);
}
- if (null != clusterName) {
- UpgradeHelper helper = new UpgradeHelper();
-
- Set<Resource> stages = helper.getStageResources(clusterName, requestId,
- new ArrayList<Long>(resultMap.keySet()));
-
- for (Resource stage : stages) {
- Long l = (Long) stage.getPropertyValue(StageResourceProvider.STAGE_STAGE_ID);
-
- Resource r = resultMap.get(l);
- if (null != r) {
- for (String propertyId : StageResourceProvider.PROPERTY_IDS) {
- setResourceProperty(r, STAGE_MAPPED_IDS.get(propertyId),
- stage.getPropertyValue(propertyId), requestPropertyIds);
+ if (!resultMap.isEmpty()) {
+ if (null != clusterName) {
+ UpgradeHelper helper = new UpgradeHelper();
+
+ Set<Resource> stages = helper.getStageResources(clusterName, requestId,
+ new ArrayList<Long>(resultMap.keySet()));
+
+ for (Resource stage : stages) {
+ Long l = (Long) stage.getPropertyValue(StageResourceProvider.STAGE_STAGE_ID);
+
+ Resource r = resultMap.get(l);
+ if (null != r) {
+ for (String propertyId : StageResourceProvider.PROPERTY_IDS) {
+ setResourceProperty(r, STAGE_MAPPED_IDS.get(propertyId),
+ stage.getPropertyValue(propertyId), requestPropertyIds);
+ }
}
}
}
+ results.addAll(resultMap.values());
}
-
- results.addAll(resultMap.values());
-
}
return results;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/95fe4b02/ambari-server/src/test/java/org/apache/ambari/server/api/services/UpgradeItemServiceTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/api/services/UpgradeItemServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/api/services/UpgradeItemServiceTest.java
new file mode 100644
index 0000000..68fe87f
--- /dev/null
+++ b/ambari-server/src/test/java/org/apache/ambari/server/api/services/UpgradeItemServiceTest.java
@@ -0,0 +1,78 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ambari.server.api.services;
+
+import org.apache.ambari.server.api.resources.ResourceInstance;
+import org.apache.ambari.server.api.services.parsers.RequestBodyParser;
+import org.apache.ambari.server.api.services.serializers.ResultSerializer;
+import org.junit.Assert;
+
+import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.UriInfo;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * UpgradeItemService tests.
+ */
+public class UpgradeItemServiceTest extends BaseServiceTest {
+ public List<ServiceTestInvocation> getTestInvocations() throws Exception {
+ List<ServiceTestInvocation> listInvocations = new ArrayList<ServiceTestInvocation>();
+
+ //updateServices
+ UpgradeItemService service = new TestUpgradeItemService("clusterName", "upgradeId", "upgradeGroupId", 99L);
+ Method m = service.getClass().getMethod("updateUpgradeItem", String.class, HttpHeaders.class, UriInfo.class, Long.class);
+ Object[] args = new Object[] {"body", getHttpHeaders(), getUriInfo(), 99L};
+ listInvocations.add(new ServiceTestInvocation(Request.Type.PUT, service, m, args, "body"));
+
+ return listInvocations;
+ }
+
+ private class TestUpgradeItemService extends UpgradeItemService {
+ private Long m_upgradeItemId;
+
+ private TestUpgradeItemService(String clusterName, String upgradeId, String upgradeGroupId, Long upgradeItemId) {
+ super(clusterName, upgradeId, upgradeGroupId);
+
+ m_upgradeItemId = upgradeItemId;
+ }
+
+ @Override
+ ResourceInstance createResourceInstance(Long upgradeItemId) {
+ Assert.assertEquals(m_upgradeItemId, upgradeItemId);
+ return getTestResource();
+ }
+
+ @Override
+ RequestFactory getRequestFactory() {
+ return getTestRequestFactory();
+ }
+
+ @Override
+ protected RequestBodyParser getBodyParser() {
+ return getTestBodyParser();
+ }
+
+ @Override
+ protected ResultSerializer getResultSerializer() {
+ return getTestResultSerializer();
+ }
+ }
+}
\ No newline at end of file