Explorar o código

AMBARI-9093. Core Slaves shows weird step for AMBARI_SERVER_ACTION_EXECUTE (ncole)

Nate Cole %!s(int64=10) %!d(string=hai) anos
pai
achega
e4e817cc67

+ 3 - 0
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeItemResourceProvider.java

@@ -56,6 +56,7 @@ public class UpgradeItemResourceProvider extends ReadOnlyResourceProvider {
   protected static final String UPGRADE_REQUEST_ID = "UpgradeItem/request_id";
   protected static final String UPGRADE_REQUEST_ID = "UpgradeItem/request_id";
   protected static final String UPGRADE_GROUP_ID = "UpgradeItem/group_id";
   protected static final String UPGRADE_GROUP_ID = "UpgradeItem/group_id";
   protected static final String UPGRADE_ITEM_STAGE_ID = "UpgradeItem/stage_id";
   protected static final String UPGRADE_ITEM_STAGE_ID = "UpgradeItem/stage_id";
+  protected static final String UPGRADE_ITEM_TEXT = "UpgradeItem/text";
 
 
   private static final Set<String> PK_PROPERTY_IDS = new HashSet<String>(
   private static final Set<String> PK_PROPERTY_IDS = new HashSet<String>(
       Arrays.asList(UPGRADE_REQUEST_ID, UPGRADE_ITEM_STAGE_ID));
       Arrays.asList(UPGRADE_REQUEST_ID, UPGRADE_ITEM_STAGE_ID));
@@ -73,6 +74,7 @@ public class UpgradeItemResourceProvider extends ReadOnlyResourceProvider {
     PROPERTY_IDS.add(UPGRADE_ITEM_STAGE_ID);
     PROPERTY_IDS.add(UPGRADE_ITEM_STAGE_ID);
     PROPERTY_IDS.add(UPGRADE_GROUP_ID);
     PROPERTY_IDS.add(UPGRADE_GROUP_ID);
     PROPERTY_IDS.add(UPGRADE_REQUEST_ID);
     PROPERTY_IDS.add(UPGRADE_REQUEST_ID);
+    PROPERTY_IDS.add(UPGRADE_ITEM_TEXT);
 
 
     // !!! boo
     // !!! boo
     for (String p : StageResourceProvider.PROPERTY_IDS) {
     for (String p : StageResourceProvider.PROPERTY_IDS) {
@@ -223,6 +225,7 @@ public class UpgradeItemResourceProvider extends ReadOnlyResourceProvider {
     setResourceProperty(resource, UPGRADE_REQUEST_ID, upgrade.getRequestId(), requestedIds);
     setResourceProperty(resource, UPGRADE_REQUEST_ID, upgrade.getRequestId(), requestedIds);
     setResourceProperty(resource, UPGRADE_GROUP_ID, group.getId(), requestedIds);
     setResourceProperty(resource, UPGRADE_GROUP_ID, group.getId(), requestedIds);
     setResourceProperty(resource, UPGRADE_ITEM_STAGE_ID, item.getStageId(), requestedIds);
     setResourceProperty(resource, UPGRADE_ITEM_STAGE_ID, item.getStageId(), requestedIds);
+    setResourceProperty(resource, UPGRADE_ITEM_TEXT, item.getText(), requestedIds);
 
 
     return resource;
     return resource;
   }
   }

+ 24 - 8
ambari-server/src/main/java/org/apache/ambari/server/controller/internal/UpgradeResourceProvider.java

@@ -80,6 +80,7 @@ import org.apache.ambari.server.state.stack.upgrade.Task;
 import org.apache.ambari.server.state.stack.upgrade.TaskWrapper;
 import org.apache.ambari.server.state.stack.upgrade.TaskWrapper;
 import org.apache.ambari.server.state.svccomphost.ServiceComponentHostServerActionEvent;
 import org.apache.ambari.server.state.svccomphost.ServiceComponentHostServerActionEvent;
 import org.apache.ambari.server.utils.StageUtils;
 import org.apache.ambari.server.utils.StageUtils;
+import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.slf4j.LoggerFactory;
 
 
@@ -668,10 +669,17 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
     commandParams.put("clusterName", cluster.getClusterName());
     commandParams.put("clusterName", cluster.getClusterName());
     commandParams.put("version", version);
     commandParams.put("version", version);
 
 
-    String itemText = entity.getText();
+    String itemDetail = entity.getText();
+    String stageText = StringUtils.abbreviate(entity.getText(), 255);
+
     switch (task.getType()) {
     switch (task.getType()) {
       case MANUAL: {
       case MANUAL: {
-        itemText = ((ManualTask) task).message;
+        ManualTask mt = (ManualTask) task;
+        itemDetail = mt.message;
+        if (null != mt.summary) {
+          stageText = mt.summary;
+        }
+        entity.setText(itemDetail);
         break;
         break;
       }
       }
       case CONFIGURE: {
       case CONFIGURE: {
@@ -679,15 +687,19 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
         commandParams.put("type", ct.configType);
         commandParams.put("type", ct.configType);
         commandParams.put("key", ct.key);
         commandParams.put("key", ct.key);
         commandParams.put("value", ct.value);
         commandParams.put("value", ct.value);
-        itemText = String.format("Updating config %s/%s to %s", ct.configType, ct.key, ct.value);
+        itemDetail = String.format("Updating config %s/%s to %s", ct.configType, ct.key, ct.value);
+        if (null != ct.summary) {
+          stageText = ct.summary;
+        } else {
+          stageText = String.format("Updating Config %s", ct.configType);
+        }
+        entity.setText(itemDetail);
         break;
         break;
       }
       }
       default:
       default:
         break;
         break;
     }
     }
 
 
-    entity.setText(itemText);
-
     ActionExecutionContext actionContext = new ActionExecutionContext(
     ActionExecutionContext actionContext = new ActionExecutionContext(
         cluster.getClusterName(), Role.AMBARI_SERVER_ACTION.toString(),
         cluster.getClusterName(), Role.AMBARI_SERVER_ACTION.toString(),
         Collections.<RequestResourceFilter>emptyList(),
         Collections.<RequestResourceFilter>emptyList(),
@@ -701,7 +713,7 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
         "/tmp/ambari",
         "/tmp/ambari",
         cluster.getClusterName(),
         cluster.getClusterName(),
         cluster.getClusterId(),
         cluster.getClusterId(),
-        entity.getText(),
+        stageText,
         jsons.getClusterHostInfo(),
         jsons.getClusterHostInfo(),
         jsons.getCommandParamsForStage(),
         jsons.getCommandParamsForStage(),
         jsons.getHostParamsForStage());
         jsons.getHostParamsForStage());
@@ -721,9 +733,13 @@ public class UpgradeResourceProvider extends AbstractControllerResourceProvider
     stage.addServerActionCommand(task.getImplementationClass(),
     stage.addServerActionCommand(task.getImplementationClass(),
         Role.AMBARI_SERVER_ACTION,
         Role.AMBARI_SERVER_ACTION,
         RoleCommand.EXECUTE,
         RoleCommand.EXECUTE,
-        cluster.getClusterName(), host,
+        cluster.getClusterName(),
+        host,
         new ServiceComponentHostServerActionEvent(StageUtils.getHostName(), System.currentTimeMillis()),
         new ServiceComponentHostServerActionEvent(StageUtils.getHostName(), System.currentTimeMillis()),
-        commandParams, null, 1200, allowRtery);
+        commandParams,
+        itemDetail,
+        Integer.valueOf(1200),
+        allowRtery);
 
 
     request.addStages(Collections.singletonList(stage));
     request.addStages(Collections.singletonList(stage));
   }
   }

+ 3 - 0
ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/Batch.java

@@ -30,4 +30,7 @@ public class Batch {
   @XmlElement(name="message")
   @XmlElement(name="message")
   public String message;
   public String message;
 
 
+  @XmlElement(name="summary")
+  public String summary;
+
 }
 }

+ 2 - 1
ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ColocatedGrouping.java

@@ -143,11 +143,12 @@ public class ColocatedGrouping extends Grouping {
 
 
       // !!! TODO when manual tasks are ready
       // !!! TODO when manual tasks are ready
       ManualTask task = new ManualTask();
       ManualTask task = new ManualTask();
+      task.summary = batch.summary;
       task.message = batch.message;
       task.message = batch.message;
 
 
       StageWrapper wrapper = new StageWrapper(
       StageWrapper wrapper = new StageWrapper(
           StageWrapper.Type.SERVER_SIDE_ACTION,
           StageWrapper.Type.SERVER_SIDE_ACTION,
-          "Validate partial upgrade",
+          "Validate Partial Upgrade",
           new TaskWrapper(null, null, Collections.<String>emptySet(), task));
           new TaskWrapper(null, null, Collections.<String>emptySet(), task));
       results.add(wrapper);
       results.add(wrapper);
 
 

+ 3 - 0
ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ConfigureTask.java

@@ -50,6 +50,9 @@ public class ConfigureTask extends ServerSideActionTask {
   @XmlElement(name="value")
   @XmlElement(name="value")
   public String value;
   public String value;
 
 
+  @XmlElement(name="summary")
+  public String summary;
+
   @Override
   @Override
   public Type getType() {
   public Type getType() {
     return type;
     return type;

+ 3 - 0
ambari-server/src/main/java/org/apache/ambari/server/state/stack/upgrade/ManualTask.java

@@ -44,6 +44,9 @@ public class ManualTask extends ServerSideActionTask {
   @XmlElement(name="message")
   @XmlElement(name="message")
   public String message;
   public String message;
 
 
+  @XmlElement(name="summary")
+  public String summary;
+
   @Override
   @Override
   public Task.Type getType() {
   public Task.Type getType() {
     return type;
     return type;

+ 1 - 0
ambari-server/src/main/resources/stacks/HDP/2.2/upgrades/upgrade-2.2.xml

@@ -63,6 +63,7 @@
 
 
       <batch>
       <batch>
         <percent>33</percent>
         <percent>33</percent>
+        <summary>Verfication Required</summary>
         <message>Core Services have been upgraded. You are advised to perform tests against your cluster to ensure proper operation before proceeding with upgrade of remaining services.</message>
         <message>Core Services have been upgraded. You are advised to perform tests against your cluster to ensure proper operation before proceeding with upgrade of remaining services.</message>
       </batch>
       </batch>
     </group>
     </group>

+ 20 - 0
ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UpgradeResourceProviderTest.java

@@ -277,9 +277,29 @@ public class UpgradeResourceProviderTest {
     resources = upgradeItemResourceProvider.getResources(request, predicate);
     resources = upgradeItemResourceProvider.getResources(request, predicate);
 
 
     assertEquals(2, resources.size());
     assertEquals(2, resources.size());
+
     res = resources.iterator().next();
     res = resources.iterator().next();
     assertNotNull(res.getPropertyValue("UpgradeItem/status"));
     assertNotNull(res.getPropertyValue("UpgradeItem/status"));
 
 
+    // !!! check for manual stage vs item text
+    propertyIds.clear();
+    propertyIds.add("UpgradeItem");
+
+    predicate = new PredicateBuilder()
+      .property(UpgradeItemResourceProvider.UPGRADE_GROUP_ID).equals("3").and()
+      .property(UpgradeItemResourceProvider.UPGRADE_REQUEST_ID).equals("1").and()
+      .property(UpgradeItemResourceProvider.UPGRADE_CLUSTER_NAME).equals("c1")
+      .toPredicate();
+    request = PropertyHelper.getReadRequest(propertyIds);
+
+    upgradeItemResourceProvider = new UpgradeItemResourceProvider(amc);
+    resources = upgradeItemResourceProvider.getResources(request, predicate);
+    assertEquals(1, resources.size());
+    res = resources.iterator().next();
+
+    assertEquals("Validate Partial Upgrade", res.getPropertyValue("UpgradeItem/context"));
+    assertTrue(res.getPropertyValue("UpgradeItem/text").toString().startsWith("Please run"));
+
   }
   }
 
 
 
 

+ 1 - 0
ambari-server/src/test/resources/stacks/HDP/2.1.1/upgrades/upgrade_test.xml

@@ -97,6 +97,7 @@
       <component name="ZOOKEEPER_SERVER">
       <component name="ZOOKEEPER_SERVER">
         <pre-upgrade>
         <pre-upgrade>
           <task xsi:type="manual">
           <task xsi:type="manual">
+            <summary>SUMMARY OF PREPARE</summary>
             <message>Preparing with a manual</message>
             <message>Preparing with a manual</message>
           </task>
           </task>
         </pre-upgrade>
         </pre-upgrade>