Setting tempurl key does not check if tempurl is enabled

Bug #1322056 reported by Shri Javadekar on 2014-05-22
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Object Storage (swift)

Bug Description

Is is possible to set the tempurl key on a Swift account even if tempurl itself is not present in the pipeline. This makes it very confusing to figure out whether tempurl is actually configured on the cluster or not.

Yes, there are ways to use /info and find out whether tempurl is enabled or not. But not all Swift installations support /info.

It'll be much better if setting a tempurl key on an account will fail if tempurl is not enabled.

clayg (clay-gerrard) wrote :

well the key X-Account-Meta-Temp-Url-Key is really just user metadata, you can always set X-Account-Meta-Foo or any other user metadata key. It just so happens and maybe it's unfortunate that a very common piece of middleware that's enabled in a bunch of clusters is using this particular key in the user metadata space for a well understood purpose - but it's as completely meaningless and inscrutable as any other key in the user metadata namespace without the tempurl middleware installed. Nevertheless, I think it would be a violation of the user metadata namespace to restrict this particular key in the general case.

I am personally of the opinion that it *would* be reasonable to explore the idea of moving Temp-Url-Key to sysmeta (probably X-Temp-Url-Key at the api level). And it should be fairly manageable to support fully backwards compatible translation for reads and writes without a migration on the account db's - maybe it would be a good idea for someone interested in seeing that to work on it...

But I don't think this is really a bug?

David Goetz (david-goetz) wrote :

This problem was solved with the /info call. One of its main purposes was so that swift could have all these possible features that wouldn't have to written or edited in such a way to make them discoverable. An exact case like this could be made for every one of those other features. I don't think we should start down that path.

Is there a good reason why some swift clusters don't implement the /info call? Maybe that call can be changed so that its more palatable to them.

Samuel Merritt (torgomatic) wrote :

Every time I've seen someone whose Swift cluster didn't support /info, it was because they were running an old version of Swift.

I know you *can* disable /info in the proxy config, but I haven't seen anyone actually do it.

Thiago da Silva (thiagodasilva) wrote :

Settings this as an enhancement that could be made to Swift. I like Clay's idea of moving the key to a sysmeta.

Changed in swift:
status: New → Confirmed
importance: Undecided → Wishlist
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers