)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"4ad2dad2da7c796c1a8cf265257e920821d4af0f","unresolved":false,"context_lines":[{"line_number":14,"context_line":""},{"line_number":15,"context_line":"In this patch, we check vxlan enablement via modinfo: if vxlan module"},{"line_number":16,"context_line":"exists, vxlan is enabled. The solution works also for vxlan"},{"line_number":17,"context_line":"implemented in OVS."},{"line_number":18,"context_line":""},{"line_number":19,"context_line":"Closes-Bug: #1267682"},{"line_number":20,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"AAAAUH%2F%2FHUA%3D","line":17,"updated":"2014-01-17 10:21:52.000000000","message":"I don\u0027t understand the reference to OVS here. If the linuxbridge-agent is being used, then why would OVS be installed? \n\nThe lb-agent uses iproute2 and the Linux vxlan kernel module to create vxlan tunnels. If OVS is installed for some reason, does that affect these? I don\u0027t think the lb-agent uses the vxlan implementation from OVS when OVS is installed. It definitely does not do so directly.","commit_id":"f8402c9bfda80596e148ffd358d10489c3e0f162"}],"neutron/common/exceptions.py":[{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"af8a8510b4b0ba2d6411b49b82c191841ffd9552","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"class NetworkVxlanUnsupported(NeutronException):"},{"line_number":314,"context_line":"    message \u003d _(\"Network VXLAN unsupported.\")"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"class DuplicatedExtension(NeutronException):"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAU3%2F%2F8EQ%3D","line":314,"updated":"2014-02-23 22:26:30.000000000","message":"Nit: I think this should be \"VXLAN network unsupported\". To me, \"Network VXLAN unsupported\" doesn\u0027t quite read correctly.","commit_id":"6c57a19d0c6a0c0bbdff1630931fb6be3b65c8bf"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"999eb97c946958608558098a9f9cc88cc506978e","unresolved":false,"context_lines":[{"line_number":311,"context_line":""},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"class NetworkVxlanUnsupported(NeutronException):"},{"line_number":314,"context_line":"    message \u003d _(\"Network VXLAN unsupported.\")"},{"line_number":315,"context_line":""},{"line_number":316,"context_line":""},{"line_number":317,"context_line":"class DuplicatedExtension(NeutronException):"}],"source_content_type":"text/x-python","patch_set":13,"id":"AAAAU3%2F%2F7Yw%3D","line":314,"in_reply_to":"AAAAU3%2F%2F8EQ%3D","updated":"2014-02-24 01:54:49.000000000","message":"Done","commit_id":"6c57a19d0c6a0c0bbdff1630931fb6be3b65c8bf"}],"neutron/plugins/linuxbridge/agent/linuxbridge_neutron_agent.py":[{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"710214668d32b95a7d20a5d55cabfdd1c63ac67c","unresolved":false,"context_lines":[{"line_number":526,"context_line":"        def vxlan_mod_exists():"},{"line_number":527,"context_line":"            try:"},{"line_number":528,"context_line":"                utils.execute([\u0027modinfo\u0027, \u0027vxlan\u0027],"},{"line_number":529,"context_line":"                              root_helper\u003dself.root_helper)"},{"line_number":530,"context_line":"            except RuntimeError:"},{"line_number":531,"context_line":"                return False"},{"line_number":532,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fnsk%3D","line":529,"updated":"2014-01-10 13:16:29.000000000","message":"modinfo does not need to be run as root.","commit_id":"694e1d87923bf543b873b276cefe7d9f310089b8"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"3cf503ca40e9cb71e39cbcbc05531368c2c39d2f","unresolved":false,"context_lines":[{"line_number":526,"context_line":"        def vxlan_mod_exists():"},{"line_number":527,"context_line":"            try:"},{"line_number":528,"context_line":"                utils.execute([\u0027modinfo\u0027, \u0027vxlan\u0027],"},{"line_number":529,"context_line":"                              root_helper\u003dself.root_helper)"},{"line_number":530,"context_line":"            except RuntimeError:"},{"line_number":531,"context_line":"                return False"},{"line_number":532,"context_line":"            return True"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FlLM%3D","line":529,"in_reply_to":"AAAAUH%2F%2Fnsk%3D","updated":"2014-01-10 19:59:11.000000000","message":"Done","commit_id":"694e1d87923bf543b873b276cefe7d9f310089b8"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"710214668d32b95a7d20a5d55cabfdd1c63ac67c","unresolved":false,"context_lines":[{"line_number":529,"context_line":"                              root_helper\u003dself.root_helper)"},{"line_number":530,"context_line":"            except RuntimeError:"},{"line_number":531,"context_line":"                return False"},{"line_number":532,"context_line":"            return True"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        vxlan_exists \u003d vxlan_mod_exists()"},{"line_number":535,"context_line":"        if cfg.CONF.VXLAN.l2_population and vxlan_exists and ("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fnr8%3D","line":532,"updated":"2014-01-10 13:16:29.000000000","message":"vxlan_mod_exists() is not needed. You can reduce the number of lines and simplify by just doing:\n\n    try:\n        utils.execute([\u0027modinfo\u0027, \u0027vxlan\u0027])\n        vxlan_exists \u003d True\n    except RuntimeError:\n        vxlan_exists \u003d False","commit_id":"694e1d87923bf543b873b276cefe7d9f310089b8"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"3cf503ca40e9cb71e39cbcbc05531368c2c39d2f","unresolved":false,"context_lines":[{"line_number":529,"context_line":"                              root_helper\u003dself.root_helper)"},{"line_number":530,"context_line":"            except RuntimeError:"},{"line_number":531,"context_line":"                return False"},{"line_number":532,"context_line":"            return True"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"        vxlan_exists \u003d vxlan_mod_exists()"},{"line_number":535,"context_line":"        if cfg.CONF.VXLAN.l2_population and vxlan_exists and ("}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FlLI%3D","line":532,"in_reply_to":"AAAAUH%2F%2Fnr8%3D","updated":"2014-01-10 19:59:11.000000000","message":"Done","commit_id":"694e1d87923bf543b873b276cefe7d9f310089b8"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"710214668d32b95a7d20a5d55cabfdd1c63ac67c","unresolved":false,"context_lines":[{"line_number":549,"context_line":"        else:"},{"line_number":550,"context_line":"            self.vxlan_mode \u003d lconst.VXLAN_NONE"},{"line_number":551,"context_line":"            LOG.warning(_(\u0027Unable to use VXLAN, it requires\u0027"},{"line_number":552,"context_line":"                          \u0027linux kernel vxlan mod and iproute2 3.8\u0027))"},{"line_number":553,"context_line":"        LOG.debug(_(\u0027Using %s VXLAN mode\u0027), self.vxlan_mode)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def fdb_ip_entry_exists(self, mac, ip, interface):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FnrA%3D","line":552,"updated":"2014-01-10 13:16:29.000000000","message":"Unable to use VXLAN. It requires the Linux kernel vxlan module and iproute2 3.8","commit_id":"694e1d87923bf543b873b276cefe7d9f310089b8"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"3cf503ca40e9cb71e39cbcbc05531368c2c39d2f","unresolved":false,"context_lines":[{"line_number":549,"context_line":"        else:"},{"line_number":550,"context_line":"            self.vxlan_mode \u003d lconst.VXLAN_NONE"},{"line_number":551,"context_line":"            LOG.warning(_(\u0027Unable to use VXLAN, it requires\u0027"},{"line_number":552,"context_line":"                          \u0027linux kernel vxlan mod and iproute2 3.8\u0027))"},{"line_number":553,"context_line":"        LOG.debug(_(\u0027Using %s VXLAN mode\u0027), self.vxlan_mode)"},{"line_number":554,"context_line":""},{"line_number":555,"context_line":"    def fdb_ip_entry_exists(self, mac, ip, interface):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FlLE%3D","line":552,"in_reply_to":"AAAAUH%2F%2FnrA%3D","updated":"2014-01-10 19:59:11.000000000","message":"Done","commit_id":"694e1d87923bf543b873b276cefe7d9f310089b8"},{"author":{"_account_id":2711,"name":"Zhang Hua","display_name":"Zhang Hua","email":"joshua.zhang@canonical.com","username":"zhhuabj"},"change_message_id":"e4ced4da92a1459d375d21790a87941c3de23592","unresolved":false,"context_lines":[{"line_number":528,"context_line":"        kernel_version \u003d dist_version.LooseVersion(platform.release())"},{"line_number":529,"context_line":"        if cfg.CONF.VXLAN.l2_population and ("},{"line_number":530,"context_line":"                kernel_version \u003e dist_version.LooseVersion("},{"line_number":531,"context_line":"                lconst.MIN_VXLAN_KVER[lconst.VXLAN_UCAST])) and ("},{"line_number":532,"context_line":"                ip_lib.iproute_arg_supported([\u0027bridge\u0027, \u0027fdb\u0027],"},{"line_number":533,"context_line":"                                             \u0027append\u0027, self.root_helper)):"},{"line_number":534,"context_line":"            self.vxlan_mode \u003d lconst.VXLAN_UCAST"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2Fjd4%3D","side":"PARENT","line":531,"updated":"2014-01-11 12:57:21.000000000","message":"consider removing the const MIN_VXLAN_KVER if it\u0027s unused in any place.","commit_id":"641e7c6214834c9379858ff4b7bb4f54569545b5"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"263467ff937790d60c5ddcf21472b77d25413209","unresolved":false,"context_lines":[{"line_number":528,"context_line":"        kernel_version \u003d dist_version.LooseVersion(platform.release())"},{"line_number":529,"context_line":"        if cfg.CONF.VXLAN.l2_population and ("},{"line_number":530,"context_line":"                kernel_version \u003e dist_version.LooseVersion("},{"line_number":531,"context_line":"                lconst.MIN_VXLAN_KVER[lconst.VXLAN_UCAST])) and ("},{"line_number":532,"context_line":"                ip_lib.iproute_arg_supported([\u0027bridge\u0027, \u0027fdb\u0027],"},{"line_number":533,"context_line":"                                             \u0027append\u0027, self.root_helper)):"},{"line_number":534,"context_line":"            self.vxlan_mode \u003d lconst.VXLAN_UCAST"}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2Fg7E%3D","side":"PARENT","line":531,"in_reply_to":"AAAAUH%2F%2Fjd4%3D","updated":"2014-01-13 03:39:56.000000000","message":"Done","commit_id":"641e7c6214834c9379858ff4b7bb4f54569545b5"},{"author":{"_account_id":1653,"name":"garyk","email":"gkotton@vmware.com","username":"garyk"},"change_message_id":"f1151119b3cc411a4e361a81a7809c20e148cadd","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        else:"},{"line_number":547,"context_line":"            self.vxlan_mode \u003d lconst.VXLAN_NONE"},{"line_number":548,"context_line":"            LOG.warning(_(\u0027Unable to use VXLAN, it requires the\u0027"},{"line_number":549,"context_line":"                          \u0027Linux kernel vxlan module and iproute2 3.8\u0027))"},{"line_number":550,"context_line":"        LOG.debug(_(\u0027Using %s VXLAN mode\u0027), self.vxlan_mode)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"    def fdb_ip_entry_exists(self, mac, ip, interface):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2BwC8%3D","line":549,"updated":"2014-01-22 14:43:13.000000000","message":"Maybe we should consider raising an exception here and terminating the process.","commit_id":"6154f559e9e30fa26936c529264e54d61bd8bea2"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"f159c4c226602aae149ad428f001a8b236218321","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        else:"},{"line_number":547,"context_line":"            self.vxlan_mode \u003d lconst.VXLAN_NONE"},{"line_number":548,"context_line":"            LOG.warning(_(\u0027Unable to use VXLAN, it requires the\u0027"},{"line_number":549,"context_line":"                          \u0027Linux kernel vxlan module and iproute2 3.8\u0027))"},{"line_number":550,"context_line":"        LOG.debug(_(\u0027Using %s VXLAN mode\u0027), self.vxlan_mode)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"    def fdb_ip_entry_exists(self, mac, ip, interface):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2BeRE%3D","line":549,"in_reply_to":"AAAAUH%2F%2BiNc%3D","updated":"2014-01-25 14:19:03.000000000","message":"Done","commit_id":"6154f559e9e30fa26936c529264e54d61bd8bea2"},{"author":{"_account_id":105,"name":"Kyle Mestery","email":"mestery@mestery.com","username":"mestery"},"change_message_id":"6e12bf12948a00ce270615f849e35379612f9641","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        else:"},{"line_number":547,"context_line":"            self.vxlan_mode \u003d lconst.VXLAN_NONE"},{"line_number":548,"context_line":"            LOG.warning(_(\u0027Unable to use VXLAN, it requires the\u0027"},{"line_number":549,"context_line":"                          \u0027Linux kernel vxlan module and iproute2 3.8\u0027))"},{"line_number":550,"context_line":"        LOG.debug(_(\u0027Using %s VXLAN mode\u0027), self.vxlan_mode)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"    def fdb_ip_entry_exists(self, mac, ip, interface):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2BiNc%3D","line":549,"in_reply_to":"AAAAUH%2F%2Bkj4%3D","updated":"2014-01-24 16:52:31.000000000","message":"I think I agree with @garyk here, I think raising is appropriate for this patch.","commit_id":"6154f559e9e30fa26936c529264e54d61bd8bea2"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"89ee744c8e30ce85faa8f7ca64c15a8187353448","unresolved":false,"context_lines":[{"line_number":546,"context_line":"        else:"},{"line_number":547,"context_line":"            self.vxlan_mode \u003d lconst.VXLAN_NONE"},{"line_number":548,"context_line":"            LOG.warning(_(\u0027Unable to use VXLAN, it requires the\u0027"},{"line_number":549,"context_line":"                          \u0027Linux kernel vxlan module and iproute2 3.8\u0027))"},{"line_number":550,"context_line":"        LOG.debug(_(\u0027Using %s VXLAN mode\u0027), self.vxlan_mode)"},{"line_number":551,"context_line":""},{"line_number":552,"context_line":"    def fdb_ip_entry_exists(self, mac, ip, interface):"}],"source_content_type":"text/x-python","patch_set":7,"id":"AAAAUH%2F%2Bkj4%3D","line":549,"in_reply_to":"AAAAUH%2F%2BwC8%3D","updated":"2014-01-24 09:30:45.000000000","message":"This patch is just using modinfo to replace kernel version check. How about in another patch to handle this? So we can avoid potential regressions.","commit_id":"6154f559e9e30fa26936c529264e54d61bd8bea2"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"156b0671e92903b7981b6b2f152aaabb776ad03d","unresolved":false,"context_lines":[{"line_number":538,"context_line":"                ip_lib.iproute_arg_supported([\u0027ip\u0027, \u0027link\u0027, \u0027add\u0027,"},{"line_number":539,"context_line":"                                              \u0027type\u0027, \u0027vxlan\u0027], \u0027proxy\u0027,"},{"line_number":540,"context_line":"                                             self.root_helper)):"},{"line_number":541,"context_line":"            if cfg.CONF.VXLAN.vxlan_group:"},{"line_number":542,"context_line":"                self.vxlan_mode \u003d lconst.VXLAN_MCAST"},{"line_number":543,"context_line":"            else:"},{"line_number":544,"context_line":"                self.vxlan_mode \u003d lconst.VXLAN_NONE"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F9hqg%3D","line":541,"updated":"2014-02-06 10:02:13.000000000","message":"This will always be trus, even if vxlan_group is not a valid multicast address","commit_id":"d7db1338326850e21c26d0629cfdfac61cf7c404"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"005fcf4e15c5dec86aeebe2f9678a32d04f1d994","unresolved":false,"context_lines":[{"line_number":538,"context_line":"                ip_lib.iproute_arg_supported([\u0027ip\u0027, \u0027link\u0027, \u0027add\u0027,"},{"line_number":539,"context_line":"                                              \u0027type\u0027, \u0027vxlan\u0027], \u0027proxy\u0027,"},{"line_number":540,"context_line":"                                             self.root_helper)):"},{"line_number":541,"context_line":"            if cfg.CONF.VXLAN.vxlan_group:"},{"line_number":542,"context_line":"                self.vxlan_mode \u003d lconst.VXLAN_MCAST"},{"line_number":543,"context_line":"            else:"},{"line_number":544,"context_line":"                self.vxlan_mode \u003d lconst.VXLAN_NONE"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2F3gI%3D","line":541,"in_reply_to":"AAAAUH%2F9hqg%3D","updated":"2014-02-10 09:35:09.000000000","message":"End user can set vxlan_group to \u0027\u0027 so it is not always true.","commit_id":"d7db1338326850e21c26d0629cfdfac61cf7c404"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"6df9bf6568c736c5c9c2ec0988b7a33e6a9a1b2f","unresolved":false,"context_lines":[{"line_number":533,"context_line":"        if cfg.CONF.VXLAN.l2_population and vxlan_exists and ("},{"line_number":534,"context_line":"                ip_lib.iproute_arg_supported([\u0027bridge\u0027, \u0027fdb\u0027],"},{"line_number":535,"context_line":"                                             \u0027append\u0027, self.root_helper)):"},{"line_number":536,"context_line":"            self.vxlan_mode \u003d lconst.VXLAN_UCAST"},{"line_number":537,"context_line":"        elif vxlan_exists and ("},{"line_number":538,"context_line":"                ip_lib.iproute_arg_supported([\u0027ip\u0027, \u0027link\u0027, \u0027add\u0027,"},{"line_number":539,"context_line":"                                              \u0027type\u0027, \u0027vxlan\u0027], \u0027proxy\u0027,"}],"source_content_type":"text/x-python","patch_set":10,"id":"AAAAUX%2F%2FP0I%3D","line":536,"updated":"2014-02-14 15:15:15.000000000","message":"This may enable unicast flooding while kernel doesn\u0027t support it, wouldn\u0027t it be safer to check if kernel module effectively supports it, for example, you could add here:\n\n        test_iface \u003d self.ensure_vxlan(\u00271\u0027)\n        try:\n            utils.execute([\u0027bridge\u0027, \u0027fdb\u0027, \u0027append\u0027,\n                           constants.FLOODING_ENTRY[0],\n                           \u0027dev\u0027, test_iface, \u0027dst\u0027, \u00271.1.1.1\u0027],\n                           root_helper\u003dself.root_helper,\n                           check_exit_code\u003dTrue)\n        except RuntimeError:\n            self.vxlan_mode \u003d lconst.VXLAN_MCAST\n        self.delete_vxlan(test_iface)\n\nOnly issue is that you\u0027d have to make sure that test_iface VNID isn\u0027t already used by a neutron network...","commit_id":"50f6ccbac86194547f71323cbd8e4c20dfafce20"},{"author":{"_account_id":7823,"name":"Xiang Hui","email":"xianghuir@gmail.com","username":"xianghui"},"change_message_id":"16488c1276be47168561bf20de16fa2b14551dd8","unresolved":false,"context_lines":[{"line_number":574,"context_line":"            self.vxlan_mode \u003d lconst.VXLAN_MCAST"},{"line_number":575,"context_line":"        else:"},{"line_number":576,"context_line":"            LOG.error(_(\u0027Unable to use VXLAN, it requires the\u0027"},{"line_number":577,"context_line":"                        \u0027Linux kernel vxlan module and iproute2 3.8\u0027))"},{"line_number":578,"context_line":"        LOG.debug(_(\u0027Using %s VXLAN mode\u0027), self.vxlan_mode)"},{"line_number":579,"context_line":"        if self.vxlan_mode \u003d\u003d lconst.VXLAN_NONE:"},{"line_number":580,"context_line":"            raise exceptions.NetworkVxlanUnsupported()"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2FB%2BU%3D","line":577,"updated":"2014-02-17 14:56:11.000000000","message":"Looks like this error msg is not accurate if neither setting cfg.CONF.VXLAN.l2_population and cfg.CONF.VXLAN.vxlan_group but the vxlan_module_supported() returns  true.","commit_id":"4a496b7c4a3c45ef083df04da651ec0b2078250e"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"f3815af2ed33f60108979f154cd1d156b89892af","unresolved":false,"context_lines":[{"line_number":574,"context_line":"            self.vxlan_mode \u003d lconst.VXLAN_MCAST"},{"line_number":575,"context_line":"        else:"},{"line_number":576,"context_line":"            LOG.error(_(\u0027Unable to use VXLAN, it requires the\u0027"},{"line_number":577,"context_line":"                        \u0027Linux kernel vxlan module and iproute2 3.8\u0027))"},{"line_number":578,"context_line":"        LOG.debug(_(\u0027Using %s VXLAN mode\u0027), self.vxlan_mode)"},{"line_number":579,"context_line":"        if self.vxlan_mode \u003d\u003d lconst.VXLAN_NONE:"},{"line_number":580,"context_line":"            raise exceptions.NetworkVxlanUnsupported()"}],"source_content_type":"text/x-python","patch_set":11,"id":"AAAAUX%2F%2B8LQ%3D","line":577,"in_reply_to":"AAAAUX%2F%2FB%2BU%3D","updated":"2014-02-18 03:51:40.000000000","message":"Done","commit_id":"4a496b7c4a3c45ef083df04da651ec0b2078250e"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"5cffcc4130f09bc5383c71b0904fbb4ac533d990","unresolved":false,"context_lines":[{"line_number":526,"context_line":"    def vxlan_ucast_supported(self):"},{"line_number":527,"context_line":"        if not cfg.CONF.VXLAN.l2_population:"},{"line_number":528,"context_line":"            LOG.warning(_(\u0027VXLAN l2 population must be provided in \u0027"},{"line_number":529,"context_line":"                          \u0027vxlan_group option to enable VXLAN UCAST mode\u0027))"},{"line_number":530,"context_line":"            return False"},{"line_number":531,"context_line":"        if not ip_lib.iproute_arg_supported("},{"line_number":532,"context_line":"                [\u0027bridge\u0027, \u0027fdb\u0027], \u0027append\u0027, self.root_helper):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2B6a4%3D","line":529,"updated":"2014-02-18 08:47:06.000000000","message":"It\u0027s probably l2_population option instead of vxlan_group. Btw, i\u0027m not convinced that users have to be warned here: if some want to use VXLAN with multicast based learning, they probably don\u0027t have to be warned about l2_population.","commit_id":"3761aec6da40330085f86fd5d05ca7f0668f930f"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"260a2407fffc399945525571cb8c9d89f736a21c","unresolved":false,"context_lines":[{"line_number":526,"context_line":"    def vxlan_ucast_supported(self):"},{"line_number":527,"context_line":"        if not cfg.CONF.VXLAN.l2_population:"},{"line_number":528,"context_line":"            LOG.warning(_(\u0027VXLAN l2 population must be provided in \u0027"},{"line_number":529,"context_line":"                          \u0027vxlan_group option to enable VXLAN UCAST mode\u0027))"},{"line_number":530,"context_line":"            return False"},{"line_number":531,"context_line":"        if not ip_lib.iproute_arg_supported("},{"line_number":532,"context_line":"                [\u0027bridge\u0027, \u0027fdb\u0027], \u0027append\u0027, self.root_helper):"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2B6MA%3D","line":529,"in_reply_to":"AAAAUX%2F%2B6a4%3D","updated":"2014-02-18 09:13:12.000000000","message":"Done","commit_id":"3761aec6da40330085f86fd5d05ca7f0668f930f"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"5cffcc4130f09bc5383c71b0904fbb4ac533d990","unresolved":false,"context_lines":[{"line_number":534,"context_line":"                          \u0027\"%(command)s\" to enable %(mode)s mode\u0027) %"},{"line_number":535,"context_line":"                        {\u0027option\u0027: \u0027append\u0027,"},{"line_number":536,"context_line":"                         \u0027command\u0027: \u0027bridge fdb\u0027,"},{"line_number":537,"context_line":"                         \u0027mode\u0027: \u0027VXLAN UCAST\u0027})"},{"line_number":538,"context_line":"            return False"},{"line_number":539,"context_line":"        segmentation_id \u003d 1"},{"line_number":540,"context_line":"        while self.device_exists("}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2B6gc%3D","line":537,"updated":"2014-02-18 08:47:06.000000000","message":"Substitution is probably not necessary here as you\u0027re using string constants","commit_id":"3761aec6da40330085f86fd5d05ca7f0668f930f"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"260a2407fffc399945525571cb8c9d89f736a21c","unresolved":false,"context_lines":[{"line_number":534,"context_line":"                          \u0027\"%(command)s\" to enable %(mode)s mode\u0027) %"},{"line_number":535,"context_line":"                        {\u0027option\u0027: \u0027append\u0027,"},{"line_number":536,"context_line":"                         \u0027command\u0027: \u0027bridge fdb\u0027,"},{"line_number":537,"context_line":"                         \u0027mode\u0027: \u0027VXLAN UCAST\u0027})"},{"line_number":538,"context_line":"            return False"},{"line_number":539,"context_line":"        segmentation_id \u003d 1"},{"line_number":540,"context_line":"        while self.device_exists("}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2B6MM%3D","line":537,"in_reply_to":"AAAAUX%2F%2B6gc%3D","updated":"2014-02-18 09:13:12.000000000","message":"I use substitution in odrer to avoid strings like append, bridge fdb being translated.","commit_id":"3761aec6da40330085f86fd5d05ca7f0668f930f"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"5cffcc4130f09bc5383c71b0904fbb4ac533d990","unresolved":false,"context_lines":[{"line_number":564,"context_line":"                          \u0027\"%(command)s\" to enable %(mode)s mode\u0027) %"},{"line_number":565,"context_line":"                        {\u0027option\u0027: \u0027proxy\u0027,"},{"line_number":566,"context_line":"                         \u0027command\u0027: \u0027ip link add type vxlan\u0027,"},{"line_number":567,"context_line":"                         \u0027mode\u0027: \u0027VXLAN MCAST\u0027})"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"            return False"},{"line_number":570,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2B6gg%3D","line":567,"updated":"2014-02-18 08:47:06.000000000","message":"ditto","commit_id":"3761aec6da40330085f86fd5d05ca7f0668f930f"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"260a2407fffc399945525571cb8c9d89f736a21c","unresolved":false,"context_lines":[{"line_number":564,"context_line":"                          \u0027\"%(command)s\" to enable %(mode)s mode\u0027) %"},{"line_number":565,"context_line":"                        {\u0027option\u0027: \u0027proxy\u0027,"},{"line_number":566,"context_line":"                         \u0027command\u0027: \u0027ip link add type vxlan\u0027,"},{"line_number":567,"context_line":"                         \u0027mode\u0027: \u0027VXLAN MCAST\u0027})"},{"line_number":568,"context_line":""},{"line_number":569,"context_line":"            return False"},{"line_number":570,"context_line":"        return True"}],"source_content_type":"text/x-python","patch_set":12,"id":"AAAAUX%2F%2B6MI%3D","line":567,"in_reply_to":"AAAAUX%2F%2B6gg%3D","updated":"2014-02-18 09:13:12.000000000","message":"same","commit_id":"3761aec6da40330085f86fd5d05ca7f0668f930f"},{"author":{"_account_id":2592,"name":"Mark McClain","email":"mark@mcclain.xyz","username":"markmcclain"},"change_message_id":"705d0608bea7f4b0d89ee066ba2ce45cdba76b52","unresolved":false,"context_lines":[{"line_number":534,"context_line":"                         \u0027command\u0027: \u0027bridge fdb\u0027,"},{"line_number":535,"context_line":"                         \u0027mode\u0027: \u0027VXLAN UCAST\u0027})"},{"line_number":536,"context_line":"            return False"},{"line_number":537,"context_line":"        segmentation_id \u003d 1"},{"line_number":538,"context_line":"        while self.device_exists("},{"line_number":539,"context_line":"                self.get_vxlan_device_name(segmentation_id)):"},{"line_number":540,"context_line":"            segmentation_id \u003d segmentation_id + 1"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAVX%2F%2F1s0%3D","line":537,"updated":"2014-02-27 22:45:48.000000000","message":"This needs to bounded otherwise it could infinite loop.\n\nfor range(1, constants.MAX_VXLAN_VNI+1):\n    if not self.device_exists(self.get_vxlan_device_name(segmentation_id)):\n    break\nelse:\n    # raise an exception or return False here -- not sure what is best?","commit_id":"13994a5991fecd4ff6a9f7aeb76b6e16e98b6b47"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"2c09246961ba4860da8304dbec34d58b89a6a98a","unresolved":false,"context_lines":[{"line_number":534,"context_line":"                         \u0027command\u0027: \u0027bridge fdb\u0027,"},{"line_number":535,"context_line":"                         \u0027mode\u0027: \u0027VXLAN UCAST\u0027})"},{"line_number":536,"context_line":"            return False"},{"line_number":537,"context_line":"        segmentation_id \u003d 1"},{"line_number":538,"context_line":"        while self.device_exists("},{"line_number":539,"context_line":"                self.get_vxlan_device_name(segmentation_id)):"},{"line_number":540,"context_line":"            segmentation_id \u003d segmentation_id + 1"}],"source_content_type":"text/x-python","patch_set":14,"id":"AAAAVX%2F%2F0xE%3D","line":537,"in_reply_to":"AAAAVX%2F%2F1s0%3D","updated":"2014-02-28 01:58:47.000000000","message":"Done","commit_id":"13994a5991fecd4ff6a9f7aeb76b6e16e98b6b47"}],"neutron/tests/unit/linuxbridge/test_lb_neutron_agent.py":[{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"710214668d32b95a7d20a5d55cabfdd1c63ac67c","unresolved":false,"context_lines":[{"line_number":610,"context_line":"                              \"removed\": set([\"dev3\"])"},{"line_number":611,"context_line":"                              })"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"    def _check_vxlan_support(self, vxlan_mod_exists, vxlan_proxy_supported,"},{"line_number":614,"context_line":"                             fdb_append_supported, l2_population,"},{"line_number":615,"context_line":"                             expected_mode):"},{"line_number":616,"context_line":"        def iproute_supported_side_effect(*args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fnyc%3D","line":613,"updated":"2014-01-10 13:16:29.000000000","message":"consider using vxlan_module_exists instead of the vxlan_mod_exists.","commit_id":"694e1d87923bf543b873b276cefe7d9f310089b8"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"3cf503ca40e9cb71e39cbcbc05531368c2c39d2f","unresolved":false,"context_lines":[{"line_number":610,"context_line":"                              \"removed\": set([\"dev3\"])"},{"line_number":611,"context_line":"                              })"},{"line_number":612,"context_line":""},{"line_number":613,"context_line":"    def _check_vxlan_support(self, vxlan_mod_exists, vxlan_proxy_supported,"},{"line_number":614,"context_line":"                             fdb_append_supported, l2_population,"},{"line_number":615,"context_line":"                             expected_mode):"},{"line_number":616,"context_line":"        def iproute_supported_side_effect(*args):"}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FlKo%3D","line":613,"in_reply_to":"AAAAUH%2F%2Fnyc%3D","updated":"2014-01-10 19:59:11.000000000","message":"Done","commit_id":"694e1d87923bf543b873b276cefe7d9f310089b8"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"710214668d32b95a7d20a5d55cabfdd1c63ac67c","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                return fdb_append_supported"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"        if vxlan_mod_exists:"},{"line_number":623,"context_line":"            vxlan_mode_side_effect \u003d None"},{"line_number":624,"context_line":"        else:"},{"line_number":625,"context_line":"            vxlan_mode_side_effect \u003d RuntimeError()"},{"line_number":626,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fn0I%3D","line":623,"updated":"2014-01-10 13:16:29.000000000","message":"s/ vxlan_mode_side_effect / vxlan_mod_side_effect /","commit_id":"694e1d87923bf543b873b276cefe7d9f310089b8"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"3cf503ca40e9cb71e39cbcbc05531368c2c39d2f","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                return fdb_append_supported"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"        if vxlan_mod_exists:"},{"line_number":623,"context_line":"            vxlan_mode_side_effect \u003d None"},{"line_number":624,"context_line":"        else:"},{"line_number":625,"context_line":"            vxlan_mode_side_effect \u003d RuntimeError()"},{"line_number":626,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FlLA%3D","line":623,"in_reply_to":"AAAAUH%2F%2Fn0I%3D","updated":"2014-01-10 19:59:11.000000000","message":"Done","commit_id":"694e1d87923bf543b873b276cefe7d9f310089b8"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"710214668d32b95a7d20a5d55cabfdd1c63ac67c","unresolved":false,"context_lines":[{"line_number":629,"context_line":"                              side_effect\u003diproute_supported_side_effect),"},{"line_number":630,"context_line":"            mock.patch.object(utils, \u0027execute\u0027,"},{"line_number":631,"context_line":"                              side_effect\u003dvxlan_mode_side_effect)"},{"line_number":632,"context_line":"        ) as (kver_fn, ip_arg_fn):"},{"line_number":633,"context_line":"            self.lbm.check_vxlan_support()"},{"line_number":634,"context_line":"            self.assertEqual(self.lbm.vxlan_mode, expected_mode)"},{"line_number":635,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2Fnpo%3D","line":632,"updated":"2014-01-10 13:16:29.000000000","message":"kver_fn, ip_arg_fn don\u0027t match to the mocks anymore. Anyway, neither is used, so the \u0027as (kver_fn, ip_arg_fn)\u0027 could be removed.","commit_id":"694e1d87923bf543b873b276cefe7d9f310089b8"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"3cf503ca40e9cb71e39cbcbc05531368c2c39d2f","unresolved":false,"context_lines":[{"line_number":629,"context_line":"                              side_effect\u003diproute_supported_side_effect),"},{"line_number":630,"context_line":"            mock.patch.object(utils, \u0027execute\u0027,"},{"line_number":631,"context_line":"                              side_effect\u003dvxlan_mode_side_effect)"},{"line_number":632,"context_line":"        ) as (kver_fn, ip_arg_fn):"},{"line_number":633,"context_line":"            self.lbm.check_vxlan_support()"},{"line_number":634,"context_line":"            self.assertEqual(self.lbm.vxlan_mode, expected_mode)"},{"line_number":635,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"AAAAUH%2F%2FlK8%3D","line":632,"in_reply_to":"AAAAUH%2F%2Fnpo%3D","updated":"2014-01-10 19:59:11.000000000","message":"Done","commit_id":"694e1d87923bf543b873b276cefe7d9f310089b8"},{"author":{"_account_id":2733,"name":"Darragh O\u0027Reilly","email":"doreilly@suse.com","username":"darragh-oreilly"},"change_message_id":"31faa83ba12160f76a52759b9b9d74d1146bb529","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                return fdb_append_supported"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"        if vxlan_module_exists:"},{"line_number":623,"context_line":"            vxlan_mode_side_effect \u003d None"},{"line_number":624,"context_line":"        else:"},{"line_number":625,"context_line":"            vxlan_mode_side_effect \u003d RuntimeError()"},{"line_number":626,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2Fjc4%3D","line":623,"updated":"2014-01-11 13:06:22.000000000","message":"The \u0027mode\u0027 in vxlan_mode_side_effect does not make sense. I think a better name for this variable would be execute_side_effect. You could do it in one line too:\n\n    execute_side_effect \u003d None if vxlan_module_exists else RuntimeError()","commit_id":"8044bcbfe8f10aa3f965992e30e9548258d6c736"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"263467ff937790d60c5ddcf21472b77d25413209","unresolved":false,"context_lines":[{"line_number":620,"context_line":"                return fdb_append_supported"},{"line_number":621,"context_line":""},{"line_number":622,"context_line":"        if vxlan_module_exists:"},{"line_number":623,"context_line":"            vxlan_mode_side_effect \u003d None"},{"line_number":624,"context_line":"        else:"},{"line_number":625,"context_line":"            vxlan_mode_side_effect \u003d RuntimeError()"},{"line_number":626,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"AAAAUH%2F%2Fg7I%3D","line":623,"in_reply_to":"AAAAUH%2F%2Fjc4%3D","updated":"2014-01-13 03:39:56.000000000","message":"Done","commit_id":"8044bcbfe8f10aa3f965992e30e9548258d6c736"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"156b0671e92903b7981b6b2f152aaabb776ad03d","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                return fdb_append_supported"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        execute_side_effect \u003d None if vxlan_module_exists else RuntimeError()"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"        with contextlib.nested("},{"line_number":626,"context_line":"            mock.patch.object(ip_lib, \u0027iproute_arg_supported\u0027,"},{"line_number":627,"context_line":"                              side_effect\u003diproute_supported_side_effect),"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F9h5c%3D","line":624,"updated":"2014-02-06 10:02:13.000000000","message":"cfg.CONF.set_override(\u0027l2_population\u0027, l2_population, \u0027VXLAN\u0027)\nwas missing here, leading in several inconsistent tests below (sorry for that, my mistake!)","commit_id":"d7db1338326850e21c26d0629cfdfac61cf7c404"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"005fcf4e15c5dec86aeebe2f9678a32d04f1d994","unresolved":false,"context_lines":[{"line_number":621,"context_line":"                return fdb_append_supported"},{"line_number":622,"context_line":""},{"line_number":623,"context_line":"        execute_side_effect \u003d None if vxlan_module_exists else RuntimeError()"},{"line_number":624,"context_line":""},{"line_number":625,"context_line":"        with contextlib.nested("},{"line_number":626,"context_line":"            mock.patch.object(ip_lib, \u0027iproute_arg_supported\u0027,"},{"line_number":627,"context_line":"                              side_effect\u003diproute_supported_side_effect),"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2F3gc%3D","line":624,"in_reply_to":"AAAAUH%2F9h5c%3D","updated":"2014-02-10 09:35:09.000000000","message":"Done","commit_id":"d7db1338326850e21c26d0629cfdfac61cf7c404"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"156b0671e92903b7981b6b2f152aaabb776ad03d","unresolved":false,"context_lines":[{"line_number":639,"context_line":"                                  vxlan_proxy_supported\u003dTrue,"},{"line_number":640,"context_line":"                                  fdb_append_supported\u003dTrue,"},{"line_number":641,"context_line":"                                  l2_population\u003dTrue,"},{"line_number":642,"context_line":"                                  expected_mode\u003dlconst.VXLAN_MCAST)"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    def test_vxlan_mode_mcast(self):"},{"line_number":645,"context_line":"        self._check_vxlan_support(vxlan_module_exists\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F9h5E%3D","line":642,"updated":"2014-02-06 10:02:13.000000000","message":"expected mode should be VXLAN_UCAST here","commit_id":"d7db1338326850e21c26d0629cfdfac61cf7c404"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"005fcf4e15c5dec86aeebe2f9678a32d04f1d994","unresolved":false,"context_lines":[{"line_number":639,"context_line":"                                  vxlan_proxy_supported\u003dTrue,"},{"line_number":640,"context_line":"                                  fdb_append_supported\u003dTrue,"},{"line_number":641,"context_line":"                                  l2_population\u003dTrue,"},{"line_number":642,"context_line":"                                  expected_mode\u003dlconst.VXLAN_MCAST)"},{"line_number":643,"context_line":""},{"line_number":644,"context_line":"    def test_vxlan_mode_mcast(self):"},{"line_number":645,"context_line":"        self._check_vxlan_support(vxlan_module_exists\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2F3go%3D","line":642,"in_reply_to":"AAAAUH%2F9h5E%3D","updated":"2014-02-10 09:35:09.000000000","message":"Done","commit_id":"d7db1338326850e21c26d0629cfdfac61cf7c404"},{"author":{"_account_id":6820,"name":"Francois Eleouet","email":"f.eleouet@gmail.com","username":"fanchon"},"change_message_id":"156b0671e92903b7981b6b2f152aaabb776ad03d","unresolved":false,"context_lines":[{"line_number":665,"context_line":"                                  l2_population\u003dFalse,"},{"line_number":666,"context_line":"                                  expected_mode\u003dlconst.VXLAN_NONE)"},{"line_number":667,"context_line":"        cfg.CONF.set_override(\u0027vxlan_group\u0027, \u0027\u0027, \u0027VXLAN\u0027)"},{"line_number":668,"context_line":"        self._check_vxlan_support(vxlan_module_exists\u003dTrue,"},{"line_number":669,"context_line":"                                  vxlan_proxy_supported\u003dTrue,"},{"line_number":670,"context_line":"                                  fdb_append_supported\u003dTrue,"},{"line_number":671,"context_line":"                                  l2_population\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUH%2F9hzM%3D","line":668,"updated":"2014-02-06 10:02:13.000000000","message":"when l2_population override is set, this test will fail as check in linuxbridge_neutron_agent.py:541 is not relevant.","commit_id":"d7db1338326850e21c26d0629cfdfac61cf7c404"},{"author":{"_account_id":7761,"name":"Jun Jie Nan","email":"nanjunjie@gmail.com","username":"nanjj"},"change_message_id":"005fcf4e15c5dec86aeebe2f9678a32d04f1d994","unresolved":false,"context_lines":[{"line_number":665,"context_line":"                                  l2_population\u003dFalse,"},{"line_number":666,"context_line":"                                  expected_mode\u003dlconst.VXLAN_NONE)"},{"line_number":667,"context_line":"        cfg.CONF.set_override(\u0027vxlan_group\u0027, \u0027\u0027, \u0027VXLAN\u0027)"},{"line_number":668,"context_line":"        self._check_vxlan_support(vxlan_module_exists\u003dTrue,"},{"line_number":669,"context_line":"                                  vxlan_proxy_supported\u003dTrue,"},{"line_number":670,"context_line":"                                  fdb_append_supported\u003dTrue,"},{"line_number":671,"context_line":"                                  l2_population\u003dTrue,"}],"source_content_type":"text/x-python","patch_set":8,"id":"AAAAUX%2F%2F3gs%3D","line":668,"in_reply_to":"AAAAUH%2F9hzM%3D","updated":"2014-02-10 09:35:09.000000000","message":"The test will not fail since in line 667 vxlan_group is override to \u0027\u0027.","commit_id":"d7db1338326850e21c26d0629cfdfac61cf7c404"}]}
