Browse Source

AMBARI-8784 - Unable To Move Manual Task From HOLDING to COMPLETED Via API (tbeerbower)

tbeerbower 10 years ago
parent
commit
8dba77e8b5

+ 4 - 2
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/StageResourceProvider.java

@@ -232,12 +232,14 @@ public class StageResourceProvider extends AbstractResourceProvider implements E
   /**
    * Update the stage identified by the given stage id with the desired status.
    *
+   * @param requestId      the request id
    * @param stageId        the stage id
    * @param desiredStatus  the desired stage status
    */
-  public static void updateStageStatus(long stageId, HostRoleStatus desiredStatus) {
+  public static void updateStageStatus(long requestId, long stageId, HostRoleStatus desiredStatus) {
     Predicate predicate =
-        new PredicateBuilder().property(STAGE_STAGE_ID).equals(stageId).toPredicate();
+        new PredicateBuilder().property(STAGE_STAGE_ID).equals(stageId).
+            and().property(STAGE_REQUEST_ID).equals(requestId).toPredicate();
 
     List<StageEntity> entityList = dao.findAll(PropertyHelper.getReadRequest(), predicate);
     for (StageEntity stageEntity : entityList) {

+ 4 - 2
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java

@@ -117,8 +117,10 @@ public class UpgradeItemResourceProvider extends ReadOnlyResourceProvider {
 
         for (Resource resource : resources) {
           // Set the desired status on the underlying stage.
-          Long stageId = (Long) resource.getPropertyValue(UPGRADE_ITEM_STAGE_ID);
-          StageResourceProvider.updateStageStatus(stageId, desiredStatus);
+          Long requestId = (Long) resource.getPropertyValue(UPGRADE_REQUEST_ID);
+          Long stageId   = (Long) resource.getPropertyValue(UPGRADE_ITEM_STAGE_ID);
+
+          StageResourceProvider.updateStageStatus(requestId, stageId, desiredStatus);
         }
       }
     }

+ 2 - 0
ambari-server/src/main/resources/key_properties.json

@@ -40,7 +40,9 @@
   "Task": {
     "Cluster": "Tasks/cluster_name",
     "Request": "Tasks/request_id",
+    "Upgrade": "Tasks/request_id",
     "Stage": "Tasks/stage_id",
+    "UpgradeItem": "Tasks/stage_id",
     "Task": "Tasks/id"
   },
   "User": {