Fredrik Skolmli created NIFI-1543:
-------------------------------------
Summary: Updates through Rest Api with missing Content-Type header
results in misleading response
Key: NIFI-1543
URL: https://issues.apache.org/jira/browse/NIFI-1543
Project: Apache NiFi
Issue Type: Bug
Affects Versions: 0.4.1, 0.5.0
Reporter: Fredrik Skolmli
Priority: Minor
When updating an object, in this case an output port, the HTTP status code 409
Conflict is returned if the Content-Type header is missing. Given the Rest Api
documentation stating that 409 is a valid request that may be successfull at a
later time, this is misleading.
Example without the {{Content-Type: application/json}} header.
{code}
yes:~/tmp/.tmp.q7s7XMNR% curl
'http://192.168.2.2:8080/nifi-api/controller/revision' 2> /dev/null | python -m
json.tool
{
"revision": {
"clientId": "525f9a00-75bc-4cf9-966a-43b204ba7a37",
"lastModifier": "anonymous",
"version": 29
}
}
yes:~/tmp/.tmp.q7s7XMNR% curl -v
'http://192.168.2.2:8080/nifi-api/controller/process-groups/22cb7e60-e216-4b31-894b-23402113bf5d/output-ports/e290e44d-2f1e-4c93-bebe-db6b8fcb92f9'
-X PUT --data-binary
'{"revision":{"version":29,"clientId":"testing"},"outputPort":{"id":"e290e44d-2f1e-4c93-bebe-db6b8fcb92f9","name":"Test","comments":"","groupAccessControl":[],"userAccessControl":["uid=fredrik,ou=People,dc=example,dc=net"],"state":"STOPPED"}}'
--compressed
* Trying 192.168.2.2...
* Connected to 192.168.2.2 (192.168.2.2) port 8080 (#0)
> PUT
> /nifi-api/controller/process-groups/22cb7e60-e216-4b31-894b-23402113bf5d/output-ports/e290e44d-2f1e-4c93-bebe-db6b8fcb92f9
> HTTP/1.1
> Host: 192.168.2.2:8080
> User-Agent: curl/7.43.0
> Accept: */*
> Accept-Encoding: deflate, gzip
> Content-Length: 238
> Content-Type: application/x-www-form-urlencoded
>
* upload completely sent off: 238 out of 238 bytes
< HTTP/1.1 409 Conflict
< Date: Sat, 20 Feb 2016 00:15:21 GMT
< Content-Type: text/plain
< Transfer-Encoding: chunked
< Server: Jetty(9.2.11.v20150529)
<
* Connection #0 to host 192.168.2.2 left intact
This NiFi instance has been updated by 'anonymous'. Please refresh to
synchronize the view.
{code}
New request with the {{Content-Type}} header.
{code}yes:~/tmp/.tmp.q7s7XMNR% curl -v
'http://192.168.2.2:8080/nifi-api/controller/process-groups/22cb7e60-e216-4b31-894b-23402113bf5d/output-ports/e290e44d-2f1e-4c93-bebe-db6b8fcb92f9'
-X PUT -H "Content-Type: application/json" --data-binary
'{"revision":{"version":29,"clientId":"testing"},"outputPort":{"id":"e290e44d-2f1e-4c93-bebe-db6b8fcb92f9","name":"Test","comments":"","groupAccessControl":[],"userAccessControl":["uid=fredrik,ou=People,dc=frsk,dc=net"],"state":"STOPPED"}}'
--compressed
* Trying 192.168.2.2...
* Connected to 192.168.2.2 (192.168.2.2) port 8080 (#0)
> PUT
> /nifi-api/controller/process-groups/22cb7e60-e216-4b31-894b-23402113bf5d/output-ports/e290e44d-2f1e-4c93-bebe-db6b8fcb92f9
> HTTP/1.1
> Host: 192.168.2.2:8080
> User-Agent: curl/7.43.0
> Accept: */*
> Accept-Encoding: deflate, gzip
> Content-Type: application/json
> Content-Length: 238
>
* upload completely sent off: 238 out of 238 bytes
< HTTP/1.1 200 OK
< Date: Sat, 20 Feb 2016 00:15:45 GMT
< Cache-Control: private, no-cache, no-store, no-transform
< Content-Type: application/json
< Content-Encoding: gzip
< Vary: Accept-Encoding, User-Agent
< Transfer-Encoding: chunked
< Server: Jetty(9.2.11.v20150529)
<
* Connection #0 to host 192.168.2.2 left intact
{"revision":{"clientId":"testing","version":30},"outputPort":{"id":"e290e44d-2f1e-4c93-bebe-db6b8fcb92f9","uri":"http://192.168.2.2:8080/nifi-api/controller/process-groups/22cb7e60-e216-4b31-894b-23402113bf5d/output-ports/e290e44d-2f1e-4c93-bebe-db6b8fcb92f9","position":{"x":107.70379100534842,"y":-960.689503119667},"parentGroupId":"22cb7e60-e216-4b31-894b-23402113bf5d","name":"Test","comments":"","state":"STOPPED","type":"OUTPUT_PORT","transmitting":false,"concurrentlySchedulableTaskCount":1,"userAccessControl":["uid=fredrik,ou=People,dc=example,dc=net"],"groupAccessControl":[]}}%
yes:~/tmp/.tmp.q7s7XMNR%
{code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)