You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ha...@apache.org on 2019/12/17 16:09:02 UTC
[ambari] branch trunk updated: AMBARI-25449. Fix bulk delete api,
response code 400 - Bulk DELETE API is broken (#3163) (praveenkjvs
via dgrinenko)
This is an automated email from the ASF dual-hosted git repository.
hapylestat pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/trunk by this push:
new 2cf36ba AMBARI-25449. Fix bulk delete api, response code 400 - Bulk DELETE API is broken (#3163) (praveenkjvs via dgrinenko)
2cf36ba is described below
commit 2cf36ba9605c9302f04e63848b609249d036fbe3
Author: praveenkjvs <pr...@gmail.com>
AuthorDate: Tue Dec 17 08:08:49 2019 -0800
AMBARI-25449. Fix bulk delete api, response code 400 - Bulk DELETE API is broken (#3163) (praveenkjvs via dgrinenko)
---
ambari-admin/src/main/resources/ui/admin-web/bower.json | 5 +----
.../java/org/apache/ambari/server/api/handlers/DeleteHandler.java | 6 ++++--
.../ambari/server/controller/AmbariManagementControllerImpl.java | 5 +++--
.../controller/internal/DeleteHostComponentStatusMetaData.java | 2 +-
.../java/org/apache/ambari/server/state/ServiceComponentImpl.java | 7 ++++---
.../ambari/server/controller/AmbariManagementControllerTest.java | 2 +-
6 files changed, 14 insertions(+), 13 deletions(-)
diff --git a/ambari-admin/src/main/resources/ui/admin-web/bower.json b/ambari-admin/src/main/resources/ui/admin-web/bower.json
index 739eb3f..b814b9f 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/bower.json
+++ b/ambari-admin/src/main/resources/ui/admin-web/bower.json
@@ -19,8 +19,5 @@
"chai": "1.8.0",
"mocha": "1.14.0",
"sinon": "1.10.3"
- },
- "resolutions": {
- "angular": "1.7.5"
}
-}
\ No newline at end of file
+}
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/handlers/DeleteHandler.java b/ambari-server/src/main/java/org/apache/ambari/server/api/handlers/DeleteHandler.java
index f0314e1..f8b0a29 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/handlers/DeleteHandler.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/handlers/DeleteHandler.java
@@ -83,8 +83,10 @@ public class DeleteHandler extends BaseManagementHandler implements RequestHandl
return null;
}
- if (requestStatusMetaData.getClass() != DeleteStatusMetaData.class) {
- throw new IllegalArgumentException("RequestStatusDetails is not of type DeleteStatusDetails");
+ if (!(requestStatusMetaData instanceof DeleteStatusMetaData)) {
+ throw new IllegalArgumentException(
+ String.format("Wrong status details class received - expecting: %s; actual: %s",
+ DeleteStatusMetaData.class, requestStatusMetaData.getClass()));
}
DeleteStatusMetaData statusDetails = (DeleteStatusMetaData) requestStatusMetaData;
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
index cc82a2d..c6794f8 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/AmbariManagementControllerImpl.java
@@ -3605,12 +3605,13 @@ public class AmbariManagementControllerImpl implements AmbariManagementControlle
ServiceComponentHost componentHost = component.getServiceComponentHost(request.getHostname());
if (!componentHost.canBeRemoved()) {
- throw new AmbariException("Host Component cannot be removed"
+ throw new AmbariException("Current host component state prohibiting component removal."
+ ", clusterName=" + request.getClusterName()
+ ", serviceName=" + request.getServiceName()
+ ", componentName=" + request.getComponentName()
+ ", hostname=" + request.getHostname()
- + ", request=" + request);
+ + ", request=" + request
+ + ", state=" + componentHost.getState());
}
}
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/DeleteHostComponentStatusMetaData.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/DeleteHostComponentStatusMetaData.java
index 7237f5b..79bc26b 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/DeleteHostComponentStatusMetaData.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/internal/DeleteHostComponentStatusMetaData.java
@@ -37,7 +37,7 @@ public class DeleteHostComponentStatusMetaData extends DeleteStatusMetaData {
String clusterId, String version, State lastComponentState) {
removedHostComponents.add(new HostComponent(componentName, serviceName, hostId,
hostName, clusterId, version, lastComponentState));
- addDeletedKey(componentName + "/" + hostName);
+ addDeletedKey(hostName + "/" + componentName);
}
public Set<HostComponent> getRemovedHostComponents() {
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java
index 3374521..4cfa00d 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ServiceComponentImpl.java
@@ -558,14 +558,15 @@ public class ServiceComponentImpl implements ServiceComponent {
ServiceComponentHost sch = getServiceComponentHost(hostname);
LOG.info("Deleting servicecomponenthost for cluster" + ", clusterName=" + getClusterName()
+ ", serviceName=" + getServiceName() + ", componentName=" + getName()
- + ", recoveryEnabled=" + isRecoveryEnabled() + ", hostname=" + sch.getHostName());
+ + ", recoveryEnabled=" + isRecoveryEnabled() + ", hostname=" + sch.getHostName() + ", state=" + sch.getState());
if (!sch.canBeRemoved()) {
- throw new AmbariException("Could not delete hostcomponent from cluster"
+ throw new AmbariException("Current host component state prohibiting component removal."
+ ", clusterName=" + getClusterName()
+ ", serviceName=" + getServiceName()
+ ", componentName=" + getName()
+ ", recoveryEnabled=" + isRecoveryEnabled()
- + ", hostname=" + sch.getHostName());
+ + ", hostname=" + sch.getHostName()
+ + ", state=" + sch.getState());
}
sch.delete(deleteMetaData);
hostComponents.remove(hostname);
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
index 92b32ef..f8b8f4a 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/AmbariManagementControllerTest.java
@@ -7927,7 +7927,7 @@ public class AmbariManagementControllerTest {
Assert.fail("Expect failure while deleting.");
} catch (Exception ex) {
Assert.assertTrue(ex.getMessage().contains(
- "Host Component cannot be removed"));
+ "Current host component state prohibiting component removal"));
}
sc1.getServiceComponentHosts().values().iterator().next().setDesiredState(State.STARTED);