[openstack-dev] [Horizon] [swift] dependency on non-standardized, private APIs
Jay Pipes
jaypipes at gmail.com
Sat Mar 7 23:46:04 UTC 2015
Thanks very much, David, appreciated!
-jay
On 03/07/2015 02:25 PM, David Lyle wrote:
> 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
> <mailto: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
> <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>
> <mailto: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
> <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://OpenStack-dev-request@__lists.openstack.org?subject:__unsubscribe
> <http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>>
> Â Â
> http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev
> <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://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev
> <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://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe>
> http://lists.openstack.org/__cgi-bin/mailman/listinfo/__openstack-dev <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
>
More information about the OpenStack-dev
mailing list