)]}'
{"test/functional/__init__.py":[{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"b51d2e5334c9ed80f54319bf081e79b157b04ea2","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        # test.conf data"},{"line_number":62,"context_line":"        pass"},{"line_number":63,"context_line":"    else:"},{"line_number":64,"context_line":"        return"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    # Assume the person running the functional tests either has an"},{"line_number":67,"context_line":"    # /etc/swift/test.conf present, and properly configured with constraints,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FnTM%3D","line":64,"updated":"2014-04-11 18:23:36.000000000","message":"this is the wrong order, test.conf should take precedence - always\n\nI think the swift.conf integration was just a hack cause /info didn\u0027t have everything we needed.  You can either define what you want to test in test.conf, or defaults will be made up - using the constraints the reported by the swift cluster\u0027s /info endpoint seems way better than pretended your running functests on the a host that has access to the cluster\u0027s swift.conf","commit_id":"45b605e51a642a48f421868e7a423856e612a8de"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"042b7156fb18d2f38c003d27c53a490d9208e5a4","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        # test.conf data"},{"line_number":62,"context_line":"        pass"},{"line_number":63,"context_line":"    else:"},{"line_number":64,"context_line":"        return"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    # Assume the person running the functional tests either has an"},{"line_number":67,"context_line":"    # /etc/swift/test.conf present, and properly configured with constraints,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FY00%3D","line":64,"in_reply_to":"AAAAW3%2F%2FZhc%3D","updated":"2014-04-14 23:11:41.000000000","message":"Done","commit_id":"45b605e51a642a48f421868e7a423856e612a8de"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"f7a785796c372c831d96c65f193c0292babccc9e","unresolved":false,"context_lines":[{"line_number":61,"context_line":"        # test.conf data"},{"line_number":62,"context_line":"        pass"},{"line_number":63,"context_line":"    else:"},{"line_number":64,"context_line":"        return"},{"line_number":65,"context_line":""},{"line_number":66,"context_line":"    # Assume the person running the functional tests either has an"},{"line_number":67,"context_line":"    # /etc/swift/test.conf present, and properly configured with constraints,"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2FZhc%3D","line":64,"in_reply_to":"AAAAW3%2F%2FnTM%3D","updated":"2014-04-14 21:06:42.000000000","message":"Okay, I\u0027ll make it work that way.","commit_id":"45b605e51a642a48f421868e7a423856e612a8de"},{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"32c1c1f96f41cfa149f018689d4ece1275fdcd2e","unresolved":false,"context_lines":[{"line_number":75,"context_line":"            # swift.conf exists, so use what\u0027s defined there (or swift"},{"line_number":76,"context_line":"            # defaults) This normally happens when the test is running locally"},{"line_number":77,"context_line":"            # to the cluster as in a SAIO."},{"line_number":78,"context_line":"            test_config[k] \u003d constraints.EFFECTIVE_CONSTRAINTS[k]"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"    # Just make it look like these constraints were loaded from a /info call"},{"line_number":81,"context_line":"    cluster_info[\u0027swift\u0027] \u003d test_config"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAAW3%2F%2Fjlc%3D","line":78,"updated":"2014-04-12 19:22:23.000000000","message":"Consider this: https://gist.github.com/notmyname/a4e78a0b6d2cff73b669\n\nThis change will replace lines 66 to 78 with Swift\u0027s default constraint loading.\n\nOverall, I think it\u0027s better (in DRY way), but there are 2 downsides:\n\n1) it\u0027s a little ugly because of setting the file location (this is fixable, but IMO not essential for this patch set)\n\n2) It requires a change to the format of test.conf to use the [swift-constraints] section, same as swift.conf (but your patch is already changing that...)","commit_id":"45b605e51a642a48f421868e7a423856e612a8de"}],"test/functional/swift_test_client.py":[{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"8315a479d378a947efd537e150dfbfbb8712b131","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                           (request, len(fail_messages), fail_messages))"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    def put_start(self, path, hdrs\u003d{}, parms\u003d{}, cfg\u003d{}, chunked\u003dFalse):"},{"line_number":281,"context_line":"        self.http_connect()"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        path \u003d self.make_path(path, cfg)"},{"line_number":284,"context_line":"        headers \u003d self.make_headers(hdrs, cfg\u003dcfg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2Ft0A%3D","side":"PARENT","line":281,"updated":"2014-04-10 22:00:54.000000000","message":"What is the removal of http_connect about? Relying on authenticate() always present or what?","commit_id":"4721deeb40554ffb5ce03b3ba59085ef403eef33"},{"author":{"_account_id":597,"name":"Pete Zaitcev","email":"zaitcev@kotori.zaitcev.us","username":"zaitcev"},"change_message_id":"a34c2a0224f2d615af79c91584c3ae5b4fcfc7f5","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                           (request, len(fail_messages), fail_messages))"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    def put_start(self, path, hdrs\u003d{}, parms\u003d{}, cfg\u003d{}, chunked\u003dFalse):"},{"line_number":281,"context_line":"        self.http_connect()"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        path \u003d self.make_path(path, cfg)"},{"line_number":284,"context_line":"        headers \u003d self.make_headers(hdrs, cfg\u003dcfg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2FsOI%3D","side":"PARENT","line":281,"in_reply_to":"AAAAW3%2F%2Fsxs%3D","updated":"2014-04-11 05:18:05.000000000","message":"Oh god, I see it now. Jeez, sorry.","commit_id":"4721deeb40554ffb5ce03b3ba59085ef403eef33"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"70f06eb61ac9466c9ce13ac69faf0aee54a40582","unresolved":false,"context_lines":[{"line_number":278,"context_line":"                           (request, len(fail_messages), fail_messages))"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    def put_start(self, path, hdrs\u003d{}, parms\u003d{}, cfg\u003d{}, chunked\u003dFalse):"},{"line_number":281,"context_line":"        self.http_connect()"},{"line_number":282,"context_line":""},{"line_number":283,"context_line":"        path \u003d self.make_path(path, cfg)"},{"line_number":284,"context_line":"        headers \u003d self.make_headers(hdrs, cfg\u003dcfg)"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAAW3%2F%2Fsxs%3D","side":"PARENT","line":281,"in_reply_to":"AAAAW3%2F%2Ft0A%3D","updated":"2014-04-11 02:18:19.000000000","message":"See line 298 below, vs definition of of http_connect above (line 195).","commit_id":"4721deeb40554ffb5ce03b3ba59085ef403eef33"}],"test/sample.conf":[{"author":{"_account_id":330,"name":"John Dickinson","email":"me@not.mn","username":"notmyname"},"change_message_id":"32c1c1f96f41cfa149f018689d4ece1275fdcd2e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"# check_server_timeout \u003d 30"},{"line_number":35,"context_line":"# validate_rsync \u003d false"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"[swift]"},{"line_number":38,"context_line":"# The functional test runner will try to use the constraint values provided by"},{"line_number":39,"context_line":"# the /info API call (if successful)."},{"line_number":40,"context_line":"#"}],"source_content_type":"text/plain","patch_set":4,"id":"AAAAW3%2F%2FjlE%3D","line":37,"updated":"2014-04-12 19:22:23.000000000","message":"Since you are changing this anyway, I propose you change it to \"swift-constraints\" to match swift.conf (see my other inline comment as to why).","commit_id":"45b605e51a642a48f421868e7a423856e612a8de"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"042b7156fb18d2f38c003d27c53a490d9208e5a4","unresolved":false,"context_lines":[{"line_number":34,"context_line":"# check_server_timeout \u003d 30"},{"line_number":35,"context_line":"# validate_rsync \u003d false"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"[swift]"},{"line_number":38,"context_line":"# The functional test runner will try to use the constraint values provided by"},{"line_number":39,"context_line":"# the /info API call (if successful)."},{"line_number":40,"context_line":"#"}],"source_content_type":"text/plain","patch_set":4,"id":"AAAAW3%2F%2FY0o%3D","line":37,"in_reply_to":"AAAAW3%2F%2FZiY%3D","updated":"2014-04-14 23:11:41.000000000","message":"Done","commit_id":"45b605e51a642a48f421868e7a423856e612a8de"},{"author":{"_account_id":6198,"name":"Peter Portante","email":"peter.a.portante@gmail.com","username":"peter-a-portante"},"change_message_id":"f7a785796c372c831d96c65f193c0292babccc9e","unresolved":false,"context_lines":[{"line_number":34,"context_line":"# check_server_timeout \u003d 30"},{"line_number":35,"context_line":"# validate_rsync \u003d false"},{"line_number":36,"context_line":""},{"line_number":37,"context_line":"[swift]"},{"line_number":38,"context_line":"# The functional test runner will try to use the constraint values provided by"},{"line_number":39,"context_line":"# the /info API call (if successful)."},{"line_number":40,"context_line":"#"}],"source_content_type":"text/plain","patch_set":4,"id":"AAAAW3%2F%2FZiY%3D","line":37,"in_reply_to":"AAAAW3%2F%2FjlE%3D","updated":"2014-04-14 21:06:42.000000000","message":"Okay, I\u0027ll do that.","commit_id":"45b605e51a642a48f421868e7a423856e612a8de"}]}
