Details
-
Bug
-
Status: Resolved
-
Critical
-
Resolution: Fixed
-
2.0.0
-
None
Description
IllegalArgumentException when calling host API that includes host with no cluster association.
http://c6401.ambari.apache.org:8080/api/v1/hosts/c6403.ambari.apache.org { "status" : 400, "message" : "Invalid Request: Invalid arguments, cluster name should not be null" }
The agent is running on c6403.ambari.apache.org, but it has not been added to the cluster.
In the stack trace ...
java.lang.IllegalArgumentException: Invalid arguments, cluster name should not be null
at org.apache.ambari.server.controller.AmbariManagementControllerImpl.getConfigurations(AmbariManagementControllerImpl.java:1076)
at org.apache.ambari.server.controller.AmbariManagementControllerImpl.getConfigurations(AmbariManagementControllerImpl.java:2683)
at org.apache.ambari.server.controller.internal.ConfigurationResourceProvider$2.invoke(ConfigurationResourceProvider.java:154)
at org.apache.ambari.server.controller.internal.ConfigurationResourceProvider$2.invoke(ConfigurationResourceProvider.java:151)
at org.apache.ambari.server.controller.internal.AbstractResourceProvider.getResources(AbstractResourceProvider.java:302)
at org.apache.ambari.server.controller.internal.ConfigurationResourceProvider.getResources(ConfigurationResourceProvider.java:151)
at org.apache.ambari.server.controller.internal.AbstractProviderModule.getDesiredConfigMap(AbstractProviderModule.java:800)
at org.apache.ambari.server.controller.internal.AbstractProviderModule.getCollectorPortName(AbstractProviderModule.java:287)
at org.apache.ambari.server.controller.metrics.timeline.AMSPropertyProvider.getMetricsRequests(AMSPropertyProvider.java:411)
at org.apache.ambari.server.controller.metrics.timeline.AMSPropertyProvider.populateResourcesWithProperties(AMSPropertyProvider.java:345)
at org.apache.ambari.server.controller.metrics.MetricsPropertyProvider.populateResources(MetricsPropertyProvider.java:127)
at org.apache.ambari.server.controller.metrics.MetricsPropertyProviderProxy.populateResources(MetricsPropertyProviderProxy.java:170)
... it looks like the AMS is trying to populate the metrics for the host and it calls an internal method that expects the host to be associated with a cluster.
STR :
- Create a cluster with AMS.
- Install ambari-agent on host that is not currently in cluster and set hostname in its /etc/ambari-agent/conf/ambari-agent.ini
- call API to get hosts at root level http://c6401.ambari.apache.org:8080/api/v1/hosts/c6403.ambari.apache.org