)]}'
{"etc/quantum/rootwrap.d/l3.filters":[{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"3879e393de66ae0ca8b4bc29829602188ac8ae2f","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"# arping"},{"line_number":12,"context_line":"arping: CommandFilter, /usr/bin/arping, root"},{"line_number":13,"context_line":"arping_sbin: CommandFilter, /sbin/arping, root"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"# l3_agent"},{"line_number":16,"context_line":"sysctl: CommandFilter, /sbin/sysctl, root"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAALn%2F%2F%2B%2Fw%3D","line":13,"updated":"2012-10-24 18:13:05.000000000","message":"Why are the locations different?  If it is a distro difference, I\u0027d like to see a comment so that someone does not clean up the path unintentionally.","commit_id":"e005556659d0dce5ad41e1004c9b752e46400a37"},{"author":{"_account_id":2967,"name":"ljjjustin","email":"iamljj@gmail.com","username":"ljjjustin"},"change_message_id":"35c6401d828b98eb709a10b2ef3d0d4ee55eab53","unresolved":false,"context_lines":[{"line_number":10,"context_line":""},{"line_number":11,"context_line":"# arping"},{"line_number":12,"context_line":"arping: CommandFilter, /usr/bin/arping, root"},{"line_number":13,"context_line":"arping_sbin: CommandFilter, /sbin/arping, root"},{"line_number":14,"context_line":""},{"line_number":15,"context_line":"# l3_agent"},{"line_number":16,"context_line":"sysctl: CommandFilter, /sbin/sysctl, root"}],"source_content_type":"application/octet-stream","patch_set":9,"id":"AAAALn%2F%2F89o%3D","line":13,"in_reply_to":"AAAALn%2F%2F%2B%2Fw%3D","updated":"2012-10-25 01:47:33.000000000","message":"OK, I will. arping locate in /usr/bin/arping on debian/ubuntu while it locates in /sbin/arping on RHEL based OS.","commit_id":"e005556659d0dce5ad41e1004c9b752e46400a37"}],"quantum/agent/l3_agent.py":[{"author":{"_account_id":1038,"name":"Jack McCann","username":"jack-mccann"},"unresolved":false,"context_lines":[{"line_number":80,"context_line":"                   help\u003d\"IP address used by Nova metadata server.\"),"},{"line_number":81,"context_line":"        cfg.IntOpt(\u0027metadata_port\u0027,"},{"line_number":82,"context_line":"                   default\u003d8775,"},{"line_number":83,"context_line":"                   help\u003d\"TCP Port used by Nova metadata server.\"),"},{"line_number":84,"context_line":"        #FIXME(danwent): not currently used"},{"line_number":85,"context_line":"        cfg.BoolOpt(\u0027send_arp_for_ha\u0027,"},{"line_number":86,"context_line":"                    default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FmP8%3D","line":83,"updated":"2012-08-28 17:46:06.000000000","message":"This FIXME comment can be removed with this change.","commit_id":"d7472fc77f2ee83827a2600181462bd90e3b9c94"},{"author":{"_account_id":1038,"name":"Jack McCann","username":"jack-mccann"},"unresolved":false,"context_lines":[{"line_number":295,"context_line":"                             prefix\u003dEXTERNAL_DEV_PREFIX)"},{"line_number":296,"context_line":"        self.driver.init_l3(interface_name, [ex_gw_port[\u0027ip_cidr\u0027]],"},{"line_number":297,"context_line":"                            namespace\u003dri.ns_name())"},{"line_number":298,"context_line":"        if self.conf.send_arp_for_ha:"},{"line_number":299,"context_line":"            linux_utils.execute([\u0027arping\u0027, \u0027-A\u0027, \u0027-c\u0027, \u00271\u0027,"},{"line_number":300,"context_line":"                                 \u0027-U\u0027, ex_gw_port[\u0027ip_cidr\u0027],"},{"line_number":301,"context_line":"                                 \u0027-I\u0027, interface_name],"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FmQs%3D","line":298,"updated":"2012-08-28 17:36:45.000000000","message":"Would prefer to see this implemented as an integer value to be passed as the \u0027-c\u0027 count argument to arping command.  Zero means disabled.  A single gratuitous ARP is not always enough, we need to be able to send 2 or 3 (or more).","commit_id":"d7472fc77f2ee83827a2600181462bd90e3b9c94"},{"author":{"_account_id":2035,"name":"Maru Newby","email":"marun@redhat.com","username":"maru"},"change_message_id":"70fa4d8bd31d4626d991a21768c60976452e2067","unresolved":false,"context_lines":[{"line_number":300,"context_line":"                                 \u0027-U\u0027, ex_gw_port[\u0027ip_cidr\u0027],"},{"line_number":301,"context_line":"                                 \u0027-I\u0027, interface_name],"},{"line_number":302,"context_line":"                                root_helper\u003dself.conf.root_helper,"},{"line_number":303,"context_line":"                                check_exit_code\u003dFalse)"},{"line_number":304,"context_line":""},{"line_number":305,"context_line":"        gw_ip \u003d ex_gw_port[\u0027subnet\u0027][\u0027gateway_ip\u0027]"},{"line_number":306,"context_line":"        if ex_gw_port[\u0027subnet\u0027][\u0027gateway_ip\u0027]:"}],"source_content_type":"text/x-python","patch_set":1,"id":"AAAALH%2F%2FmdU%3D","line":303,"updated":"2012-08-28 13:29:47.000000000","message":"Why isn\u0027t it desirable to check the exit code?  The same comment applies to the other invocations of arping in this change.","commit_id":"d7472fc77f2ee83827a2600181462bd90e3b9c94"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"3879e393de66ae0ca8b4bc29829602188ac8ae2f","unresolved":false,"context_lines":[{"line_number":298,"context_line":"        self.driver.init_l3(interface_name, [ex_gw_port[\u0027ip_cidr\u0027]],"},{"line_number":299,"context_line":"                            namespace\u003dri.ns_name())"},{"line_number":300,"context_line":"        if self.conf.send_arp_for_ha and self.conf.gratuitous_arp_num \u003e 0:"},{"line_number":301,"context_line":"            linux_utils.execute([\u0027arping\u0027, \u0027-A\u0027,"},{"line_number":302,"context_line":"                                 \u0027-c\u0027, self.conf.gratuitous_arp_num,"},{"line_number":303,"context_line":"                                 \u0027-U\u0027, ex_gw_port[\u0027ip_cidr\u0027],"},{"line_number":304,"context_line":"                                 \u0027-I\u0027, interface_name],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALH%2F%2Fjx0%3D","line":301,"updated":"2012-08-31 06:06:15.000000000","message":"The l3 agent uses network namespaces, you need to use ip_lib.netns.execute to execute arping in that namespace.","commit_id":"4c56d84c239b3cdb3ac89772c1d8a9860df03c2a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"3879e393de66ae0ca8b4bc29829602188ac8ae2f","unresolved":false,"context_lines":[{"line_number":362,"context_line":"        self.driver.init_l3(interface_name, [internal_cidr],"},{"line_number":363,"context_line":"                            namespace\u003dri.ns_name())"},{"line_number":364,"context_line":"        if self.conf.send_arp_for_ha and self.conf.gratuitous_arp_num \u003e 0:"},{"line_number":365,"context_line":"            linux_utils.execute([\u0027arping\u0027, \u0027-A\u0027,"},{"line_number":366,"context_line":"                                 \u0027-c\u0027, self.conf.gratuitous_arp_num,"},{"line_number":367,"context_line":"                                 \u0027-U\u0027, internal_cidr,"},{"line_number":368,"context_line":"                                 \u0027-I\u0027, interface_name],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALH%2F%2Fjxw%3D","line":365,"updated":"2012-08-31 06:06:15.000000000","message":"same as above","commit_id":"4c56d84c239b3cdb3ac89772c1d8a9860df03c2a"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"3879e393de66ae0ca8b4bc29829602188ac8ae2f","unresolved":false,"context_lines":[{"line_number":406,"context_line":"            net \u003d netaddr.IPNetwork(ip_cidr)"},{"line_number":407,"context_line":"            device.addr.add(net.version, ip_cidr, str(net.broadcast))"},{"line_number":408,"context_line":"            if self.conf.send_arp_for_ha and self.conf.gratuitous_arp_num \u003e 0:"},{"line_number":409,"context_line":"                linux_utils.execute([\u0027arping\u0027, \u0027-A\u0027,"},{"line_number":410,"context_line":"                                     \u0027-c\u0027, self.conf.gratuitous_arp_num,"},{"line_number":411,"context_line":"                                     \u0027-U\u0027, ip_cidr,"},{"line_number":412,"context_line":"                                     \u0027-I\u0027, interface_name],"}],"source_content_type":"text/x-python","patch_set":4,"id":"AAAALH%2F%2Fjxs%3D","line":409,"updated":"2012-08-31 06:06:15.000000000","message":"same as above","commit_id":"4c56d84c239b3cdb3ac89772c1d8a9860df03c2a"},{"author":{"_account_id":841,"name":"Akihiro Motoki","email":"amotoki@gmail.com","username":"amotoki"},"unresolved":false,"context_lines":[{"line_number":305,"context_line":"                                      \u0027-U\u0027, ex_gw_port[\u0027ip_cidr\u0027],"},{"line_number":306,"context_line":"                                      \u0027-I\u0027, interface_name],"},{"line_number":307,"context_line":"                                     root_helper\u003dself.conf.root_helper,"},{"line_number":308,"context_line":"                                     check_exit_code\u003dFalse)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        gw_ip \u003d ex_gw_port[\u0027subnet\u0027][\u0027gateway_ip\u0027]"},{"line_number":311,"context_line":"        if ex_gw_port[\u0027subnet\u0027][\u0027gateway_ip\u0027]:"}],"source_content_type":"text/x-python","patch_set":5,"id":"AAAALH%2F%2Fjuc%3D","line":308,"updated":"2012-08-31 07:55:47.000000000","message":"Let me clarify which arping should be used.\n\nUbuntu 12.04 has two arping package: (a) arping and (b) iputils-arping, however arping commands from both packages do not have some options you specified. I am afraid I am looking at the wrong command.\n\n(/usr/sbin/)arping from arping package does not have options -I and -U.\n\nARPing 2.09, by Thomas Habets \u003cthomas@habets.pp.se\u003e\nusage: arping [ -0aAbdDeFpqrRuv ] [ -w \u003cus\u003e ] [ -S \u003chost/ip\u003e ]\n              [ -T \u003chost/ip ] [ -s \u003cMAC\u003e ] [ -t \u003cMAC\u003e ] [ -c \u003ccount\u003e ]\n              [ -i \u003cinterface\u003e ] \u003chost/ip/MAC | -B\u003e\n\n\n(/usr/bin/)arping from iputils-arping packagre requires \"destination\" and -U options does not take an argument.\n\narping utility, iputils-sss20101006\nUsage: arping [-fqbDUAV] [-c count] [-w timeout] [-I device] [-s source] destination","commit_id":"f61fdbf2a1765f7a67bc4d1396e4e45d3a53767f"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"3879e393de66ae0ca8b4bc29829602188ac8ae2f","unresolved":false,"context_lines":[{"line_number":304,"context_line":"                                      \u0027-I\u0027, interface_name,"},{"line_number":305,"context_line":"                                      \u0027-c\u0027, self.conf.gratuitous_arp_num,"},{"line_number":306,"context_line":"                                      ex_gw_port[\u0027ip_cidr\u0027].split(\u0027/\u0027)[0]],"},{"line_number":307,"context_line":"                                     root_helper\u003dself.conf.root_helper,"},{"line_number":308,"context_line":"                                     check_exit_code\u003dFalse)"},{"line_number":309,"context_line":""},{"line_number":310,"context_line":"        gw_ip \u003d ex_gw_port[\u0027subnet\u0027][\u0027gateway_ip\u0027]"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALH%2F%2FjU4%3D","line":307,"updated":"2012-08-31 16:35:44.000000000","message":"netns.execute only needs the cmds list here.  You do not need to pass root_helper or check_exit_code to it.","commit_id":"15919068968e56b34dc85fe61f72617d555e879e"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"3879e393de66ae0ca8b4bc29829602188ac8ae2f","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(self.conf.root_helper,"},{"line_number":365,"context_line":"                                      namespace\u003dri.ns_name())"},{"line_number":366,"context_line":"        if self.conf.send_arp_for_ha and self.conf.gratuitous_arp_num \u003e 0:"},{"line_number":367,"context_line":"            ip_wrapper.netns.execute([\u0027arping\u0027, \u0027-A\u0027, \u0027-U\u0027,"},{"line_number":368,"context_line":"                                      \u0027-I\u0027, interface_name,"},{"line_number":369,"context_line":"                                      \u0027-c\u0027, self.conf.gratuitous_arp_num,"},{"line_number":370,"context_line":"                                      internal_cidr.split(\u0027/\u0027)[0]],"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALH%2F%2FjVE%3D","line":367,"updated":"2012-08-31 16:35:44.000000000","message":"same as above","commit_id":"15919068968e56b34dc85fe61f72617d555e879e"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"3879e393de66ae0ca8b4bc29829602188ac8ae2f","unresolved":false,"context_lines":[{"line_number":414,"context_line":"                                          \u0027-I\u0027, interface_name,"},{"line_number":415,"context_line":"                                          \u0027-c\u0027, self.conf.gratuitous_arp_num,"},{"line_number":416,"context_line":"                                          floating_ip],"},{"line_number":417,"context_line":"                                         root_helper\u003dself.conf.root_helper,"},{"line_number":418,"context_line":"                                         check_exit_code\u003dFalse)"},{"line_number":419,"context_line":""},{"line_number":420,"context_line":"        for chain, rule in self.floating_forward_rules(floating_ip, fixed_ip):"}],"source_content_type":"text/x-python","patch_set":6,"id":"AAAALH%2F%2FjU8%3D","line":417,"updated":"2012-08-31 16:35:44.000000000","message":"same as above","commit_id":"15919068968e56b34dc85fe61f72617d555e879e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":419,"context_line":"                                              namespace\u003dri.ns_name())"},{"line_number":420,"context_line":"                ip_wrapper.netns.execute(arping_cmd)"},{"line_number":421,"context_line":"            else:"},{"line_number":422,"context_line":"                linux_utils.execute(arping_cmd, check_exit_code\u003dFalse,"},{"line_number":423,"context_line":"                                    root_helper\u003dself.conf.root_helper)"},{"line_number":424,"context_line":""},{"line_number":425,"context_line":"        if ex_gw_port:"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAALH%2F%2FdII%3D","line":422,"updated":"2012-09-10 11:10:31.000000000","message":"There is no import for linux_utils","commit_id":"a375ad0189c0f4862f600b8cfebb3d27cf1bd31e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":460,"context_line":"        if not ip_cidr in [addr[\u0027cidr\u0027] for addr in device.addr.list()]:"},{"line_number":461,"context_line":"            net \u003d netaddr.IPNetwork(ip_cidr)"},{"line_number":462,"context_line":"            device.addr.add(net.version, ip_cidr, str(net.broadcast))"},{"line_number":463,"context_line":"            if self.conf.send_arp_for_ha and self.conf.gratuitous_arp_num \u003e 0:"},{"line_number":464,"context_line":"                arping_cmd \u003d [\u0027arping\u0027, \u0027-A\u0027, \u0027-U\u0027,"},{"line_number":465,"context_line":"                              \u0027-I\u0027, interface_name,"},{"line_number":466,"context_line":"                              \u0027-c\u0027, self.conf.gratuitous_arp_num,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAALH%2F%2FdOI%3D","line":463,"updated":"2012-09-10 04:35:40.000000000","message":"Would it be possible to put this code in a method. The same code is repeated a number of times.","commit_id":"a375ad0189c0f4862f600b8cfebb3d27cf1bd31e"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":83,"context_line":"        cfg.IntOpt(\u0027metadata_port\u0027,"},{"line_number":84,"context_line":"                   default\u003d8775,"},{"line_number":85,"context_line":"                   help\u003d\"TCP Port used by Nova metadata server.\"),"},{"line_number":86,"context_line":"        cfg.BoolOpt(\u0027send_arp_for_ha\u0027,"},{"line_number":87,"context_line":"                    default\u003dTrue,"},{"line_number":88,"context_line":"                    help\u003d\"Send gratuitious ARP when router IP is configured\"),"},{"line_number":89,"context_line":"        cfg.IntOpt(\u0027gratuitous_arp_num\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAALn%2F%2F9pk%3D","line":86,"updated":"2012-10-24 16:55:48.000000000","message":"Why do we need two variables? Would it be possible to use one and if the value is not 0 then send the arps? I am just thinking about having to maintain all of these.","commit_id":"e005556659d0dce5ad41e1004c9b752e46400a37"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"unresolved":false,"context_lines":[{"line_number":83,"context_line":"        cfg.IntOpt(\u0027metadata_port\u0027,"},{"line_number":84,"context_line":"                   default\u003d8775,"},{"line_number":85,"context_line":"                   help\u003d\"TCP Port used by Nova metadata server.\"),"},{"line_number":86,"context_line":"        cfg.BoolOpt(\u0027send_arp_for_ha\u0027,"},{"line_number":87,"context_line":"                    default\u003dTrue,"},{"line_number":88,"context_line":"                    help\u003d\"Send gratuitious ARP when router IP is configured\"),"},{"line_number":89,"context_line":"        cfg.IntOpt(\u0027gratuitous_arp_num\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAALn%2F%2F9Z0%3D","line":86,"in_reply_to":"AAAALn%2F%2F9gM%3D","updated":"2012-10-24 19:04:48.000000000","message":"Yes, I see stable/folsom has send_arp_for_ha, but it\u0027s not used anywhere, so I\u0027d agree with both of you with making this an Int with \u003e0 meaning send this many.","commit_id":"e005556659d0dce5ad41e1004c9b752e46400a37"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":83,"context_line":"        cfg.IntOpt(\u0027metadata_port\u0027,"},{"line_number":84,"context_line":"                   default\u003d8775,"},{"line_number":85,"context_line":"                   help\u003d\"TCP Port used by Nova metadata server.\"),"},{"line_number":86,"context_line":"        cfg.BoolOpt(\u0027send_arp_for_ha\u0027,"},{"line_number":87,"context_line":"                    default\u003dTrue,"},{"line_number":88,"context_line":"                    help\u003d\"Send gratuitious ARP when router IP is configured\"),"},{"line_number":89,"context_line":"        cfg.IntOpt(\u0027gratuitous_arp_num\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAALn%2F%2F9gM%3D","line":86,"in_reply_to":"AAAALn%2F%2F9hU%3D","updated":"2012-10-24 18:19:12.000000000","message":"Not really sure what to do here. The current version does not have the feature, so is it worth considering just changing the type from Boolean to Int? Luckily we do not need to be backward compatible in this specific case.","commit_id":"e005556659d0dce5ad41e1004c9b752e46400a37"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"3879e393de66ae0ca8b4bc29829602188ac8ae2f","unresolved":false,"context_lines":[{"line_number":83,"context_line":"        cfg.IntOpt(\u0027metadata_port\u0027,"},{"line_number":84,"context_line":"                   default\u003d8775,"},{"line_number":85,"context_line":"                   help\u003d\"TCP Port used by Nova metadata server.\"),"},{"line_number":86,"context_line":"        cfg.BoolOpt(\u0027send_arp_for_ha\u0027,"},{"line_number":87,"context_line":"                    default\u003dTrue,"},{"line_number":88,"context_line":"                    help\u003d\"Send gratuitious ARP when router IP is configured\"),"},{"line_number":89,"context_line":"        cfg.IntOpt(\u0027gratuitous_arp_num\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAALn%2F%2F9hU%3D","line":86,"in_reply_to":"AAAALn%2F%2F9kY%3D","updated":"2012-10-24 18:13:05.000000000","message":"Overloading makes sense here because we\u0027ve defaulted to sending gratuitous arps.  We should change the help text to indicate that a val \u003c\u003d 0 means the feature is off.","commit_id":"e005556659d0dce5ad41e1004c9b752e46400a37"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"unresolved":false,"context_lines":[{"line_number":83,"context_line":"        cfg.IntOpt(\u0027metadata_port\u0027,"},{"line_number":84,"context_line":"                   default\u003d8775,"},{"line_number":85,"context_line":"                   help\u003d\"TCP Port used by Nova metadata server.\"),"},{"line_number":86,"context_line":"        cfg.BoolOpt(\u0027send_arp_for_ha\u0027,"},{"line_number":87,"context_line":"                    default\u003dTrue,"},{"line_number":88,"context_line":"                    help\u003d\"Send gratuitious ARP when router IP is configured\"),"},{"line_number":89,"context_line":"        cfg.IntOpt(\u0027gratuitous_arp_num\u0027,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAALn%2F%2F9kY%3D","line":86,"in_reply_to":"AAAALn%2F%2F9pk%3D","updated":"2012-10-24 17:56:22.000000000","message":"I thought about that in Nova too, but this is a boolean not an integer.  If we could change that then I agree to just overload it.","commit_id":"e005556659d0dce5ad41e1004c9b752e46400a37"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"unresolved":false,"context_lines":[{"line_number":86,"context_line":"        cfg.BoolOpt(\u0027send_arp_for_ha\u0027,"},{"line_number":87,"context_line":"                    default\u003dTrue,"},{"line_number":88,"context_line":"                    help\u003d\"Send gratuitious ARP when router IP is configured\"),"},{"line_number":89,"context_line":"        cfg.IntOpt(\u0027gratuitous_arp_num\u0027,"},{"line_number":90,"context_line":"                   default\u003d3,"},{"line_number":91,"context_line":"                   help\u003d\"Number of gratuitious ARP packets\"),"},{"line_number":92,"context_line":"        cfg.BoolOpt(\u0027use_namespaces\u0027, default\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAALn%2F%2F9rQ%3D","line":89,"updated":"2012-10-24 16:33:31.000000000","message":"This looks identical to a change I made to nova in September, https://review.openstack.org/#/c/12436/\n\nCan you change this flag to be the same - send_arp_for_ha_count ?  That way users moving from nova network to quantum don\u0027t have to learn about another flag.","commit_id":"e005556659d0dce5ad41e1004c9b752e46400a37"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"unresolved":false,"context_lines":[{"line_number":373,"context_line":"                ip_wrapper.netns.execute(arping_cmd)"},{"line_number":374,"context_line":"            else:"},{"line_number":375,"context_line":"                utils.execute(arping_cmd, check_exit_code\u003dFalse,"},{"line_number":376,"context_line":"                              root_helper\u003dself.conf.root_helper)"},{"line_number":377,"context_line":""},{"line_number":378,"context_line":"    def get_internal_device_name(self, port_id):"},{"line_number":379,"context_line":"        return (INTERNAL_DEV_PREFIX + port_id)[:self.driver.DEV_NAME_LEN]"}],"source_content_type":"text/x-python","patch_set":9,"id":"AAAALn%2F%2F9rA%3D","line":376,"updated":"2012-10-24 16:33:31.000000000","message":"It would be nice to log an error on failure here, since it could point at a possible mis-configuration on the host.","commit_id":"e005556659d0dce5ad41e1004c9b752e46400a37"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"unresolved":false,"context_lines":[{"line_number":360,"context_line":"                      % ri.router_id)"},{"line_number":361,"context_line":""},{"line_number":362,"context_line":"    def _send_gratuitous_arp_packet(self, ri, interface_name, ip_address):"},{"line_number":363,"context_line":"        ip_wrapper \u003d ip_lib.IPWrapper(self.conf.root_helper,"},{"line_number":364,"context_line":"                                      namespace\u003dri.ns_name())"},{"line_number":365,"context_line":"        if self.conf.send_arp_for_ha \u003e 0:"},{"line_number":366,"context_line":"            arping_cmd \u003d [\u0027arping\u0027, \u0027-A\u0027, \u0027-U\u0027,"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAALn%2F%2F83M%3D","line":363,"updated":"2012-10-25 06:36:33.000000000","message":"I think that this line can be moved to after line 371. It is only used if the statement if self.conf.use_namespaces is True","commit_id":"e9e77d6120044cd0b6faa4075cbec6d05836244f"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"unresolved":false,"context_lines":[{"line_number":374,"context_line":"                    utils.execute(arping_cmd, check_exit_code\u003dTrue,"},{"line_number":375,"context_line":"                                  root_helper\u003dself.conf.root_helper)"},{"line_number":376,"context_line":"            except Exception as e:"},{"line_number":377,"context_line":"                LOG.error(_(\"Failed to sending gratuitious APR: %s\") % str(e))"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    def get_internal_device_name(self, port_id):"},{"line_number":380,"context_line":"        return (INTERNAL_DEV_PREFIX + port_id)[:self.driver.DEV_NAME_LEN]"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAALn%2F%2F8n4%3D","line":377,"updated":"2012-10-25 14:09:19.000000000","message":"Small typos - \"Failed sending gratuitous ARP\"","commit_id":"196d9744de4c60e423c563be237d381cc46bd0b8"},{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"unresolved":false,"context_lines":[{"line_number":374,"context_line":"                    utils.execute(arping_cmd, check_exit_code\u003dTrue,"},{"line_number":375,"context_line":"                                  root_helper\u003dself.conf.root_helper)"},{"line_number":376,"context_line":"            except Exception as e:"},{"line_number":377,"context_line":"                LOG.error(_(\"Failed sending gratuitious APR: %s\") % str(e))"},{"line_number":378,"context_line":""},{"line_number":379,"context_line":"    def get_internal_device_name(self, port_id):"},{"line_number":380,"context_line":"        return (INTERNAL_DEV_PREFIX + port_id)[:self.driver.DEV_NAME_LEN]"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAALn%2F%2F7fs%3D","line":377,"updated":"2012-10-26 14:53:02.000000000","message":"Sorry, there\u0027s still the two typos I mentioned in this line, should be\n\"Failed sending gratuitous ARP: %s\"\n\nUnless somehow my browser isn\u0027t refreshing correctly.","commit_id":"5b9400666f399abe31f9d6ebe8f631d23b08d75c"}]}
