)]}'
{"tempest/scenario/test_load_balancer_basic.py":[{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"10e37497cf649ac98ae6f5652420673fea6b0df4","unresolved":false,"context_lines":[{"line_number":163,"context_line":"                                               ip,"},{"line_number":164,"context_line":"                                               username, key.name)"},{"line_number":165,"context_line":"            # Start netcat"},{"line_number":166,"context_line":"            start_server \u003d \"\"\"sudo nc -ll -p %(port)s -e cat \"\"\" \\"},{"line_number":167,"context_line":"                           \"\"\"~/%(script)s \u0026\"\"\""},{"line_number":168,"context_line":"            cmd \u003d start_server % {\u0027port\u0027: self.port1,"},{"line_number":169,"context_line":"                                  \u0027script\u0027: \u0027script1\u0027}"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_8dd77122","line":166,"updated":"2014-06-20 15:55:07.000000000","message":"I have tried several nc variant to find the one which liked by the Haproxy.\n\nThis type was the working one:\nbusybox nc -ll -p 9002 -e sh -c \"echo -ne \u0027HTTP/1.1 200 OK\\r\\nContent-Length: 8\\r\\nConnection: close\\r\\nContent-Type: text/html; charset\u003dUTF-8\\r\\n\\r\\nserver2\\n\u0027; cat \u003e/dev/null\"\n\n\nThe \u0027cat \u003e/dev/null\u0027 at the end of the command, waits until the haproxy closes (RST) or shutdown (FIN) the connection.\n\nThis type of server WORKED for me without any zero body response.\n\nSo you can remove all httplib.BadStatusLine after you apply the cat.\n\nPlease fix the Contet-Length header as well.","commit_id":"f6d9e7043673cbe141e81fa7a8ef42778efcd08d"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"aea8c4fed63a6de9e0d6d91014cdff49dd6486e3","unresolved":false,"context_lines":[{"line_number":298,"context_line":"                                 set(resp))"},{"line_number":299,"context_line":"            # NOTE: There always is a slim chance of getting this exception"},{"line_number":300,"context_line":"            #       due to special aspects of haproxy internal behavior."},{"line_number":301,"context_line":"            except httplib.BadStatusLine:"},{"line_number":302,"context_line":"                pass"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_740e2a34","line":301,"updated":"2014-06-16 18:18:06.000000000","message":"Do we need to expect this kind of response after two request ?","commit_id":"f6d9e7043673cbe141e81fa7a8ef42778efcd08d"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"1cafc3e1cb34a38f63cf87e974c1c3ce929f2dad","unresolved":false,"context_lines":[{"line_number":298,"context_line":"                                 set(resp))"},{"line_number":299,"context_line":"            # NOTE: There always is a slim chance of getting this exception"},{"line_number":300,"context_line":"            #       due to special aspects of haproxy internal behavior."},{"line_number":301,"context_line":"            except httplib.BadStatusLine:"},{"line_number":302,"context_line":"                pass"},{"line_number":303,"context_line":""},{"line_number":304,"context_line":"    @test.attr(type\u003d\u0027smoke\u0027)"}],"source_content_type":"text/x-python","patch_set":1,"id":"1ae5cdf2_f4615aa9","line":301,"in_reply_to":"1ae5cdf2_740e2a34","updated":"2014-06-16 18:25:08.000000000","message":"Yes, there always is a non-zero probability (however small) of getting this exception even in case of one request. I\u0027m afraid it cannot be helped.","commit_id":"f6d9e7043673cbe141e81fa7a8ef42778efcd08d"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"bcbe42a2c02141c893f4e998c9dcdd4e030ddae5","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"            # Write a backend\u0027s responce into a file"},{"line_number":152,"context_line":"            resp \u003d \"\"\"echo -ne \"HTTP/1.1 200 OK\\r\\nContent-Length: 7\\r\\n\"\"\" \\"},{"line_number":153,"context_line":"                   \"\"\"Connection: close\\r\\nContent-Type: text/html; \"\"\" \\"},{"line_number":154,"context_line":"                   \"\"\"charset\u003dUTF-8\\r\\n\\r\\n%s\"; cat \u003e/dev/null\"\"\""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"            with tempfile.NamedTemporaryFile() as script:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_32df083c","line":153,"updated":"2014-06-25 16:21:55.000000000","message":"text/plain","commit_id":"0c8e329c54fe00dc18309ae008e8c34c7f100ff9"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"658e2a03acb0fd79fe627f4e4490c06140ff5590","unresolved":false,"context_lines":[{"line_number":150,"context_line":""},{"line_number":151,"context_line":"            # Write a backend\u0027s responce into a file"},{"line_number":152,"context_line":"            resp \u003d \"\"\"echo -ne \"HTTP/1.1 200 OK\\r\\nContent-Length: 7\\r\\n\"\"\" \\"},{"line_number":153,"context_line":"                   \"\"\"Connection: close\\r\\nContent-Type: text/html; \"\"\" \\"},{"line_number":154,"context_line":"                   \"\"\"charset\u003dUTF-8\\r\\n\\r\\n%s\"; cat \u003e/dev/null\"\"\""},{"line_number":155,"context_line":""},{"line_number":156,"context_line":"            with tempfile.NamedTemporaryFile() as script:"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_9228d798","line":153,"in_reply_to":"1ae5cdf2_32df083c","updated":"2014-06-25 18:43:54.000000000","message":"Thanks, I will fix it","commit_id":"0c8e329c54fe00dc18309ae008e8c34c7f100ff9"},{"author":{"_account_id":5803,"name":"Attila Fazekas","email":"afazekas@redhat.com","username":"afazekas"},"change_message_id":"bcbe42a2c02141c893f4e998c9dcdd4e030ddae5","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                with tempfile.NamedTemporaryFile() as key:"},{"line_number":160,"context_line":"                    key.write(private_key)"},{"line_number":161,"context_line":"                    key.flush()"},{"line_number":162,"context_line":"                    commands.copy_file_to_host(script.name,"},{"line_number":163,"context_line":"                                               \"/tmp/script1\","},{"line_number":164,"context_line":"                                               ip,"},{"line_number":165,"context_line":"                                               username, key.name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_d2b8a4ea","line":162,"updated":"2014-06-25 16:21:55.000000000","message":"Probably it can work without file copy, just with a long command.","commit_id":"0c8e329c54fe00dc18309ae008e8c34c7f100ff9"},{"author":{"_account_id":7293,"name":"Elena Ezhova","email":"ezhovaelena19@gmail.com","username":"elena"},"change_message_id":"658e2a03acb0fd79fe627f4e4490c06140ff5590","unresolved":false,"context_lines":[{"line_number":159,"context_line":"                with tempfile.NamedTemporaryFile() as key:"},{"line_number":160,"context_line":"                    key.write(private_key)"},{"line_number":161,"context_line":"                    key.flush()"},{"line_number":162,"context_line":"                    commands.copy_file_to_host(script.name,"},{"line_number":163,"context_line":"                                               \"/tmp/script1\","},{"line_number":164,"context_line":"                                               ip,"},{"line_number":165,"context_line":"                                               username, key.name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ae5cdf2_d24b3f84","line":162,"in_reply_to":"1ae5cdf2_d2b8a4ea","updated":"2014-06-25 18:43:54.000000000","message":"In this case it would be very long and almost impossible to read.\n\nLike this, but way more complex:\n\n\"\"\"sudo sh -c \"echo -e \\\\\"echo -e \u0027HTTP/1.0 200 OK\\\\\\\\\\\\r\\\\\\\\\\\\n\\\\\\\\\\\\r\\\\\\\\\\\\n%(server)s\u0027\\\\\" \u003e\u003e/home/cirros/%(script)s\\\"\"\"\"","commit_id":"0c8e329c54fe00dc18309ae008e8c34c7f100ff9"},{"author":{"_account_id":8576,"name":"Yair Fried","email":"yfried@redhat.com","username":"yfried"},"change_message_id":"58fb2632f0ac695036f74e0607562d312b39f32d","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        count \u003d 0"},{"line_number":287,"context_line":"        while count \u003c num_req:"},{"line_number":288,"context_line":"            resp \u003d []"},{"line_number":289,"context_line":"            for i in range(len(self.members)):"},{"line_number":290,"context_line":"                resp.append("},{"line_number":291,"context_line":"                    urllib2.urlopen("},{"line_number":292,"context_line":"                        \"http://{0}/\".format(vip_ip)).read())"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab895d6_e8e6fb43","line":289,"updated":"2014-06-29 08:18:13.000000000","message":"this is extremely out of scope for this, but - why not\n\"for i in self.members\"? it\u0027s the same effect, but simpler code.\n\nDoes this save time/memory?","commit_id":"0c8e329c54fe00dc18309ae008e8c34c7f100ff9"}]}
