)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"52bc9b42c8be20ad927208eecdf5acc6bfdd663e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"Add container and account reverse listings"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This change adds the ability to tell the container or account server to"},{"line_number":10,"context_line":"reverse there listings. This is done by sending a reverse\u003dTRUE_VALUE,"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Where TRUE_VALUE is one of the values true can be in common/utils:"},{"line_number":13,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":14,"id":"ba8a016a_b51ac26d","line":10,"updated":"2015-11-24 15:08:28.000000000","message":"nit s/there/their/\n\nawww Matt you\u0027re usually so hot on commit message grammar :P","commit_id":"ecd4243d00ee65be42ca0eb9651791b51ff8efc0"}],"doc/source/api/object_api_v1_overview.rst":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b876cc3bf3bf4f505b784900a00fc4ee6df95851","unresolved":false,"context_lines":[{"line_number":129,"context_line":"*``marker``*, *``limit``*, and *``end_marker``* query parameters to"},{"line_number":130,"context_line":"control how many items are returned in a list and where the list starts"},{"line_number":131,"context_line":"or ends. If you want to page through in reverse order, you can use the query"},{"line_number":132,"context_line":"parameter *``reverse``*."},{"line_number":133,"context_line":""},{"line_number":134,"context_line":"Object Storage HTTP requests have the following default constraints."},{"line_number":135,"context_line":"Your service provider might use different default values."}],"source_content_type":"text/x-rst","patch_set":7,"id":"fa1b9901_fe593d5b","line":132,"updated":"2015-08-19 02:53:33.000000000","message":"We may want to clarify what this does to the semantics of marker/end_marker and limit.","commit_id":"c9853b949f9933acafe029d33bef436ff31a16d3"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"52bc9b42c8be20ad927208eecdf5acc6bfdd663e","unresolved":false,"context_lines":[{"line_number":129,"context_line":"*``marker``*, *``limit``*, and *``end_marker``* query parameters to"},{"line_number":130,"context_line":"control how many items are returned in a list and where the list starts"},{"line_number":131,"context_line":"or ends. If you want to page through in reverse order, you can use the query"},{"line_number":132,"context_line":"parameter *``reverse``*, noting that your marker and end_markers will be"},{"line_number":133,"context_line":"applied to a reverse listing should be switched. I.e, for a list of objects"},{"line_number":134,"context_line":"``[a, b, c, d, e]`` the non-reversed could be:"},{"line_number":135,"context_line":""}],"source_content_type":"text/x-rst","patch_set":14,"id":"ba8a016a_75de9a12","line":132,"updated":"2015-11-24 15:08:28.000000000","message":"nit: not sure the (existing) *``thing``* formatting is correct/helpful - it results in double-back-ticked italicized text.","commit_id":"ecd4243d00ee65be42ca0eb9651791b51ff8efc0"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"52bc9b42c8be20ad927208eecdf5acc6bfdd663e","unresolved":false,"context_lines":[{"line_number":130,"context_line":"control how many items are returned in a list and where the list starts"},{"line_number":131,"context_line":"or ends. If you want to page through in reverse order, you can use the query"},{"line_number":132,"context_line":"parameter *``reverse``*, noting that your marker and end_markers will be"},{"line_number":133,"context_line":"applied to a reverse listing should be switched. I.e, for a list of objects"},{"line_number":134,"context_line":"``[a, b, c, d, e]`` the non-reversed could be:"},{"line_number":135,"context_line":""},{"line_number":136,"context_line":".. code::"}],"source_content_type":"text/x-rst","patch_set":14,"id":"ba8a016a_3523325a","line":133,"updated":"2015-11-24 15:08:28.000000000","message":"something\u0027s not right in this phrase \"noting that your marker and end_markers will be applied to a reverse listing should be switched\"\n\nshould it be :\n\n  \"noting that your marker and end_markers should be switched when applied to a reverse listing\"","commit_id":"ecd4243d00ee65be42ca0eb9651791b51ff8efc0"}],"swift/account/backend.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b876cc3bf3bf4f505b784900a00fc4ee6df95851","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        (marker, end_marker, prefix, delimiter) \u003d utf8encode("},{"line_number":385,"context_line":"            marker, end_marker, prefix, delimiter)"},{"line_number":386,"context_line":"        if reverse:"},{"line_number":387,"context_line":"            # Reverse the markers if we are revering the listing."},{"line_number":388,"context_line":"            marker, end_marker \u003d end_marker, marker"},{"line_number":389,"context_line":"        self._commit_puts_stale_ok()"},{"line_number":390,"context_line":"        if delimiter and not prefix:"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_de1c7979","line":387,"updated":"2015-08-19 02:53:33.000000000","message":"Nit: s/revering/reversing/","commit_id":"c9853b949f9933acafe029d33bef436ff31a16d3"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"084a4217269a7ae4d87d8ea1cee9699420f7ce76","unresolved":false,"context_lines":[{"line_number":384,"context_line":"        (marker, end_marker, prefix, delimiter) \u003d utf8encode("},{"line_number":385,"context_line":"            marker, end_marker, prefix, delimiter)"},{"line_number":386,"context_line":"        if reverse:"},{"line_number":387,"context_line":"            # Reverse the markers if we are revering the listing."},{"line_number":388,"context_line":"            marker, end_marker \u003d end_marker, marker"},{"line_number":389,"context_line":"        self._commit_puts_stale_ok()"},{"line_number":390,"context_line":"        if delimiter and not prefix:"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_494ab427","line":387,"in_reply_to":"fa1b9901_de1c7979","updated":"2015-08-26 01:26:19.000000000","message":"Done","commit_id":"c9853b949f9933acafe029d33bef436ff31a16d3"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b876cc3bf3bf4f505b784900a00fc4ee6df95851","unresolved":false,"context_lines":[{"line_number":405,"context_line":"                    query +\u003d \u0027 name \u003e ? AND\u0027"},{"line_number":406,"context_line":"                    query_args.append(marker)"},{"line_number":407,"context_line":"                elif prefix:"},{"line_number":408,"context_line":"                    query +\u003d \u0027 name like ? AND\u0027"},{"line_number":409,"context_line":"                    query_args.append(prefix + \u0027%\u0027)"},{"line_number":410,"context_line":"                if self.get_db_version(conn) \u003c 1:"},{"line_number":411,"context_line":"                    query +\u003d \u0027 +deleted \u003d 0\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_81f460f2","line":408,"updated":"2015-08-19 02:53:33.000000000","message":"Does this have any performance implications? I\u0027d wager they\u0027re small (and that this would be worth it), but it\u0027d probably be good to investigate. Surely there was *some* reason we weren\u0027t doing this before, right?","commit_id":"c9853b949f9933acafe029d33bef436ff31a16d3"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"203f614d4a85a269de78ae34e9810917280b1514","unresolved":false,"context_lines":[{"line_number":405,"context_line":"                    query +\u003d \u0027 name \u003e ? AND\u0027"},{"line_number":406,"context_line":"                    query_args.append(marker)"},{"line_number":407,"context_line":"                elif prefix:"},{"line_number":408,"context_line":"                    query +\u003d \u0027 name like ? AND\u0027"},{"line_number":409,"context_line":"                    query_args.append(prefix + \u0027%\u0027)"},{"line_number":410,"context_line":"                if self.get_db_version(conn) \u003c 1:"},{"line_number":411,"context_line":"                    query +\u003d \u0027 +deleted \u003d 0\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_eabbc173","line":408,"in_reply_to":"fa1b9901_81f460f2","updated":"2015-08-25 23:29:58.000000000","message":"The more I think about this, the less I like it. prefix may contain special characters like % or _. Couldn\u0027t we just turn prefix into an end marker? Something like http://paste.openstack.org/show/427522/","commit_id":"c9853b949f9933acafe029d33bef436ff31a16d3"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"084a4217269a7ae4d87d8ea1cee9699420f7ce76","unresolved":false,"context_lines":[{"line_number":405,"context_line":"                    query +\u003d \u0027 name \u003e ? AND\u0027"},{"line_number":406,"context_line":"                    query_args.append(marker)"},{"line_number":407,"context_line":"                elif prefix:"},{"line_number":408,"context_line":"                    query +\u003d \u0027 name like ? AND\u0027"},{"line_number":409,"context_line":"                    query_args.append(prefix + \u0027%\u0027)"},{"line_number":410,"context_line":"                if self.get_db_version(conn) \u003c 1:"},{"line_number":411,"context_line":"                    query +\u003d \u0027 +deleted \u003d 0\u0027"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_09e27c2f","line":408,"in_reply_to":"fa1b9901_eabbc173","updated":"2015-08-26 01:26:19.000000000","message":"hmm, prefix_end, nice idea Tim thanks, I\u0027ll throw that in (and in the container backend as well and see how it goes). We could escape %, _ etc, but your end_prefix probably works out better :)","commit_id":"c9853b949f9933acafe029d33bef436ff31a16d3"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b876cc3bf3bf4f505b784900a00fc4ee6df95851","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                        # empty string, so avoid performing the extra work to"},{"line_number":428,"context_line":"                        # check against an empty prefix."},{"line_number":429,"context_line":"                        return [r for r in curs]"},{"line_number":430,"context_line":"                    else:"},{"line_number":431,"context_line":"                        return [r for r in curs if r[0].startswith(prefix)]"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"                # We have a delimiter and a prefix (possibly empty string) to"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_61658cdf","line":430,"updated":"2015-08-19 02:53:33.000000000","message":"We no longer need the if clause here, yeah? So the whole thing could be simplified to\n\n    if prefix is None or not delimiter:\n        return [r for r in curs]","commit_id":"c9853b949f9933acafe029d33bef436ff31a16d3"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"084a4217269a7ae4d87d8ea1cee9699420f7ce76","unresolved":false,"context_lines":[{"line_number":427,"context_line":"                        # empty string, so avoid performing the extra work to"},{"line_number":428,"context_line":"                        # check against an empty prefix."},{"line_number":429,"context_line":"                        return [r for r in curs]"},{"line_number":430,"context_line":"                    else:"},{"line_number":431,"context_line":"                        return [r for r in curs if r[0].startswith(prefix)]"},{"line_number":432,"context_line":""},{"line_number":433,"context_line":"                # We have a delimiter and a prefix (possibly empty string) to"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_e92ce8ad","line":430,"in_reply_to":"fa1b9901_61658cdf","updated":"2015-08-26 01:26:19.000000000","message":"Nice spot, thanks again","commit_id":"c9853b949f9933acafe029d33bef436ff31a16d3"}],"swift/container/backend.py":[{"author":{"_account_id":2649,"name":"Zhang Hua","email":"zhuadl@cn.ibm.com","username":"zhang-hare"},"change_message_id":"0f005aa242b23851b6df62a8e7df938149727b24","unresolved":false,"context_lines":[{"line_number":577,"context_line":"        self._commit_puts_stale_ok()"},{"line_number":578,"context_line":"        if reverse:"},{"line_number":579,"context_line":"            # Reverse the markers if we are revering the listing."},{"line_number":580,"context_line":"            marker, end_marker \u003d end_marker, marker"},{"line_number":581,"context_line":"        if path is not None:"},{"line_number":582,"context_line":"            prefix \u003d path"},{"line_number":583,"context_line":"            if path:"}],"source_content_type":"text/x-python","patch_set":3,"id":"da9df570_00bc5405","line":580,"updated":"2014-09-26 08:01:07.000000000","message":"do we really need to reverse the markers provided by client?\nI think the client should be able to aware of the correct marker sequence if it request reversed listing. Or we can check it for the client to make sure they are in correct sequence.","commit_id":"749d6898fa860e777c571569a76d7bc6b22252d7"},{"author":{"_account_id":9625,"name":"Thiago da Silva","email":"thiagodasilva@gmail.com","username":"thiago"},"change_message_id":"114ea360515a077671cf7e238a2920d6e335ea97","unresolved":false,"context_lines":[{"line_number":579,"context_line":"            marker, end_marker, prefix, delimiter, path)"},{"line_number":580,"context_line":"        self._commit_puts_stale_ok()"},{"line_number":581,"context_line":"        if reverse:"},{"line_number":582,"context_line":"            # Reverse the markers if we are revering the listing."},{"line_number":583,"context_line":"            marker, end_marker \u003d end_marker, marker"},{"line_number":584,"context_line":"        if path is not None:"},{"line_number":585,"context_line":"            prefix \u003d path"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a50d1a3_6f128464","line":582,"updated":"2015-07-20 19:35:44.000000000","message":"nit: s/revering/reversing","commit_id":"31ceb052a0ac127344c7e2a4cd46fb5eb3356b80"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"631c9b21d03a3adee3363906ef9021e65bbd0ece","unresolved":false,"context_lines":[{"line_number":662,"context_line":"                    if path is not None:"},{"line_number":663,"context_line":"                        if name \u003d\u003d path:"},{"line_number":664,"context_line":"                            continue"},{"line_number":665,"context_line":"                        if end \u003e\u003d 0 and len(name) \u003e end + len(delimiter):"},{"line_number":666,"context_line":"                            marker \u003d name[:end] + chr(ord(delimiter) + 1)"},{"line_number":667,"context_line":"                            curs.close()"},{"line_number":668,"context_line":"                            break"}],"source_content_type":"text/x-python","patch_set":11,"id":"da85f559_6bf87d7d","line":665,"updated":"2015-11-07 01:09:59.000000000","message":"Crap!\n\n chr(ord(delimiter) + (1 if not reverse else -1))","commit_id":"30776428e4195aebe65e229b882b636ec6493424"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"dae59a10ce845b918a9bf18be5d29ff59ce4a830","unresolved":false,"context_lines":[{"line_number":599,"context_line":"                           FROM object WHERE\u0027\u0027\u0027"},{"line_number":600,"context_line":"                query_args \u003d []"},{"line_number":601,"context_line":"                if inclusive_paging and reverse:"},{"line_number":602,"context_line":"                    query +\u003d \u0027 name \u003c\u003d ? AND\u0027"},{"line_number":603,"context_line":"                    query_args.append(end_marker)"},{"line_number":604,"context_line":"                    # Always set back to False"},{"line_number":605,"context_line":"                    inclusive_paging \u003d False"}],"source_content_type":"text/x-python","patch_set":13,"id":"da85f559_6bc6ef4a","line":602,"updated":"2015-11-10 02:13:25.000000000","message":"are we sure this evaluation is correct?  when I change it to \"\u003c\" no tests fail.","commit_id":"ba4f028fbd1df1e4e869f9a3f8a4df2ad19a7418"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"6e61f1cbd0997edbcdc47d4444cd3fb101246e1e","unresolved":false,"context_lines":[{"line_number":599,"context_line":"                           FROM object WHERE\u0027\u0027\u0027"},{"line_number":600,"context_line":"                query_args \u003d []"},{"line_number":601,"context_line":"                if inclusive_paging and reverse:"},{"line_number":602,"context_line":"                    query +\u003d \u0027 name \u003c\u003d ? AND\u0027"},{"line_number":603,"context_line":"                    query_args.append(end_marker)"},{"line_number":604,"context_line":"                    # Always set back to False"},{"line_number":605,"context_line":"                    inclusive_paging \u003d False"}],"source_content_type":"text/x-python","patch_set":13,"id":"da85f559_538f6675","line":602,"in_reply_to":"da85f559_6bc6ef4a","updated":"2015-11-13 17:24:44.000000000","message":"Yeah, you\u0027re right. We only need to do the inclusive paging when going forward, and only because we bump the final character. When going backward, we should just truncate (no bump)","commit_id":"ba4f028fbd1df1e4e869f9a3f8a4df2ad19a7418"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"52bc9b42c8be20ad927208eecdf5acc6bfdd663e","unresolved":false,"context_lines":[{"line_number":590,"context_line":"        elif delimiter and not prefix:"},{"line_number":591,"context_line":"            prefix \u003d \u0027\u0027"},{"line_number":592,"context_line":"        if prefix:"},{"line_number":593,"context_line":"            end_prefix \u003d prefix[:-1] + chr(ord(prefix[-1]) + 1)"},{"line_number":594,"context_line":"        orig_marker \u003d marker"},{"line_number":595,"context_line":"        with self.get() as conn:"},{"line_number":596,"context_line":"            results \u003d []"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_b5f7a8f4","line":593,"updated":"2015-11-24 15:08:28.000000000","message":"If prefix[-1] \u003d\u003d \u0027\\xff\u0027 i.e. chr(255) then this line would raise a ValueError. \n\nHowever, I\u0027m not sure if that condition is possible - I can certainly generate it via the unit test but not via a func test because the prefix param would not be valid utf8 (so I get a 400 if I send ?prefix\u003d\u0027\\xff\u0027","commit_id":"ecd4243d00ee65be42ca0eb9651791b51ff8efc0"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"bbb4cf42a4dadb656eb946f4e25bca7cf7ed1912","unresolved":false,"context_lines":[{"line_number":669,"context_line":"                            continue"},{"line_number":670,"context_line":"                        if end \u003e\u003d 0 and len(name) \u003e end + len(delimiter):"},{"line_number":671,"context_line":"                            if reverse:"},{"line_number":672,"context_line":"                                end_marker \u003d name[:end + 1]"},{"line_number":673,"context_line":"                            else:"},{"line_number":674,"context_line":"                                marker \u003d name[:end] + chr(ord(delimiter) + 1)"},{"line_number":675,"context_line":"                            curs.close()"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba8a016a_c1028cb4","line":672,"updated":"2015-11-21 00:58:47.000000000","message":"untested.","commit_id":"ecd4243d00ee65be42ca0eb9651791b51ff8efc0"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"d27866b77bcd53b4cdff074355ca6f4cabf7984e","unresolved":false,"context_lines":[{"line_number":669,"context_line":"                            continue"},{"line_number":670,"context_line":"                        if end \u003e\u003d 0 and len(name) \u003e end + len(delimiter):"},{"line_number":671,"context_line":"                            if reverse:"},{"line_number":672,"context_line":"                                end_marker \u003d name[:end + 1]"},{"line_number":673,"context_line":"                            else:"},{"line_number":674,"context_line":"                                marker \u003d name[:end] + chr(ord(delimiter) + 1)"},{"line_number":675,"context_line":"                            curs.close()"}],"source_content_type":"text/x-python","patch_set":14,"id":"ba8a016a_3641120c","line":672,"in_reply_to":"ba8a016a_c1028cb4","updated":"2015-11-23 21:58:28.000000000","message":"Addressed in follow-up patch https://review.openstack.org/#/c/248924/","commit_id":"ecd4243d00ee65be42ca0eb9651791b51ff8efc0"}],"test/functional/tests.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"b876cc3bf3bf4f505b784900a00fc4ee6df95851","unresolved":false,"context_lines":[{"line_number":346,"context_line":"                raise ResponseError(cls.conn.response)"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"class TestAccountSorting(Base):"},{"line_number":350,"context_line":"    env \u003d TestAccountSortingEnv"},{"line_number":351,"context_line":"    set_up \u003d False"},{"line_number":352,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_61f6ecd8","line":349,"updated":"2015-08-19 02:53:33.000000000","message":"Mind adding some marker/end_marker/limit/prefix/delimiter tests, too? I could help write them, if you like.","commit_id":"c9853b949f9933acafe029d33bef436ff31a16d3"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"084a4217269a7ae4d87d8ea1cee9699420f7ce76","unresolved":false,"context_lines":[{"line_number":346,"context_line":"                raise ResponseError(cls.conn.response)"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"class TestAccountSorting(Base):"},{"line_number":350,"context_line":"    env \u003d TestAccountSortingEnv"},{"line_number":351,"context_line":"    set_up \u003d False"},{"line_number":352,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_84cc31bc","line":349,"in_reply_to":"fa1b9901_53958584","updated":"2015-08-26 01:26:19.000000000","message":"Awesome thanks man, I\u0027ll add them and adapt them when testing the object listings below.","commit_id":"c9853b949f9933acafe029d33bef436ff31a16d3"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"203f614d4a85a269de78ae34e9810917280b1514","unresolved":false,"context_lines":[{"line_number":346,"context_line":"                raise ResponseError(cls.conn.response)"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"class TestAccountSorting(Base):"},{"line_number":350,"context_line":"    env \u003d TestAccountSortingEnv"},{"line_number":351,"context_line":"    set_up \u003d False"},{"line_number":352,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"fa1b9901_53958584","line":349,"in_reply_to":"fa1b9901_61f6ecd8","updated":"2015-08-25 23:29:58.000000000","message":"I think I\u0027d be content here with something like http://paste.openstack.org/show/427523/","commit_id":"c9853b949f9933acafe029d33bef436ff31a16d3"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"5e20ef1701fd5a2f53e270cce7d00096443945e2","unresolved":false,"context_lines":[{"line_number":743,"context_line":"    env \u003d TestContainerSortingEnv"},{"line_number":744,"context_line":"    set_up \u003d False"},{"line_number":745,"context_line":""},{"line_number":746,"context_line":"    def testContainerFileListSorting(self):"},{"line_number":747,"context_line":"        # name (byte order) sorting."},{"line_number":748,"context_line":"        file_list \u003d list(sorted(self.env.file_items))"},{"line_number":749,"context_line":"        file_list.reverse()"}],"source_content_type":"text/x-python","patch_set":8,"id":"da20952f_5d6a14b4","line":746,"updated":"2015-09-08 06:31:10.000000000","message":"Good thinking Christian, thanks. I\u0027ll upload a new patchset soon.","commit_id":"9c1719c7f0de3f7b3df17f7b25ecaf6ff49c8b93"},{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@redhat.com","username":"cschwede"},"change_message_id":"13d5398d51e7291792a371228c71efa39f0d549c","unresolved":false,"context_lines":[{"line_number":743,"context_line":"    env \u003d TestContainerSortingEnv"},{"line_number":744,"context_line":"    set_up \u003d False"},{"line_number":745,"context_line":""},{"line_number":746,"context_line":"    def testContainerFileListSorting(self):"},{"line_number":747,"context_line":"        # name (byte order) sorting."},{"line_number":748,"context_line":"        file_list \u003d list(sorted(self.env.file_items))"},{"line_number":749,"context_line":"        file_list.reverse()"}],"source_content_type":"text/x-python","patch_set":8,"id":"da20952f_05057e0f","line":746,"updated":"2015-09-04 12:36:38.000000000","message":"Maybe include \"Reverse\" in this and the following test names, to make it clear that this is the test for reverse sorting (appears in the test output)?\n\nAlso, I think I there should be another test without the reverse option and with some invalid args to \"reverse\" - just to ensure the default order is correct and there is no regression here.","commit_id":"9c1719c7f0de3f7b3df17f7b25ecaf6ff49c8b93"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"52bc9b42c8be20ad927208eecdf5acc6bfdd663e","unresolved":false,"context_lines":[{"line_number":346,"context_line":"                raise ResponseError(cls.conn.response)"},{"line_number":347,"context_line":""},{"line_number":348,"context_line":""},{"line_number":349,"context_line":"class TestAccountSorting(Base):"},{"line_number":350,"context_line":"    env \u003d TestAccountSortingEnv"},{"line_number":351,"context_line":"    set_up \u003d False"},{"line_number":352,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_2c0a8ad3","line":349,"updated":"2015-11-24 15:08:28.000000000","message":"no tests with delimiter \u0026 reverse\n\nno tests with reverse\u003dfalse","commit_id":"ecd4243d00ee65be42ca0eb9651791b51ff8efc0"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"52bc9b42c8be20ad927208eecdf5acc6bfdd663e","unresolved":false,"context_lines":[{"line_number":740,"context_line":"            cls.files.append(file_item.name)"},{"line_number":741,"context_line":""},{"line_number":742,"context_line":""},{"line_number":743,"context_line":"class TestContainerSorting(Base):"},{"line_number":744,"context_line":"    env \u003d TestContainerSortingEnv"},{"line_number":745,"context_line":"    set_up \u003d False"},{"line_number":746,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_4c6cae9c","line":743,"updated":"2015-11-24 15:08:28.000000000","message":"no tests with delimiter \u0026 reverse","commit_id":"ecd4243d00ee65be42ca0eb9651791b51ff8efc0"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"52bc9b42c8be20ad927208eecdf5acc6bfdd663e","unresolved":false,"context_lines":[{"line_number":796,"context_line":"        self.assert_status(200)"},{"line_number":797,"context_line":"        self.assertEqual(file_list, cont_files)"},{"line_number":798,"context_line":""},{"line_number":799,"context_line":"        # Lets try again but with reverse is specifically turned off"},{"line_number":800,"context_line":"        cont_files \u003d self.env.container.files(parms\u003d{\u0027reverse\u0027: \u0027off\u0027})"},{"line_number":801,"context_line":"        self.assert_status(200)"},{"line_number":802,"context_line":"        self.assertEqual(file_list, cont_files)"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_0ec1bee4","line":799,"updated":"2015-11-24 15:08:28.000000000","message":"there is no equivalent test for the various \u0027on\u0027 values","commit_id":"ecd4243d00ee65be42ca0eb9651791b51ff8efc0"}],"test/unit/container/test_backend.py":[{"author":{"_account_id":6968,"name":"Christian Schwede","email":"cschwede@redhat.com","username":"cschwede"},"change_message_id":"4add31ebe3ffc2e02d82abbaff3375741b4c8737","unresolved":false,"context_lines":[{"line_number":992,"context_line":"            \u0027text/plain\u0027, \u0027d41d8cd98f00b204e9800998ecf8427e\u0027)"},{"line_number":993,"context_line":""},{"line_number":994,"context_line":"        #def list_objects_iter(self, limit, marker, prefix, delimiter,"},{"line_number":995,"context_line":"        #                      path\u003dNone, format\u003dNone):"},{"line_number":996,"context_line":"        listing \u003d broker.list_objects_iter(100, None, None, \u0027\u0027, \u0027\u0027,"},{"line_number":997,"context_line":"                                           order\u003d\u0027byte\u0027, reverse\u003dFalse)"},{"line_number":998,"context_line":"        self.assertEquals([row[0] for row in listing],"}],"source_content_type":"text/x-python","patch_set":1,"id":"fa98f980_779c226b","line":995,"updated":"2014-09-11 07:44:49.000000000","message":"Just a nitpick, but maybe you could remove this line if you change something else","commit_id":"c08f434e95cb1a1227338ddb17bd43c45318fc94"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"52bc9b42c8be20ad927208eecdf5acc6bfdd663e","unresolved":false,"context_lines":[{"line_number":991,"context_line":"                    \"With objects %(objects)r, the params %(params)r \""},{"line_number":992,"context_line":"                    \"produced %(listing)r instead of %(expected)r\" % expected)"},{"line_number":993,"context_line":"        self.assertFalse(failures, \"Found the following failures:\\n%s\" %"},{"line_number":994,"context_line":"                         \u0027\\n\u0027.join(failures))"},{"line_number":995,"context_line":""},{"line_number":996,"context_line":"    def test_list_objects_iter_non_slash(self):"},{"line_number":997,"context_line":"        # Test ContainerBroker.list_objects_iter using a"}],"source_content_type":"text/x-python","patch_set":14,"id":"9a8ffd7b_b856b804","line":994,"updated":"2015-11-24 15:08:28.000000000","message":"nice","commit_id":"ecd4243d00ee65be42ca0eb9651791b51ff8efc0"}]}
