This Bug Report affects these Traffic Control components:
Current behavior:
When updating a Delivery Service, the routing name is immutable if it has SSL keys (since that would invalidate them) - unless you change the Routing Name to the default routing name. You can only do this by omitting that field or explicitly setting it to null, in which case Traffic Ops silently updates it to "cdn", even if changing the Routing Name would not normally be allowed.
Expected behavior:
Routing Names should just be immutable. Probably just all the time, even when there are no SSL keys, just for consistency. Also, per HTTP spec, the PUT request really ought to be a FULL representation of the DS - a null value shouldn't be implicitly converted to something besides null.
But those are just my opinions. Regardless, the Routing Name should be incapable of changing when it's supposed to be immutable, even to a default value.
Steps to reproduce:
- Create a DS with the Routing Name e.g. "notcdn"
- Ensure SSL keys have been generated for the DS (may have been done automatically on creation)
toget -kpa 3.1 "deliveryservices/$ID" | jq '.response[0]' | jq '.routingName = null' | toput -kpa 3.1 "deliveryservices/$ID" where $ID is the ID of the DS created in step 1.
- Observe in the output that the Routing Name has been changed to "cdn".
This Bug Report affects these Traffic Control components:
Current behavior:
When updating a Delivery Service, the routing name is immutable if it has SSL keys (since that would invalidate them) - unless you change the Routing Name to the default routing name. You can only do this by omitting that field or explicitly setting it to
null, in which case Traffic Ops silently updates it to "cdn", even if changing the Routing Name would not normally be allowed.Expected behavior:
Routing Names should just be immutable. Probably just all the time, even when there are no SSL keys, just for consistency. Also, per HTTP spec, the PUT request really ought to be a FULL representation of the DS - a null value shouldn't be implicitly converted to something besides null.
But those are just my opinions. Regardless, the Routing Name should be incapable of changing when it's supposed to be immutable, even to a default value.
Steps to reproduce:
toget -kpa 3.1 "deliveryservices/$ID" | jq '.response[0]' | jq '.routingName = null' | toput -kpa 3.1 "deliveryservices/$ID"where$IDis the ID of the DS created in step 1.