[openstack-dev] [Horizon] [swift] dependency on non-standardized, private APIs
David Lyle
dklyle0 at gmail.com
Sat Mar 7 22:25:52 UTC 2015
I agree that Horizon should not be requiring optional headers. Changing
status of bug.
On Tue, Mar 3, 2015 at 5:51 PM, Jay Pipes <jaypipes at gmail.com> wrote:
> Added [swift] to topic.
>
> On 03/03/2015 07:41 AM, Matthew Farina wrote:
>
>> Radoslaw,
>>
>> Unfortunately the documentation for OpenStack has some holes. What you
>> are calling a private API may be something missed in the documentation.
>> Is there a documentation bug on the issue? If not one should be created.
>>
>
> There is no indication that the X-Timestamp or X-Object-Meta-Mtime HTTP
> headers are part of the public Swift API:
>
> http://developer.openstack.org/api-ref-objectstorage-v1.html
>
> I don't believe this is a bug in the Swift API documentation, either. John
> Dickinson (cc'd) mentioned that the X-Timestamp HTTP header is required for
> the Swift implementation of container replication (John, please do correct
> me if wrong on that).
>
> But that is the private implementation and not part of the public API.
>
> In practice OpenStack isn't a specification and implementation. The
>> documentation has enough missing information you can't treat it this
>> way. If you want to contribute to improving the documentation I'm sure
>> the documentation team would appreciate it. The last time I looked there
>> were a number of undocumented public swift API details.
>>
>
> The bug here is not in the documentation. The bug is that Horizon is coded
> to rely on HTTP headers that are not in the Swift API. Horizon should be
> fixed to use <DICT>.get('X-Timestamp') instead of doing
> <DICT>['X-Timestamp'] in its view pages for container details. There are
> already patches up that the Horizon developers have, IMO erroneously,
> rejected stating this is a problem in Ceph RadosGW for not properly
> following the Swift API).
>
> Best,
> -jay
>
> Best of luck,
>> Matt Farina
>>
>> On Tue, Mar 3, 2015 at 9:59 AM, Radoslaw Zarzynski
>> <rzarzynski at mirantis.com <mailto:rzarzynski at mirantis.com>> wrote:
>>
>> Guys,
>>
>> I would like discuss a problem which can be seen in Horizon: breaking
>> the boundaries of public, well-specified Object Storage API in favour
>> of utilizing a Swift-specific extensions. Ticket #1297173 [1] may
>> serve
>> as a good example of such violation. It is about relying on
>> non-standard (in the terms of OpenStack Object Storage API v1) and
>> undocumented HTTP header provided by Swift. In order to make
>> Ceph RADOS Gateway work correctly with Horizon, developers had to
>> inspect sources of Swift and implement the same behaviour.
>>
>> From my perspective, that practise breaks the the mission of
>> OpenStack
>> which is much more than delivering yet another IaaS/PaaS
>> implementation.
>> I think its main goal is to provide a universal set of APIs covering
>> all
>> functional areas relevant for cloud computing, and to place that set
>> of APIs in front as many implementations as possible. Having an open
>> source reference implementation of a particular API is required to
>> prove
>> its viability, but is secondary to having an open and documented API.
>>
>> I have full understanding that situations where the public OpenStack
>> interfaces are insufficient to get the work done might exist.
>> However, introduction of dependency on implementation-specific feature
>> (especially without giving the users a choice via e.g. some
>> configuration option) is not the proper way to deal with the problem.
>> From my point of view, such cases should be handled with adoption of
>> new, carefully designed and documented version of the given API.
>>
>> In any case I think that Horizon, at least basic functionality, should
>> work with any storage which provides Object Storage API.
>> That being said, I'm willing to contribute such patches, if we decide
>> to go that way.
>>
>> Best regards,
>> Radoslaw Zarzynski
>>
>> [1] https://bugs.launchpad.net/horizon/+bug/1297173
>>
>> ____________________________________________________________
>> ______________
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe:
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe
>> >
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>
>>
>>
>> ____________________________________________________________
>> ______________
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:
>> unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150307/b239ab09/attachment.html>
More information about the OpenStack-dev
mailing list