)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"98b1d23a382878faf225625a5848e960e60eeea2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     sandriichenko \u003csandriichenko@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-10-30 16:10:38 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix for port status, sometimes ti doesn\u0027t become ACTIVE quickly"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I8baa3e61789b0553b9f85214b60c9e0b8dafde31"},{"line_number":10,"context_line":"Closes-Bug: #1728600"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f4b6375_2eb83228","line":7,"range":{"start_line":7,"start_character":21,"end_line":7,"end_character":30},"updated":"2017-11-02 02:02:43.000000000","message":"Can you write the condition of this failure on the commit message ?\n\nIt is necessary to write why we need the timeout to discuss it on this review.","commit_id":"56cc919f3e7845ecd73a4e613152c99b98c5c634"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"98b1d23a382878faf225625a5848e960e60eeea2","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     sandriichenko \u003csandriichenko@mirantis.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2017-10-30 16:10:38 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Fix for port status, sometimes ti doesn\u0027t become ACTIVE quickly"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Change-Id: I8baa3e61789b0553b9f85214b60c9e0b8dafde31"},{"line_number":10,"context_line":"Closes-Bug: #1728600"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":1,"id":"3f4b6375_6e406a36","line":7,"range":{"start_line":7,"start_character":31,"end_line":7,"end_character":33},"updated":"2017-11-02 02:02:43.000000000","message":"s/ti/it/","commit_id":"56cc919f3e7845ecd73a4e613152c99b98c5c634"}],"tempest/common/waiters.py":[{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"328b981f95e8d7f955accc9ee03618f2e7545c81","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"def wait_for_interface_status(client, server_id, port_id, status):"},{"line_number":269,"context_line":"    \"\"\"Waits for an interface to reach a (one of) given status(es).\"\"\""},{"line_number":270,"context_line":"    if isinstance(status, six.string_types):"},{"line_number":271,"context_line":"        status \u003d [status]"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    body \u003d (client.show_interface(server_id, port_id)"},{"line_number":274,"context_line":"            [\u0027interfaceAttachment\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_0b4a11ac","line":271,"range":{"start_line":270,"start_character":0,"end_line":271,"end_character":25},"updated":"2018-06-21 00:54:09.000000000","message":"Why not:\n\n    if not isinstance(status, list):\n        status \u003d [status]","commit_id":"c5dd82d424f10ebbb5ef89b2e23c145fe854924c"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"9d3a5912e7c6ddc4c4a5ab41d2bcd2e10375241e","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"def wait_for_interface_status(client, server_id, port_id, status):"},{"line_number":269,"context_line":"    \"\"\"Waits for an interface to reach a (one of) given status(es).\"\"\""},{"line_number":270,"context_line":"    if isinstance(status, six.string_types):"},{"line_number":271,"context_line":"        status \u003d [status]"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    body \u003d (client.show_interface(server_id, port_id)"},{"line_number":274,"context_line":"            [\u0027interfaceAttachment\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_233ad131","line":271,"range":{"start_line":270,"start_character":0,"end_line":271,"end_character":25},"in_reply_to":"3f79a3b5_2634a2ab","updated":"2018-12-14 14:58:46.000000000","message":"Because if a tuple or a set was passed in, it would fail. using string_types is the correct way to handle this.","commit_id":"c5dd82d424f10ebbb5ef89b2e23c145fe854924c"},{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"ef3eefe10a462a1e30971a7d668b5efd69dd61ac","unresolved":false,"context_lines":[{"line_number":267,"context_line":""},{"line_number":268,"context_line":"def wait_for_interface_status(client, server_id, port_id, status):"},{"line_number":269,"context_line":"    \"\"\"Waits for an interface to reach a (one of) given status(es).\"\"\""},{"line_number":270,"context_line":"    if isinstance(status, six.string_types):"},{"line_number":271,"context_line":"        status \u003d [status]"},{"line_number":272,"context_line":""},{"line_number":273,"context_line":"    body \u003d (client.show_interface(server_id, port_id)"},{"line_number":274,"context_line":"            [\u0027interfaceAttachment\u0027])"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_2634a2ab","line":271,"range":{"start_line":270,"start_character":0,"end_line":271,"end_character":25},"in_reply_to":"5f7c97a3_0b4a11ac","updated":"2018-10-26 05:42:52.000000000","message":"+1\nIMO too: Felipe\u0027s approach is better. whatever the value of status, either string or anything else that can be changed to list type instead of checking only string type.\n\nAlso, in that case there will be no use of L[17] which can be removed too.","commit_id":"c5dd82d424f10ebbb5ef89b2e23c145fe854924c"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"328b981f95e8d7f955accc9ee03618f2e7545c81","unresolved":false,"context_lines":[{"line_number":284,"context_line":"        timed_out \u003d int(time.time()) - start \u003e\u003d client.build_timeout"},{"line_number":285,"context_line":""},{"line_number":286,"context_line":"        if interface_status not in status and timed_out:"},{"line_number":287,"context_line":"            message \u003d (\u0027Interface %s failed to reach either of %s statuses \u0027"},{"line_number":288,"context_line":"                       \u0027(current %s) within the required time (%s s).\u0027 %"},{"line_number":289,"context_line":"                       (port_id, status, interface_status,"},{"line_number":290,"context_line":"                        client.build_timeout))"}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_cbc5f90b","line":287,"range":{"start_line":287,"start_character":53,"end_line":287,"end_character":59},"updated":"2018-06-21 00:54:09.000000000","message":"any","commit_id":"c5dd82d424f10ebbb5ef89b2e23c145fe854924c"},{"author":{"_account_id":23186,"name":"Felipe Monteiro","email":"felipe.carneiro.monteiro@gmail.com","username":"felipe.monteiro"},"change_message_id":"328b981f95e8d7f955accc9ee03618f2e7545c81","unresolved":false,"context_lines":[{"line_number":286,"context_line":"        if interface_status not in status and timed_out:"},{"line_number":287,"context_line":"            message \u003d (\u0027Interface %s failed to reach either of %s statuses \u0027"},{"line_number":288,"context_line":"                       \u0027(current %s) within the required time (%s s).\u0027 %"},{"line_number":289,"context_line":"                       (port_id, status, interface_status,"},{"line_number":290,"context_line":"                        client.build_timeout))"},{"line_number":291,"context_line":"            raise lib_exc.TimeoutException(message)"},{"line_number":292,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"5f7c97a3_ebca3518","line":289,"range":{"start_line":289,"start_character":33,"end_line":289,"end_character":39},"updated":"2018-06-21 00:54:09.000000000","message":"Maybe:\n\n    \u0027, \u0027.join(status)\n\ninstead?","commit_id":"c5dd82d424f10ebbb5ef89b2e23c145fe854924c"}],"tempest/config.py":[{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"98b1d23a382878faf225625a5848e960e60eeea2","unresolved":false,"context_lines":[{"line_number":272,"context_line":"               default\u003d1,"},{"line_number":273,"context_line":"               help\u003d\"Time in seconds between build status checks.\"),"},{"line_number":274,"context_line":"    cfg.IntOpt(\u0027port_timeout\u0027,"},{"line_number":275,"context_line":"               default \u003d 300,"},{"line_number":276,"context_line":"               help \u003d \"Timeout in seconds to wait for port operation to\""},{"line_number":277,"context_line":"                      \"ACTIVE.\"),"},{"line_number":278,"context_line":"    cfg.IntOpt(\u0027build_timeout\u0027,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_2e6392de","line":275,"range":{"start_line":275,"start_character":15,"end_line":275,"end_character":28},"updated":"2017-11-02 02:02:43.000000000","message":"s/default \u003d 300/default\u003d300/","commit_id":"56cc919f3e7845ecd73a4e613152c99b98c5c634"},{"author":{"_account_id":6167,"name":"Ken\u0027ichi Ohmichi","email":"ken1ohmichi@gmail.com","username":"oomichi"},"change_message_id":"98b1d23a382878faf225625a5848e960e60eeea2","unresolved":false,"context_lines":[{"line_number":273,"context_line":"               help\u003d\"Time in seconds between build status checks.\"),"},{"line_number":274,"context_line":"    cfg.IntOpt(\u0027port_timeout\u0027,"},{"line_number":275,"context_line":"               default \u003d 300,"},{"line_number":276,"context_line":"               help \u003d \"Timeout in seconds to wait for port operation to\""},{"line_number":277,"context_line":"                      \"ACTIVE.\"),"},{"line_number":278,"context_line":"    cfg.IntOpt(\u0027build_timeout\u0027,"},{"line_number":279,"context_line":"               default\u003d300,"}],"source_content_type":"text/x-python","patch_set":1,"id":"3f4b6375_ce787e90","line":276,"range":{"start_line":276,"start_character":69,"end_line":276,"end_character":72},"updated":"2017-11-02 02:02:43.000000000","message":"need a space after \"to.\n\nCurrent help will be \"toACTIVE.\"","commit_id":"56cc919f3e7845ecd73a4e613152c99b98c5c634"}],"tempest/scenario/manager.py":[{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"31117b6c887390757b589d034744b6e3db6481b6","unresolved":false,"context_lines":[{"line_number":782,"context_line":"        # A port can have more than one IP address in some cases."},{"line_number":783,"context_line":"        # If the network is dual-stack (IPv4 + IPv6), this port"},{"line_number":784,"context_line":"        # is associated with 2 subnets"},{"line_number":785,"context_line":"        port_map \u003d [{\"id\": p[\"id\"],"},{"line_number":786,"context_line":"                     \"ip\": fxip[\"ip_address\"],"},{"line_number":787,"context_line":"                     \"status\": p[\"status\"]}"},{"line_number":788,"context_line":"                    for p in ports"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_4a0c1a93","line":785,"updated":"2018-04-25 14:00:28.000000000","message":"this early check for IPv4 may not be valid if ip allocation is deferred (e.g. routed networks) or disabled completely.","commit_id":"c5dd82d424f10ebbb5ef89b2e23c145fe854924c"},{"author":{"_account_id":27078,"name":"Manik Bindlish","email":"manikbindlish19@gmail.com","username":"manik"},"change_message_id":"ef3eefe10a462a1e30971a7d668b5efd69dd61ac","unresolved":false,"context_lines":[{"line_number":795,"context_line":"        # TODO(vsaienko) remove once bug: #1599836 is resolved."},{"line_number":796,"context_line":"        if getattr(CONF.service_available, \u0027ironic\u0027, False):"},{"line_number":797,"context_line":"            p_status.append(\u0027DOWN\u0027)"},{"line_number":798,"context_line":"        # TODO(pas-ha) add a new waiter that will wait for all/at least one"},{"line_number":799,"context_line":"        # port on instance at once, and use it here"},{"line_number":800,"context_line":"        for pm in port_map:"},{"line_number":801,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_a6e3d205","line":798,"range":{"start_line":798,"start_character":59,"end_line":798,"end_character":75},"updated":"2018-10-26 05:42:52.000000000","message":"seems little confusing message here. Could you please remove \"all\" if at least waiting for one port.","commit_id":"c5dd82d424f10ebbb5ef89b2e23c145fe854924c"},{"author":{"_account_id":5756,"name":"Terry Wilson","email":"twilson@redhat.com","username":"otherwiseguy"},"change_message_id":"9d3a5912e7c6ddc4c4a5ab41d2bcd2e10375241e","unresolved":false,"context_lines":[{"line_number":795,"context_line":"        # TODO(vsaienko) remove once bug: #1599836 is resolved."},{"line_number":796,"context_line":"        if getattr(CONF.service_available, \u0027ironic\u0027, False):"},{"line_number":797,"context_line":"            p_status.append(\u0027DOWN\u0027)"},{"line_number":798,"context_line":"        # TODO(pas-ha) add a new waiter that will wait for all/at least one"},{"line_number":799,"context_line":"        # port on instance at once, and use it here"},{"line_number":800,"context_line":"        for pm in port_map:"},{"line_number":801,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":5,"id":"3f79a3b5_8331650c","line":798,"range":{"start_line":798,"start_character":59,"end_line":798,"end_character":75},"in_reply_to":"3f79a3b5_a6e3d205","updated":"2018-12-14 14:58:46.000000000","message":"Sounds to me like he wanted a waiter that could handle either case. In any case, it\u0027s a TODO comment, I\u0027m not too worried about it.","commit_id":"c5dd82d424f10ebbb5ef89b2e23c145fe854924c"},{"author":{"_account_id":9542,"name":"Pavlo Shchelokovskyy","email":"pshchelokovskyy@mirantis.com","username":"pshchelo"},"change_message_id":"6f46431e91078887c74f5eed14af094bc948aeea","unresolved":false,"context_lines":[{"line_number":799,"context_line":"        # port on instance at once, and use it here"},{"line_number":800,"context_line":"        for pm in port_map:"},{"line_number":801,"context_line":"            try:"},{"line_number":802,"context_line":"                port \u003d waiters.wait_for_interface_status(self.interface_client,"},{"line_number":803,"context_line":"                                                         server[\u0027id\u0027],"},{"line_number":804,"context_line":"                                                         pm[\"id\"], p_status)"},{"line_number":805,"context_line":"                pm[\"status\"] \u003d port[\u0027port_state\u0027]"}],"source_content_type":"text/x-python","patch_set":5,"id":"9f6a8fd7_6a3c7ee0","line":802,"range":{"start_line":802,"start_character":57,"end_line":802,"end_character":78},"updated":"2018-06-20 09:36:21.000000000","message":"might need admin client as well","commit_id":"c5dd82d424f10ebbb5ef89b2e23c145fe854924c"}]}
