<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Mar 9, 2015 at 2:32 PM, Matthew Farina <span dir="ltr"><<a href="mailto:matt@mattfarina.com" target="_blank">matt@mattfarina.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>David,<br><br></div>FYI, the last time I chatted with John Dickinson I learned there are numerous API elements not documented. Not meant to be private but the docs have not kept up. How should we handle that?<br><br></div></div></div></blockquote><div><br></div><div>I've read through this thread and the bug comments and searched through the docs and I'd like more specifics: which docs have not kept up? Private API docs for swift internal workings? Or is this a header that could be in _some_ swift (not ceph) deployments?</div><div><br></div><div>Thanks,</div><div>Anne</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><br></div>Thanks,<br></div>Matt Farina<br></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Mar 7, 2015 at 5:25 PM, David Lyle <span dir="ltr"><<a href="mailto:dklyle0@gmail.com" target="_blank">dklyle0@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I agree that Horizon should not be requiring optional headers. Changing status of bug. </div><div><div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 3, 2015 at 5:51 PM, Jay Pipes <span dir="ltr"><<a href="mailto:jaypipes@gmail.com" target="_blank">jaypipes@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Added [swift] to topic.<span><br>
<br>
On 03/03/2015 07:41 AM, Matthew Farina wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Radoslaw,<br>
<br>
Unfortunately the documentation for OpenStack has some holes. What you<br>
are calling a private API may be something missed in the documentation.<br>
Is there a documentation bug on the issue? If not one should be created.<br>
</blockquote>
<br></span>
There is no indication that the X-Timestamp or X-Object-Meta-Mtime HTTP headers are part of the public Swift API:<br>
<br>
<a href="http://developer.openstack.org/api-ref-objectstorage-v1.html" target="_blank">http://developer.openstack.<u></u>org/api-ref-objectstorage-v1.<u></u>html</a><br>
<br>
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).<br>
<br>
But that is the private implementation and not part of the public API.<span><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In practice OpenStack isn't a specification and implementation. The<br>
documentation has enough missing information you can't treat it this<br>
way. If you want to contribute to improving the documentation I'm sure<br>
the documentation team would appreciate it. The last time I looked there<br>
were a number of undocumented public swift API details.<br>
</blockquote>
<br></span>
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).<br>
<br>
Best,<br>
-jay<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>
Best of luck,<br>
Matt Farina<br>
<br>
On Tue, Mar 3, 2015 at 9:59 AM, Radoslaw Zarzynski<br></span><div><div>
<<a href="mailto:rzarzynski@mirantis.com" target="_blank">rzarzynski@mirantis.com</a> <mailto:<a href="mailto:rzarzynski@mirantis.com" target="_blank">rzarzynski@mirantis.<u></u>com</a>>> wrote:<br>
<br>
    Guys,<br>
<br>
    I would like discuss a problem which can be seen in Horizon: breaking<br>
    the boundaries of public, well-specified Object Storage API in favour<br>
    of utilizing a Swift-specific extensions. Ticket #1297173 [1] may serve<br>
    as a good example of such violation. It is about relying on<br>
    non-standard (in the terms of OpenStack Object Storage API v1) and<br>
    undocumented HTTP header provided by Swift. In order to make<br>
    Ceph RADOS Gateway work correctly with Horizon, developers had to<br>
    inspect sources of Swift and implement the same behaviour.<br>
<br>
     From my perspective, that practise breaks the the mission of OpenStack<br>
    which is much more than delivering yet another IaaS/PaaS implementation.<br>
    I think its main goal is to provide a universal set of APIs covering all<br>
    functional areas relevant for cloud computing, and to place that set<br>
    of APIs in front as many implementations as possible. Having an open<br>
    source reference implementation of a particular API is required to prove<br>
    its viability, but is secondary to having an open and documented API.<br>
<br>
    I have full understanding that situations where the public OpenStack<br>
    interfaces are insufficient to get the work done might exist.<br>
    However, introduction of dependency on implementation-specific feature<br>
    (especially without giving the users a choice via e.g. some<br>
    configuration option) is not the proper way to deal with the problem.<br>
     From my point of view, such cases should be handled with adoption of<br>
    new, carefully designed and documented version of the given API.<br>
<br>
    In any case I think that Horizon, at least basic functionality, should<br>
    work with any storage which provides Object Storage API.<br>
    That being said, I'm willing to contribute such patches, if we decide<br>
    to go that way.<br>
<br>
    Best regards,<br>
    Radoslaw Zarzynski<br>
<br>
    [1] <a href="https://bugs.launchpad.net/horizon/+bug/1297173" target="_blank">https://bugs.launchpad.net/<u></u>horizon/+bug/1297173</a><br>
<br>
    ______________________________<u></u>______________________________<u></u>______________<br>
    OpenStack Development Mailing List (not for usage questions)<br>
    Unsubscribe:<br>
    <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.<u></u>openstack.org?subject:<u></u>unsubscribe</a><br></div></div>
    <<a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">http://OpenStack-dev-request@<u></u>lists.openstack.org?subject:<u></u>unsubscribe</a>><br>
    <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack-dev</a><span><br>
<br>
<br>
<br>
<br>
______________________________<u></u>______________________________<u></u>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.<u></u>openstack.org?subject:<u></u>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack-dev</a><br>
<br>
</span></blockquote><div><div>
<br>
______________________________<u></u>______________________________<u></u>______________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.<u></u>openstack.org?subject:<u></u>unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack-dev</a><br>
</div></div></blockquote></div><br></div>
</div></div><br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>
</div></div><br>__________________________________________________________________________<br>
OpenStack Development Mailing List (not for usage questions)<br>
Unsubscribe: <a href="http://OpenStack-dev-request@lists.openstack.org?subject:unsubscribe" target="_blank">OpenStack-dev-request@lists.openstack.org?subject:unsubscribe</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">Anne Gentle<br><a href="mailto:annegentle@justwriteclick.com" target="_blank">annegentle@justwriteclick.com</a></div>
</div></div>