ambari-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sean Roberts (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (AMBARI-9016) API not taking or responding with application/json
Date Fri, 17 Jun 2016 16:52:05 GMT

     [ https://issues.apache.org/jira/browse/AMBARI-9016?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Sean Roberts updated AMBARI-9016:
---------------------------------
    Description: 
The  stack advisor API does not accept application/json even though it expects JSON files.
And it responds with "text/plain" even though the content it is sending is JSON.

This breaks most any http library or application. Such as those made to work with RESTful
APIs.

The API does not accept JSON and when it responds with JSON it says it's "text/plain":
{code}
$ curl -v -u admin\
  -H "Content-Type: application/json" -H x-requested-by:useless \
  http://localhost:8080/api/v1/stacks/HDP/versions/2.4/recommendations -d @temp.json

< HTTP/1.1 500 Server Error
< Content-Type: text/plain; charset=ISO-8859-1
{
  "status": 500,
  "message": "Server Error"
}
{code}

Meanwhile it accepts JSON as text/plain and still responds with "text/plain" even though it
is sending JSON:

{code}
$ curl -v -u admin\
  -H "Content-Type: test/plain" -H x-requested-by:useless \
  http://localhost:8080/api/v1/stacks/HDP/versions/2.4/recommendations -d @temp.json

> POST /api/v1/stacks/HDP/versions/2.4/recommendations HTTP/1.1
> Content-Type: test/plain
< HTTP/1.1 200 OK
< Content-Type: text/plain
{
  "resources" : [
    {
      "href" : "http://localhost:8080/api/v1/stacks/HDP/versions/2.4/recommendations/8",
... snipped the rest of the JSON since it's not needed ...
{code}

{code}
$ cat temp.json
    {
      "recommend" : "configurations",
      "services" : [ "AMBARI_METRICS","HDFS","HIVE","MAPREDUCE2","PIG","TEZ","YARN","ZOOKEEPER"
],
      "hosts" : [ "ip-10-0-1-159.ec2.internal","ip-10-0-1-31.ec2.internal","ip-10-0-1-32.ec2.internal","ip-10-0-1-33.ec2.internal"
]
    }
{code}

  was:
The blueprints API, when taking & responding with json, is only accepting Content-Type:application/x-www-form-urlencode
and responds with Content-Type:text/plain.

For example, the 1st block below sends the json as application/json but fails. While the 2nd
block sends  "application/x-www-form-urlencoded" and succeeds. Also note that the 2nd response
comes back as "text/plain" even though the data is json.




The API does not accept JSON and when it responds with JSON it says it's "text/plain":
{code}
$ curl -v -u admin\
  -H "Content-Type: application/json" -H x-requested-by:useless \
  http://localhost:8080/api/v1/stacks/HDP/versions/2.4/recommendations -d @temp.json

< HTTP/1.1 500 Server Error
< Content-Type: text/plain; charset=ISO-8859-1
{
  "status": 500,
  "message": "Server Error"
}
{code}

Meanwhile it accepts JSON as text/plain and still responds with "text/plain" even though it
is sending JSON:

{code}
$ curl -v -u admin\
  -H "Content-Type: test/plain" -H x-requested-by:useless \
  http://localhost:8080/api/v1/stacks/HDP/versions/2.4/recommendations -d @temp.json

> POST /api/v1/stacks/HDP/versions/2.4/recommendations HTTP/1.1
> Content-Type: test/plain
< HTTP/1.1 200 OK
< Content-Type: text/plain
{
  "resources" : [
    {
      "href" : "http://localhost:8080/api/v1/stacks/HDP/versions/2.4/recommendations/8",
... snipped the rest of the JSON since it's not needed ...
{code}

{code}
$ cat temp.json
    {
      "recommend" : "configurations",
      "services" : [ "AMBARI_METRICS","HDFS","HIVE","MAPREDUCE2","PIG","TEZ","YARN","ZOOKEEPER"
],
      "hosts" : [ "ip-10-0-1-159.ec2.internal","ip-10-0-1-31.ec2.internal","ip-10-0-1-32.ec2.internal","ip-10-0-1-33.ec2.internal"
]
    }
{code}


> API not taking or responding with application/json
> --------------------------------------------------
>
>                 Key: AMBARI-9016
>                 URL: https://issues.apache.org/jira/browse/AMBARI-9016
>             Project: Ambari
>          Issue Type: Bug
>          Components: ambari-server
>    Affects Versions: 1.7.0
>            Reporter: Sean Roberts
>            Priority: Minor
>              Labels: newbie
>
> The  stack advisor API does not accept application/json even though it expects JSON files.
> And it responds with "text/plain" even though the content it is sending is JSON.
> This breaks most any http library or application. Such as those made to work with RESTful
APIs.
> The API does not accept JSON and when it responds with JSON it says it's "text/plain":
> {code}
> $ curl -v -u admin\
>   -H "Content-Type: application/json" -H x-requested-by:useless \
>   http://localhost:8080/api/v1/stacks/HDP/versions/2.4/recommendations -d @temp.json
> < HTTP/1.1 500 Server Error
> < Content-Type: text/plain; charset=ISO-8859-1
> {
>   "status": 500,
>   "message": "Server Error"
> }
> {code}
> Meanwhile it accepts JSON as text/plain and still responds with "text/plain" even though
it is sending JSON:
> {code}
> $ curl -v -u admin\
>   -H "Content-Type: test/plain" -H x-requested-by:useless \
>   http://localhost:8080/api/v1/stacks/HDP/versions/2.4/recommendations -d @temp.json
> > POST /api/v1/stacks/HDP/versions/2.4/recommendations HTTP/1.1
> > Content-Type: test/plain
> < HTTP/1.1 200 OK
> < Content-Type: text/plain
> {
>   "resources" : [
>     {
>       "href" : "http://localhost:8080/api/v1/stacks/HDP/versions/2.4/recommendations/8",
> ... snipped the rest of the JSON since it's not needed ...
> {code}
> {code}
> $ cat temp.json
>     {
>       "recommend" : "configurations",
>       "services" : [ "AMBARI_METRICS","HDFS","HIVE","MAPREDUCE2","PIG","TEZ","YARN","ZOOKEEPER"
],
>       "hosts" : [ "ip-10-0-1-159.ec2.internal","ip-10-0-1-31.ec2.internal","ip-10-0-1-32.ec2.internal","ip-10-0-1-33.ec2.internal"
]
>     }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message