If clients do not need a field, they can ignore the fields. However, in this case, the "versionId" field was used.
I'm using the jclouds java library for interacting with Keystone and Swift. It has a config option call "api-version" and defaults to "1". Things work just fine for cases when Keystone does not return the "versionId". However, if Keystone does return a "versionId", jclouds expects that the "api-version" should be exactly identical to the "versionId" returned by Keystone. In this case, the "versionId" returned was "1.0". Since "1" != "1.0" (string comparison), things failed :(.
Maybe there is some configuration required for jclouds, maybe there are some other improvements that could be done too. But that doesn't take away the fact there is a bug on the Keystone side.
Right now, I see that the documentation and the Keystone implementation are not in sync. Based on the discussion on the irc channel, the bug is in the documentation.
If clients do not need a field, they can ignore the fields. However, in this case, the "versionId" field was used.
I'm using the jclouds java library for interacting with Keystone and Swift. It has a config option call "api-version" and defaults to "1". Things work just fine for cases when Keystone does not return the "versionId". However, if Keystone does return a "versionId", jclouds expects that the "api-version" should be exactly identical to the "versionId" returned by Keystone. In this case, the "versionId" returned was "1.0". Since "1" != "1.0" (string comparison), things failed :(.
Maybe there is some configuration required for jclouds, maybe there are some other improvements that could be done too. But that doesn't take away the fact there is a bug on the Keystone side.
Right now, I see that the documentation and the Keystone implementation are not in sync. Based on the discussion on the irc channel, the bug is in the documentation.