When creating an endpoint, it is possible to have an invalid URL by adding a space in "tenant_id."
keystone endpoint-create --service_id 410de5fed7544c90a36ebdb8b38f0cea --publicurl "http://127.0.0.1:8774 /v1.1/\$(tenant_i d)s" --adminurl " http://127.0.0.1:8774 /v1.1/\$(tenant_i d)s" --internalurl "http://127.0.0.1:8774 /v1.1/\$(tenant_i d)s"
It's your own fault if you make an endpoint with a space there, but it would still be nice for Keystone to stop you and give an error message such as, "Cannot create an endpoint with an invalid URL."
Note: This is NOT a duplicate of bug #1098564. This bug is fairly similar to https://bugs.launchpad.net/keystone/+bug/1098564, but that bug report is about not being able to delete the endpoint. I have a patch in progress that adds a test case for deleting the endpoint. My report is about suppressing invalid URLs; the other one is about deleting an endpoint with an invalid URL. These should have separate patches.
Are tenant_ids with a space valid? For that matter, are other characters that can break a url valid?
I think the fix lies at the point where tenant_ids may be created. This invalid url is just a side effect.