-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/46199/
-----------------------------------------------------------
Review request for Ambari and Alejandro Fernandez.
Bugs: AMBARI-15866
https://issues.apache.org/jira/browse/AMBARI-15866
Repository: ambari
Description
-------
curl -u admin:admin
'http://myserver.mydomain.com:8080/api/v1/clusters/mycluster?regenerate_keytabs=all'
-X PUT -H 'X-Requested-By: ambari' --data
'{"Clusters":{"security_type":"KERBEROS"}}'
{
"href" :
"http://myserver.mydomain.com:8080/api/v1/clusters/mycluster?regenerate_keytabs=all/requests/15",
"Requests" :
{ "id" : 15, "status" : "Accepted" }
}
Notice the "regenerate_keytabs=all" piece in the URL returned by the Ambari
server. If user pulls request status against that URL, he will get the
following err.
curlit GET
http://myserver.mydomain.com:8080/api/v1/clusters/mycluster?regenerate_keytabs=all/requests/15
{ "status" : 400, "message" : "The properties [regenerate_keytabs] specified in
the request or predicate are not supported for the resource type Cluster." }
The correct url should be
http://myserver.mydomain.com:8080/api/v1/clusters/mycluster/requests/15
This does not effect Ambari web UI as Ambari UI pulls status of all requests by
/requests url, instead of using individual request URLs.
Diffs
-----
ambari-server/src/main/java/org/apache/ambari/server/api/resources/RequestResourceDefinition.java
cf3f267
Diff: https://reviews.apache.org/r/46199/diff/
Testing
-------
The issue is general, regardless whether the cluster is kerberized, as it's
about how the href url is parsed.
kerberized a trunk cluster, patch the cluster with fix.
1. submit REST API call to renew kerberos keytabs.
Verify the /requests URL returned is valid and can be used to pull request
status.
2. submit a custom action API (like the host check one).
Verify the existing href behavior is still correct.
3. Submit a rest api that does not need to return /requests url, like get stack
details REST API
Veriy the existing href behavior is still correct.
On a non-kerberized trunk cluster, patch the cluster with fix,
Repeat the 3 tests mentioned above.
Thanks,
Di Li