You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ds...@apache.org on 2017/07/25 15:25:58 UTC
ambari git commit: AMBARI-21551 Restart due to Stale configurations
leads to an internal system exception (dsen)
Repository: ambari
Updated Branches:
refs/heads/trunk 6aca7feac -> f58abd481
AMBARI-21551 Restart due to Stale configurations leads to an internal system exception (dsen)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/f58abd48
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/f58abd48
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/f58abd48
Branch: refs/heads/trunk
Commit: f58abd48173725abd1d68dd58d0348f7db6d5194
Parents: 6aca7fe
Author: Dmytro Sen <ds...@apache.org>
Authored: Tue Jul 25 18:25:29 2017 +0300
Committer: Dmytro Sen <ds...@apache.org>
Committed: Tue Jul 25 18:25:48 2017 +0300
----------------------------------------------------------------------
.../controller/AmbariCustomCommandExecutionHelper.java | 8 ++++++++
.../server/controller/internal/RequestResourceProvider.java | 4 +++-
.../controller/internal/RequestResourceProviderTest.java | 9 ++++++---
3 files changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/f58abd48/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
index f4b650e..5f02baa 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariCustomCommandExecutionHelper.java
@@ -39,6 +39,7 @@ import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.STACK_NAM
import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.STACK_VERSION;
import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.USER_GROUPS;
import static org.apache.ambari.server.agent.ExecutionCommand.KeyNames.USER_LIST;
+import static org.apache.ambari.server.controller.internal.RequestResourceProvider.HAS_RESOURCE_FILTERS;
import java.text.MessageFormat;
import java.util.ArrayList;
@@ -1084,6 +1085,13 @@ public class AmbariCustomCommandExecutionHelper {
List<RequestResourceFilter> resourceFilters = actionRequest.getResourceFilters();
+ if (resourceFilters != null && resourceFilters.isEmpty() &&
+ actionRequest.getParameters().containsKey(HAS_RESOURCE_FILTERS) &&
+ actionRequest.getParameters().get(HAS_RESOURCE_FILTERS).equalsIgnoreCase("true")) {
+ LOG.warn("Couldn't find any resource that satisfies given resource filters");
+ return;
+ }
+
if (resourceFilters == null || resourceFilters.isEmpty()) {
throw new AmbariException("Command execution cannot proceed without a " +
"resource filter.");
http://git-wip-us.apache.org/repos/asf/ambari/blob/f58abd48/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java
index a8f7638..3e8ea01 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/RequestResourceProvider.java
@@ -129,6 +129,7 @@ public class RequestResourceProvider extends AbstractControllerResourceProvider
public static final String ACTION_ID = "action";
public static final String INPUTS_ID = "parameters";
public static final String EXLUSIVE_ID = "exclusive";
+ public static final String HAS_RESOURCE_FILTERS = "HAS_RESOURCE_FILTERS";
private static Set<String> pkPropertyIds =
new HashSet<>(Arrays.asList(new String[]{
@@ -444,12 +445,14 @@ public class RequestResourceProvider extends AbstractControllerResourceProvider
List<RequestResourceFilter> resourceFilterList = null;
Set<Map<String, Object>> resourceFilters;
+ Map<String, String> params = new HashMap<String, String>();
Object resourceFilterObj = propertyMap.get(REQUEST_RESOURCE_FILTER_ID);
if (resourceFilterObj != null && resourceFilterObj instanceof HashSet) {
resourceFilters = (HashSet<Map<String, Object>>) resourceFilterObj;
resourceFilterList = new ArrayList<>();
for (Map<String, Object> resourceMap : resourceFilters) {
+ params.put(HAS_RESOURCE_FILTERS, "true");
resourceFilterList.addAll(parseRequestResourceFilter(resourceMap,
(String) propertyMap.get(REQUEST_CLUSTER_NAME_PROPERTY_ID)));
}
@@ -461,7 +464,6 @@ public class RequestResourceProvider extends AbstractControllerResourceProvider
operationLevel = new RequestOperationLevel(requestInfoProperties);
}
- Map<String, String> params = new HashMap<>();
String keyPrefix = INPUTS_ID + "/";
for (String key : requestInfoProperties.keySet()) {
if (key.startsWith(keyPrefix)) {
http://git-wip-us.apache.org/repos/asf/ambari/blob/f58abd48/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestResourceProviderTest.java
index d243e73..d2c462b 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/RequestResourceProviderTest.java
@@ -1032,7 +1032,7 @@ public class RequestResourceProviderTest {
Assert.assertEquals(null, capturedResourceFilter.getComponentName());
Assert.assertNotNull(capturedResourceFilter.getHostNames());
Assert.assertEquals(0, capturedResourceFilter.getHostNames().size());
- Assert.assertEquals(0, actionRequest.getValue().getParameters().size());
+ Assert.assertEquals(1, actionRequest.getValue().getParameters().size());
}
@Test
@@ -1152,7 +1152,7 @@ public class RequestResourceProviderTest {
Assert.assertEquals(null, capturedResourceFilter.getComponentName());
Assert.assertEquals(3, capturedResourceFilter.getHostNames().size());
Assert.assertArrayEquals(expectedHosts, capturedResourceFilter.getHostNames().toArray());
- Assert.assertEquals(2, capturedRequest.getParameters().size());
+ Assert.assertEquals(3, capturedRequest.getParameters().size());
for(String key : expectedParams.keySet()) {
Assert.assertEquals(expectedParams.get(key), capturedRequest.getParameters().get(key));
}
@@ -1239,6 +1239,9 @@ public class RequestResourceProviderTest {
}
Assert.assertNotNull(propertyIdToAssert);
Assert.assertEquals("true", propertyValueToAssert);
+ Assert.assertTrue(capturedRequest.getResourceFilters().isEmpty());
+ Assert.assertEquals(1, capturedRequest.getParameters().size());
+ Assert.assertEquals("true", capturedRequest.getParameters().get(RequestResourceProvider.HAS_RESOURCE_FILTERS));
}
@Test
@@ -1548,7 +1551,7 @@ public class RequestResourceProviderTest {
Assert.assertEquals(null, capturedResourceFilter.getComponentName());
Assert.assertNotNull(capturedResourceFilter.getHostNames());
Assert.assertEquals(2, capturedResourceFilter.getHostNames().size());
- Assert.assertEquals(0, actionRequest.getValue().getParameters().size());
+ Assert.assertEquals(1, actionRequest.getValue().getParameters().size());
}
@Test