)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"09f61b30b23df6bebd199d90cd4e43aee4d3f414","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     LipingMao \u003climao@cisco.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-04-02 09:27:00 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"lbaas delete and re-add same vip will make the vip can\u0027t work"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When delete and re-add the same vip, we need to send gratuitous ARP"},{"line_number":10,"context_line":"to reflash the ARP cache in the Router."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAWH%2F9vZc%3D","line":7,"updated":"2014-04-02 13:12:48.000000000","message":"Nit: Wording awkward... maybe...\n\nLBaaS VIP doesn\u0027t work after delete and re-add","commit_id":"08fa0676876eb79ad416fe5400d036be4b3c4f1f"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"3da112fbaf72585378e1f6cc8e0da1cd60576f79","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     LipingMao \u003climao@cisco.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2014-04-02 09:27:00 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"lbaas delete and re-add same vip will make the vip can\u0027t work"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When delete and re-add the same vip, we need to send gratuitous ARP"},{"line_number":10,"context_line":"to reflash the ARP cache in the Router."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":5,"id":"AAAAWH%2F9fHc%3D","line":7,"in_reply_to":"AAAAWH%2F9vZc%3D","updated":"2014-04-04 07:21:43.000000000","message":"Done","commit_id":"08fa0676876eb79ad416fe5400d036be4b3c4f1f"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"26b69893e6575c6801b3fbe1ff5328b9df4df262","unresolved":false,"context_lines":[{"line_number":7,"context_line":"LBaaS VIP doesn\u0027t work after delete and re-add"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When delete and re-add the same vip, we need to send gratuitous ARP"},{"line_number":10,"context_line":"to reflash the ARP cache in the Router."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Id97088abb95f4433a100abdae8c8726b3be42ed2"},{"line_number":13,"context_line":"Closes-Bug: 1301165"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"AAAAXX%2F%2F%2BrM%3D","line":10,"updated":"2014-04-24 21:40:45.000000000","message":"flush?","commit_id":"8b75a61570c23bc547fe286662a36e8e0c22bd86"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"c72e7dd1de98f6e754e5c6c03458efaa84f5632e","unresolved":false,"context_lines":[{"line_number":7,"context_line":"LBaaS VIP doesn\u0027t work after delete and re-add"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"When delete and re-add the same vip, we need to send gratuitous ARP"},{"line_number":10,"context_line":"to reflash the ARP cache in the Router."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Change-Id: Id97088abb95f4433a100abdae8c8726b3be42ed2"},{"line_number":13,"context_line":"Closes-Bug: 1301165"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":8,"id":"9ad9bd40_3928e333","line":10,"in_reply_to":"AAAAXX%2F%2F%2BrM%3D","updated":"2014-05-04 03:48:26.000000000","message":"Done","commit_id":"8b75a61570c23bc547fe286662a36e8e0c22bd86"}],"neutron/services/loadbalancer/drivers/haproxy/namespace_driver.py":[{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"30f23fd6d1134783431b2f86c18ce0c44a459238","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            ip_wrapper \u003d ip_lib.IPWrapper(self.root_helper,"},{"line_number":257,"context_line":"                                          namespace\u003dnamespace)"},{"line_number":258,"context_line":"            ip_wrapper.netns.execute(cmd, check_exit_code\u003dFalse)"},{"line_number":259,"context_line":"            cmd_ping \u003d [\u0027ping\u0027,\u0027-c\u0027, \u00271\u0027, gw_ip]"},{"line_number":260,"context_line":"            ip_wrapper.netns.execute(cmd_ping, check_exit_code\u003dFalse)"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    def _unplug(self, namespace, port_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F9xW0%3D","line":259,"updated":"2014-04-02 08:43:49.000000000","message":"Consider adding a comment describing why is this needed","commit_id":"57cd90c7e2bb2dfc20ac219f364903191132aa75"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"05844739f0811035a5c61b957aef84e43a34356e","unresolved":false,"context_lines":[{"line_number":256,"context_line":"            ip_wrapper \u003d ip_lib.IPWrapper(self.root_helper,"},{"line_number":257,"context_line":"                                          namespace\u003dnamespace)"},{"line_number":258,"context_line":"            ip_wrapper.netns.execute(cmd, check_exit_code\u003dFalse)"},{"line_number":259,"context_line":"            cmd_ping \u003d [\u0027ping\u0027,\u0027-c\u0027, \u00271\u0027, gw_ip]"},{"line_number":260,"context_line":"            ip_wrapper.netns.execute(cmd_ping, check_exit_code\u003dFalse)"},{"line_number":261,"context_line":""},{"line_number":262,"context_line":"    def _unplug(self, namespace, port_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAWH%2F9fHQ%3D","line":259,"in_reply_to":"AAAAWH%2F9xW0%3D","updated":"2014-04-04 07:22:42.000000000","message":"Done","commit_id":"57cd90c7e2bb2dfc20ac219f364903191132aa75"},{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"ccf98b4ee8f870d08868ac20eae30586b6bb2221","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            # When delete and re-add the same vip, we need to"},{"line_number":260,"context_line":"            # send gratuitous ARP to reflash the ARP cache in the Router."},{"line_number":261,"context_line":"            for ip in port[\u0027fixed_ips\u0027]:"},{"line_number":262,"context_line":"                cmd_arping \u003d [\u0027arping\u0027, \u0027-A\u0027, \u0027-U\u0027,"},{"line_number":263,"context_line":"                              \u0027-I\u0027, interface_name,"},{"line_number":264,"context_line":"                              \u0027-c\u0027, \u00273\u0027, ip[\u0027ip_address\u0027]]"},{"line_number":265,"context_line":"                ip_wrapper.netns.execute(cmd_arping, check_exit_code\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F9cQw%3D","line":262,"updated":"2014-04-04 14:29:11.000000000","message":"This is how -A option is described in arping(8): \"The same as -U, but ARP REPLY packets used instead of ARP REQUEST.\" Doesn\u0027t it mean those options are in conflict or at least one of them is redundant?","commit_id":"325469f419fa85936b5bbe675232924088a560f2"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"be52322e1de31b6fda51054ad21e9df3c8c4da0c","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            # When delete and re-add the same vip, we need to"},{"line_number":260,"context_line":"            # send gratuitous ARP to reflash the ARP cache in the Router."},{"line_number":261,"context_line":"            for ip in port[\u0027fixed_ips\u0027]:"},{"line_number":262,"context_line":"                cmd_arping \u003d [\u0027arping\u0027, \u0027-A\u0027, \u0027-U\u0027,"},{"line_number":263,"context_line":"                              \u0027-I\u0027, interface_name,"},{"line_number":264,"context_line":"                              \u0027-c\u0027, \u00273\u0027, ip[\u0027ip_address\u0027]]"},{"line_number":265,"context_line":"                ip_wrapper.netns.execute(cmd_arping, check_exit_code\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWn%2F%2F%2BtU%3D","line":262,"in_reply_to":"AAAAWH%2F9cQw%3D","updated":"2014-04-08 08:15:46.000000000","message":"Thanks for your review. I have remove \"-A\".","commit_id":"325469f419fa85936b5bbe675232924088a560f2"},{"author":{"_account_id":8449,"name":"Marios Andreou","email":"marios.andreou@gmail.com","username":"marios"},"change_message_id":"474935e6ccb1436da58f0d4995ae2126b9a21089","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            # When delete and re-add the same vip, we need to"},{"line_number":260,"context_line":"            # send gratuitous ARP to reflash the ARP cache in the Router."},{"line_number":261,"context_line":"            for ip in port[\u0027fixed_ips\u0027]:"},{"line_number":262,"context_line":"                cmd_arping \u003d [\u0027arping\u0027, \u0027-A\u0027, \u0027-U\u0027,"},{"line_number":263,"context_line":"                              \u0027-I\u0027, interface_name,"},{"line_number":264,"context_line":"                              \u0027-c\u0027, \u00273\u0027, ip[\u0027ip_address\u0027]]"},{"line_number":265,"context_line":"                ip_wrapper.netns.execute(cmd_arping, check_exit_code\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAWH%2F9SH4%3D","line":262,"in_reply_to":"AAAAWH%2F9cQw%3D","updated":"2014-04-07 12:29:30.000000000","message":"i believe -A is about enabling the response to any neighbor requests whilst -U is about making an announcement (unsolicited) yourself. I guess in this case we need the -U but not sure if the -A is a problem anyway.","commit_id":"325469f419fa85936b5bbe675232924088a560f2"},{"author":{"_account_id":261,"name":"Salvatore Orlando","email":"salv.orlando@gmail.com","username":"salvatore-orlando"},"change_message_id":"26b69893e6575c6801b3fbe1ff5328b9df4df262","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            # When delete and re-add the same vip, we need to"},{"line_number":260,"context_line":"            # send gratuitous ARP to reflash the ARP cache in the Router."},{"line_number":261,"context_line":"            for ip in port[\u0027fixed_ips\u0027]:"},{"line_number":262,"context_line":"                cmd_arping \u003d [\u0027arping\u0027, \u0027-U\u0027,"},{"line_number":263,"context_line":"                              \u0027-I\u0027, interface_name,"},{"line_number":264,"context_line":"                              \u0027-c\u0027, \u00273\u0027, ip[\u0027ip_address\u0027]]"},{"line_number":265,"context_line":"                ip_wrapper.netns.execute(cmd_arping, check_exit_code\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAXX%2F%2F%2Bqo%3D","line":262,"updated":"2014-04-24 21:40:45.000000000","message":"neutron\u0027s l3 agent already uses an options for enabling whether GARP should be sent or not.\n\nI suggest to use the same option here - or another one...","commit_id":"8b75a61570c23bc547fe286662a36e8e0c22bd86"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"c72e7dd1de98f6e754e5c6c03458efaa84f5632e","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            # When delete and re-add the same vip, we need to"},{"line_number":260,"context_line":"            # send gratuitous ARP to reflash the ARP cache in the Router."},{"line_number":261,"context_line":"            for ip in port[\u0027fixed_ips\u0027]:"},{"line_number":262,"context_line":"                cmd_arping \u003d [\u0027arping\u0027, \u0027-U\u0027,"},{"line_number":263,"context_line":"                              \u0027-I\u0027, interface_name,"},{"line_number":264,"context_line":"                              \u0027-c\u0027, \u00273\u0027, ip[\u0027ip_address\u0027]]"},{"line_number":265,"context_line":"                ip_wrapper.netns.execute(cmd_arping, check_exit_code\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9ad9bd40_79218b4c","line":262,"in_reply_to":"AAAAXX%2F%2F%2BYA%3D","updated":"2014-05-04 03:48:26.000000000","message":"Done","commit_id":"8b75a61570c23bc547fe286662a36e8e0c22bd86"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"684ec871a17ae016422eac43208fe1cf3a69a73e","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            # When delete and re-add the same vip, we need to"},{"line_number":260,"context_line":"            # send gratuitous ARP to reflash the ARP cache in the Router."},{"line_number":261,"context_line":"            for ip in port[\u0027fixed_ips\u0027]:"},{"line_number":262,"context_line":"                cmd_arping \u003d [\u0027arping\u0027, \u0027-U\u0027,"},{"line_number":263,"context_line":"                              \u0027-I\u0027, interface_name,"},{"line_number":264,"context_line":"                              \u0027-c\u0027, \u00273\u0027, ip[\u0027ip_address\u0027]]"},{"line_number":265,"context_line":"                ip_wrapper.netns.execute(cmd_arping, check_exit_code\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAXX%2F%2F%2BYA%3D","line":262,"in_reply_to":"AAAAXX%2F%2F%2Bqo%3D","updated":"2014-04-24 22:25:43.000000000","message":"Agreed the options should be harmonious.","commit_id":"8b75a61570c23bc547fe286662a36e8e0c22bd86"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"c72e7dd1de98f6e754e5c6c03458efaa84f5632e","unresolved":false,"context_lines":[{"line_number":259,"context_line":"            # When delete and re-add the same vip, we need to"},{"line_number":260,"context_line":"            # send gratuitous ARP to reflash the ARP cache in the Router."},{"line_number":261,"context_line":"            for ip in port[\u0027fixed_ips\u0027]:"},{"line_number":262,"context_line":"                cmd_arping \u003d [\u0027arping\u0027, \u0027-U\u0027,"},{"line_number":263,"context_line":"                              \u0027-I\u0027, interface_name,"},{"line_number":264,"context_line":"                              \u0027-c\u0027, \u00273\u0027, ip[\u0027ip_address\u0027]]"},{"line_number":265,"context_line":"                ip_wrapper.netns.execute(cmd_arping, check_exit_code\u003dFalse)"}],"source_content_type":"text/x-python","patch_set":8,"id":"9ad9bd40_592be72f","line":262,"in_reply_to":"AAAAXX%2F%2F%2Bqo%3D","updated":"2014-05-04 03:48:26.000000000","message":"Done","commit_id":"8b75a61570c23bc547fe286662a36e8e0c22bd86"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"832eec4778be59986e6433b5e08e17e2580f0010","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    cfg.IntOpt("},{"line_number":58,"context_line":"        \u0027send_gratuitous_arp\u0027,"},{"line_number":59,"context_line":"        default\u003d3,"},{"line_number":60,"context_line":"        help\u003d_(\u0027Send this many gratuitous ARPs. Set it below or equal to 0 \u0027"},{"line_number":61,"context_line":"               \u0027to disable this feature.\u0027),"},{"line_number":62,"context_line":"    )"},{"line_number":63,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXX%2F%2FwBQ%3D","line":60,"updated":"2014-04-28 08:59:47.000000000","message":"can you please align this description with one from #271-272? Currently it\u0027s a bit unclear what \u0027this feature\u0027 means. Please update config file as well","commit_id":"8c88c940b53511c8df11f83631bc0ff3e99301af"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"828c2ca3b664021cfb70eed4b7cfd4a666e127c5","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    cfg.IntOpt("},{"line_number":58,"context_line":"        \u0027send_gratuitous_arp\u0027,"},{"line_number":59,"context_line":"        default\u003d3,"},{"line_number":60,"context_line":"        help\u003d_(\u0027Send this many gratuitous ARPs. Set it below or equal to 0 \u0027"},{"line_number":61,"context_line":"               \u0027to disable this feature.\u0027),"},{"line_number":62,"context_line":"    )"},{"line_number":63,"context_line":"]"}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad9bd40_99f56fcd","line":60,"in_reply_to":"AAAAXX%2F%2FwBQ%3D","updated":"2014-05-04 03:47:45.000000000","message":"Done","commit_id":"8c88c940b53511c8df11f83631bc0ff3e99301af"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"832eec4778be59986e6433b5e08e17e2580f0010","unresolved":false,"context_lines":[{"line_number":270,"context_line":"            ip_wrapper.netns.execute(cmd, check_exit_code\u003dFalse)"},{"line_number":271,"context_line":"            # When delete and re-add the same vip, we need to"},{"line_number":272,"context_line":"            # send gratuitous ARP to flush the ARP cache in the Router."},{"line_number":273,"context_line":"            if self.conf.haproxy.send_gratuitous_arp \u003e 0:"},{"line_number":274,"context_line":"                for ip in port[\u0027fixed_ips\u0027]:"},{"line_number":275,"context_line":"                    cmd_arping \u003d [\u0027arping\u0027, \u0027-U\u0027,"},{"line_number":276,"context_line":"                                  \u0027-I\u0027, interface_name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXX%2F%2FwAg%3D","line":273,"updated":"2014-04-28 08:59:47.000000000","message":"nit: can read config once and then use fetched value here and on #277","commit_id":"8c88c940b53511c8df11f83631bc0ff3e99301af"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"828c2ca3b664021cfb70eed4b7cfd4a666e127c5","unresolved":false,"context_lines":[{"line_number":270,"context_line":"            ip_wrapper.netns.execute(cmd, check_exit_code\u003dFalse)"},{"line_number":271,"context_line":"            # When delete and re-add the same vip, we need to"},{"line_number":272,"context_line":"            # send gratuitous ARP to flush the ARP cache in the Router."},{"line_number":273,"context_line":"            if self.conf.haproxy.send_gratuitous_arp \u003e 0:"},{"line_number":274,"context_line":"                for ip in port[\u0027fixed_ips\u0027]:"},{"line_number":275,"context_line":"                    cmd_arping \u003d [\u0027arping\u0027, \u0027-U\u0027,"},{"line_number":276,"context_line":"                                  \u0027-I\u0027, interface_name,"}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad9bd40_79fa6bbe","line":273,"in_reply_to":"AAAAXX%2F%2FwAg%3D","updated":"2014-05-04 03:47:45.000000000","message":"Done","commit_id":"8c88c940b53511c8df11f83631bc0ff3e99301af"},{"author":{"_account_id":6659,"name":"Paul Michali","email":"pc@michali.net","username":"pcm"},"change_message_id":"e026703213f06a47969d226f45d78026b50e89ab","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    cfg.IntOpt("},{"line_number":58,"context_line":"        \u0027send_gratuitous_arp\u0027,"},{"line_number":59,"context_line":"        default\u003d3,"},{"line_number":60,"context_line":"        help\u003d_(\u0027When delete and re-add the same vip, send this many \u0027"},{"line_number":61,"context_line":"               \u0027gratuitous ARPs to flush the ARP cache in the Router. \u0027"},{"line_number":62,"context_line":"               \u0027Set it below or equal to 0 to disable this feature.\u0027),"},{"line_number":63,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad9bd40_9ca0f8a0","line":60,"updated":"2014-05-04 16:02:10.000000000","message":"Should you indicate the default value?","commit_id":"a983157b99d3cb7bc576784308ab9fa6f494bb9a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"517045829e92f01834dbbbd954faabe9f2f1e96f","unresolved":false,"context_lines":[{"line_number":57,"context_line":"    cfg.IntOpt("},{"line_number":58,"context_line":"        \u0027send_gratuitous_arp\u0027,"},{"line_number":59,"context_line":"        default\u003d3,"},{"line_number":60,"context_line":"        help\u003d_(\u0027When delete and re-add the same vip, send this many \u0027"},{"line_number":61,"context_line":"               \u0027gratuitous ARPs to flush the ARP cache in the Router. \u0027"},{"line_number":62,"context_line":"               \u0027Set it below or equal to 0 to disable this feature.\u0027),"},{"line_number":63,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad9bd40_aed739ec","line":60,"in_reply_to":"9ad9bd40_9ca0f8a0","updated":"2014-05-05 07:42:35.000000000","message":"Defaulf value is commented in the ini file, no need to duplicate (as for all other options)","commit_id":"a983157b99d3cb7bc576784308ab9fa6f494bb9a"}],"neutron/tests/unit/services/loadbalancer/drivers/haproxy/test_namespace_driver.py":[{"author":{"_account_id":6598,"name":"Berezovsky Irena","email":"irenab.dev@gmail.com","username":"irenab"},"change_message_id":"19dda2de7f2c9e2ed69803d837e178bae30d2a08","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        conf.haproxy.loadbalancer_state_path \u003d \u0027/the/path\u0027"},{"line_number":36,"context_line":"        conf.interface_driver \u003d \u0027intdriver\u0027"},{"line_number":37,"context_line":"        conf.haproxy.user_group \u003d \u0027test_group\u0027"},{"line_number":38,"context_line":"        conf.haproxy.send_gratuitous_arp \u003d \u00273\u0027"},{"line_number":39,"context_line":"        conf.AGENT.root_helper \u003d \u0027sudo_test\u0027"},{"line_number":40,"context_line":"        self.mock_importer \u003d mock.patch.object(namespace_driver,"},{"line_number":41,"context_line":"                                               \u0027importutils\u0027).start()"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXX%2F%2FwJ4%3D","line":38,"updated":"2014-04-28 08:35:16.000000000","message":"I would suggest to add another unit test to check the case when conf.haproxy.send_gratuitous_arp is not default value, but 0, to verify that command is not invoked.","commit_id":"8c88c940b53511c8df11f83631bc0ff3e99301af"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"828c2ca3b664021cfb70eed4b7cfd4a666e127c5","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        conf.haproxy.loadbalancer_state_path \u003d \u0027/the/path\u0027"},{"line_number":36,"context_line":"        conf.interface_driver \u003d \u0027intdriver\u0027"},{"line_number":37,"context_line":"        conf.haproxy.user_group \u003d \u0027test_group\u0027"},{"line_number":38,"context_line":"        conf.haproxy.send_gratuitous_arp \u003d \u00273\u0027"},{"line_number":39,"context_line":"        conf.AGENT.root_helper \u003d \u0027sudo_test\u0027"},{"line_number":40,"context_line":"        self.mock_importer \u003d mock.patch.object(namespace_driver,"},{"line_number":41,"context_line":"                                               \u0027importutils\u0027).start()"}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad9bd40_d9fff7a8","line":38,"in_reply_to":"AAAAXX%2F%2FwAE%3D","updated":"2014-05-04 03:47:45.000000000","message":"Done","commit_id":"8c88c940b53511c8df11f83631bc0ff3e99301af"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"832eec4778be59986e6433b5e08e17e2580f0010","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        conf.haproxy.loadbalancer_state_path \u003d \u0027/the/path\u0027"},{"line_number":36,"context_line":"        conf.interface_driver \u003d \u0027intdriver\u0027"},{"line_number":37,"context_line":"        conf.haproxy.user_group \u003d \u0027test_group\u0027"},{"line_number":38,"context_line":"        conf.haproxy.send_gratuitous_arp \u003d \u00273\u0027"},{"line_number":39,"context_line":"        conf.AGENT.root_helper \u003d \u0027sudo_test\u0027"},{"line_number":40,"context_line":"        self.mock_importer \u003d mock.patch.object(namespace_driver,"},{"line_number":41,"context_line":"                                               \u0027importutils\u0027).start()"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAAXX%2F%2FwAE%3D","line":38,"in_reply_to":"AAAAXX%2F%2FwJ4%3D","updated":"2014-04-28 08:59:47.000000000","message":"+1","commit_id":"8c88c940b53511c8df11f83631bc0ff3e99301af"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"828c2ca3b664021cfb70eed4b7cfd4a666e127c5","unresolved":false,"context_lines":[{"line_number":35,"context_line":"        conf.haproxy.loadbalancer_state_path \u003d \u0027/the/path\u0027"},{"line_number":36,"context_line":"        conf.interface_driver \u003d \u0027intdriver\u0027"},{"line_number":37,"context_line":"        conf.haproxy.user_group \u003d \u0027test_group\u0027"},{"line_number":38,"context_line":"        conf.haproxy.send_gratuitous_arp \u003d \u00273\u0027"},{"line_number":39,"context_line":"        conf.AGENT.root_helper \u003d \u0027sudo_test\u0027"},{"line_number":40,"context_line":"        self.mock_importer \u003d mock.patch.object(namespace_driver,"},{"line_number":41,"context_line":"                                               \u0027importutils\u0027).start()"}],"source_content_type":"text/x-python","patch_set":9,"id":"9ad9bd40_b904f3c0","line":38,"in_reply_to":"AAAAXX%2F%2FwJ4%3D","updated":"2014-05-04 03:47:45.000000000","message":"Done","commit_id":"8c88c940b53511c8df11f83631bc0ff3e99301af"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"517045829e92f01834dbbbd954faabe9f2f1e96f","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    def test_plug_not_send_gratuitous_arp(self):"},{"line_number":299,"context_line":"        self.conf.haproxy.send_gratuitous_arp \u003d 0"},{"line_number":300,"context_line":"        self.driver \u003d namespace_driver.HaproxyNSDriver("},{"line_number":301,"context_line":"            self.conf,"},{"line_number":302,"context_line":"            self.rpc_mock"},{"line_number":303,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad9bd40_ee8ce137","line":300,"updated":"2014-05-05 07:42:35.000000000","message":"there is no need to reinstantiate self.driver, updating self.conf should be enough","commit_id":"a983157b99d3cb7bc576784308ab9fa6f494bb9a"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"d07c4e2423726b71552fce9a339ec3ed8dd78df9","unresolved":false,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"    def test_plug_not_send_gratuitous_arp(self):"},{"line_number":299,"context_line":"        self.conf.haproxy.send_gratuitous_arp \u003d 0"},{"line_number":300,"context_line":"        self.driver \u003d namespace_driver.HaproxyNSDriver("},{"line_number":301,"context_line":"            self.conf,"},{"line_number":302,"context_line":"            self.rpc_mock"},{"line_number":303,"context_line":"        )"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad9bd40_99ed5df2","line":300,"in_reply_to":"9ad9bd40_ee8ce137","updated":"2014-05-05 08:04:56.000000000","message":"Done","commit_id":"a983157b99d3cb7bc576784308ab9fa6f494bb9a"},{"author":{"_account_id":5948,"name":"Oleg Bondarev","email":"obondarev@mirantis.com","username":"obondarev"},"change_message_id":"517045829e92f01834dbbbd954faabe9f2f1e96f","unresolved":false,"context_lines":[{"line_number":323,"context_line":"            expected \u003d ["},{"line_number":324,"context_line":"                mock.call(\u0027sudo_test\u0027, namespace\u003d\u0027test_ns\u0027),"},{"line_number":325,"context_line":"                mock.call().netns.execute(cmd, check_exit_code\u003dFalse)]"},{"line_number":326,"context_line":"            self.assertEqual(ip_wrap.mock_calls, expected)"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"    def test_plug_no_gw(self):"},{"line_number":329,"context_line":"        test_port \u003d {\u0027id\u0027: \u0027port_id\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad9bd40_ce7abdf0","line":326,"updated":"2014-05-05 07:42:35.000000000","message":"please set expected as the first arg according to asserEqual() spec","commit_id":"a983157b99d3cb7bc576784308ab9fa6f494bb9a"},{"author":{"_account_id":9820,"name":"Liping Mao","email":"limao@cisco.com","username":"LipingMao"},"change_message_id":"d07c4e2423726b71552fce9a339ec3ed8dd78df9","unresolved":false,"context_lines":[{"line_number":323,"context_line":"            expected \u003d ["},{"line_number":324,"context_line":"                mock.call(\u0027sudo_test\u0027, namespace\u003d\u0027test_ns\u0027),"},{"line_number":325,"context_line":"                mock.call().netns.execute(cmd, check_exit_code\u003dFalse)]"},{"line_number":326,"context_line":"            self.assertEqual(ip_wrap.mock_calls, expected)"},{"line_number":327,"context_line":""},{"line_number":328,"context_line":"    def test_plug_no_gw(self):"},{"line_number":329,"context_line":"        test_port \u003d {\u0027id\u0027: \u0027port_id\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"9ad9bd40_d9be05d4","line":326,"in_reply_to":"9ad9bd40_ce7abdf0","updated":"2014-05-05 08:04:56.000000000","message":"Done","commit_id":"a983157b99d3cb7bc576784308ab9fa6f494bb9a"}]}
