Thanks, Rob. Changing to POST works fine! 
I am now able to kerberize the cluster using the REST API. However. starting 
services fails:
curl -H "X-Requested-By:ambari" -u admin:admin -i -X PUT -d '{"ServiceInfo": 
{"state" : "STARTED"}}' http://localhost:8080/api/v1/clusters/MyCluster/services
HTTP/1.1 400 Bad Request
User: admin
Set-Cookie: AMBARISESSIONID=n1bo172w5po26xndrqfg95z9;Path=/;Secure;HttpOnly
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Type: text/plain
Content-Length: 460
Server: Jetty(8.1.17.v20150415)

{
  "status" : 400,
  "message" : "java.lang.IllegalArgumentException: Missing KDC administrator 
credentials.\nThe KDC administrator credentials must be set in session by 
updating the relevant Cluster resource.This may be done by issuing a PUT to the 
api/v1/clusters/(cluster name) API entry point with the following payload:\n{\n 
 \"session_attributes\" : {\n    \"kerberos_admin\" : {\"principal\" : 
\"(PRINCIPAL)\", \"password\" : \"(PASSWORD)\"}\n  }\n}"
}
I then issued the command as suggested by the above message:curl -H 
"X-Requested-By:ambari" -u admin:admin -i -X PUT -d '{"session_attributes" : 
{"kerberos_admin" : {"principal" : "fay/[email protected]", "password" : 
"passw0rd"}}}' http://localhost:8080/api/v1/clusters/MyCluster

and then re-issued the start-service command. Still the start failed with the 
same error message.
Many thanks for your patience and help!
-fay

    On Thursday, January 7, 2016 5:28 PM, Robert Levas <[email protected]> 
wrote:
 

 Hi Fay...Instead of PUT, you should do a POST.  To create a new 
kerberos_descriptor artifact.  If a kerberos_descriptor artifact already 
existed, then you out PUT to update it.I'll have to check, is the documentation 
I correct or confusing?RobOn Jan 7, 2016, at 6:50 PM, Fay Wang 
<[email protected]> wrote:
Thanks, Rob, for the info!

I am able to get the default kerberos descriptor via REST api, but
get an error when issuing the following command to update the descriptor:
curl -H "X-Requested-By:ambari" -u admin:admin -i -X PUT -d 
@/tmp/descriptor_update.json 
http://localhost:8080/api/v1/clusters/MyCluster/artifacts/kerberos_descriptor

HTTP/1.1 100 Continue

HTTP/1.1 404 Not Found
User: admin
Set-Cookie: AMBARISESSIONID=ia3j9lvqclb6fytb01x5c2vl;Path=/;Secure;HttpOnly
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Content-Type: text/plain
Content-Length: 244
Server: Jetty(8.1.17.v20150415)

{
  "status" : 404,
  "message" : "org.apache.ambari.server.controller.spi.NoSuchResourceException: 
The requested resource doesn't exist: Artifact not found, 
Artifacts/cluster_name=MyCluster AND 
Artifacts/artifact_name=kerberos_descriptor"
}

The content of /tmp/descriptor_update.json:
{
  "artifact_data" : {
    "services" : [
      {
        "configurations" : [
          {
            "core-site" : {
              "hadoop.proxyuser.HTTP.hosts" : "*"
            }
          }
        ],
        "name" : "HIVE"
      }
    ]
  }
}

Thanks in advance for the help!
-fay




  

Reply via email to