You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@trafficcontrol.apache.org by GitBox <gi...@apache.org> on 2018/12/03 16:13:29 UTC

[GitHub] ocket8888 opened a new issue #3077: POST method on /api/1.x/federations does not work

ocket8888 opened a new issue #3077: POST method on /api/1.x/federations does not work
URL: https://github.com/apache/trafficcontrol/issues/3077
 
 
   No matter what you put in this endpoint (provided it's valid JSON), it always returns a success while actually not doing anything.
   
   ## Example
   Consider a Traffic Ops instance where the only existing federation is given by this output from a `GET` request to `/api/1.4/federations`:
   ```json
   { "response": [
   	{
   		"mappings": [
   			{
   				"ttl": 300,
   				"cname": "blah.blah."
   			}
   		],
   		"deliveryService": "demo1"
   	}
   ]}
   ```
   Now I send a `POST` request to that endpoint to create resolvers for this federation (logged in as the 'admin' user):
   ```http
   POST /api/1.4/federations HTTP/1.1
   Host: trafficops.infra.ciab.test
   User-Agent: curl/7.47.0
   Accept: */*
   Cookie: mojolicious=...
   Content-Length: 74
   Content-Type: application/json
   
   {
   	"deliveryService": "demo1",
   	"resolve4": ["0.0.0.0"],
   	"resolve6": ["::"]
   }
   ```
   ... and the resulting API response:
   ```http
   HTTP/1.1 200 OK
   Access-Control-Allow-Credentials: true
   Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
   Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
   Access-Control-Allow-Origin: *
   Cache-Control: no-cache, no-store, max-age=0, must-revalidate
   Content-Type: application/json
   Date: Mon, 03 Dec 2018 16:02:00 GMT
   Server: Mojolicious (Perl)
   Set-Cookie: mojolicious=...; expires=Mon, 03 Dec 2018 20:02:00 GMT; path=/; HttpOnly
   Vary: Accept-Encoding
   Whole-Content-Sha512: dXg86uD2Un1AeBCeeBLSo2rsYgl6NOHHQEc5oMlpw1THOh2HwGdjwB3rPd/qoYIhOxcnnHoEstrEiHmucFev4A==
   Content-Length: 63
   
   {"response":"admin successfully created federation resolvers."}\0
   ```
   but a request to `api/1.4/federations/1/federation_resolvers` shows that no such thing took place:
   ```json
   {
   	"response": []
   }
   ```
   Note that `api/1.4/federations/1/users` shows that the 'admin' user is, in fact, associated with the federation identified by `1`:
   ```json
   { "response": [
   	{
   		"fullName": null,
   		"email": null,
   		"id": 2,
   		"role": "admin",
   		"company": null,
   		"username": "admin"
   	}
   ]}
   ```
   ### Input Doesn't Matter
   Even more troubling, the actual payload of the request appears to have no impact on what takes place, except that `POST`ing invalid JSON will result in an error and a large HTML document being returned to describe it. For example, sending the payload: `{"foo":"bar"}` will give the same successful message - again without actually doing anything:
   ```http
   HTTP/1.1 200 OK
   Access-Control-Allow-Credentials: true
   Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
   Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
   Access-Control-Allow-Origin: *
   Cache-Control: no-cache, no-store, max-age=0, must-revalidate
   Content-Type: application/json
   Date: Mon, 03 Dec 2018 16:03:37 GMT
   Server: Mojolicious (Perl)
   Set-Cookie: mojolicious=...; expires=Mon, 03 Dec 2018 20:02:00 GMT; path=/; HttpOnly
   Vary: Accept-Encoding
   Whole-Content-Sha512: dXg86uD2Un1AeBCeeBLSo2rsYgl6NOHHQEc5oMlpw1THOh2HwGdjwB3rPd/qoYIhOxcnnHoEstrEiHmucFev4A==
   Content-Length: 63
   
   {"response": "admin successfully created federation resolvers."}\0
   ```
   ## Intended Behavior
   I'm not actually sure what this is meant to do, since the `api/1.x/federations/{{federation ID}}/federation_resolver` and `api/1.x/federation_resolvers` endpoints appear to duplicate the intent specified in the documentation. It seems like there's no real use-case for this endpoint (at least not using `POST`), and the name is unclear at any rate - I would expect it to create a federation, not a federation _resolver_.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services