)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":9656,"name":"Ihar Hrachyshka","email":"ihrachys@redhat.com","username":"ihrachys","status":"Red Hat Networking Systems Engineer"},"change_message_id":"343d3c48b014f2aa2f6dbf4c5f73cb2705667edf","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dustin Lundquist \u003cdustin@null-ptr.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-18 13:36:53 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"LB Agent: use vxlan_group from type driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Use vxlan_group from ML2 VXLAN type driver and deprecate agent\u0027s"},{"line_number":10,"context_line":"vxlan_group configuration option. Move DEFAULT_VXLAN_GROUP into type"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba63e191_5969c48a","line":7,"updated":"2016-01-18 21:43:49.000000000","message":"I think the approach is wrong. The agent does not read ml2_conf.ini file that contains the option.","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11255,"name":"Dustin Lundquist","username":"dustin.lundquist","inactive":true},"change_message_id":"7e55965479a790687b08d284f22a135c21ee4a4c","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Dustin Lundquist \u003cdustin@null-ptr.net\u003e"},{"line_number":5,"context_line":"CommitDate: 2016-01-18 13:36:53 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"LB Agent: use vxlan_group from type driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Use vxlan_group from ML2 VXLAN type driver and deprecate agent\u0027s"},{"line_number":10,"context_line":"vxlan_group configuration option. Move DEFAULT_VXLAN_GROUP into type"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba63e191_692cf3ab","line":7,"in_reply_to":"ba63e191_5969c48a","updated":"2016-01-19 01:12:19.000000000","message":"Is this mapping of agents to config files documented somwhere? Perhaps we should just document that ml2_type_vxlan must be defined for the linuxbridge agent in the release notes?","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":7805,"name":"Li Ma","email":"skywalker.nick@gmail.com","username":"Nick"},"change_message_id":"da4fa4194b921baf899801acf228c9ac8c098721","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2016-01-18 13:36:53 -0800"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"LB Agent: use vxlan_group from type driver"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Use vxlan_group from ML2 VXLAN type driver and deprecate agent\u0027s"},{"line_number":10,"context_line":"vxlan_group configuration option. Move DEFAULT_VXLAN_GROUP into type"},{"line_number":11,"context_line":"driver and use it as default for both configuration options for"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ba63e191_a64bed2a","line":8,"updated":"2016-01-19 06:46:38.000000000","message":"Any explicit benefit for this modification? If it is merged, we also need to notify all the distributions and os vendors to update its init scripts by adding ml2.ini to lb-agents. I know some of them are doing it in this way, but I\u0027m not sure it is good to have.","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"}],"neutron/plugins/ml2/drivers/linuxbridge/agent/linuxbridge_neutron_agent.py":[{"author":{"_account_id":11255,"name":"Dustin Lundquist","username":"dustin.lundquist","inactive":true},"change_message_id":"22bc5214a904268f1d29290dceeb7a251b096df5","unresolved":false,"context_lines":[{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        if type_group !\u003d type_vxlan.DEFAULT_VXLAN_GROUP and \\"},{"line_number":101,"context_line":"                agt_group !\u003d type_vxlan.DEFAULT_VXLAN_GROUP and \\"},{"line_number":102,"context_line":"                type_group !\u003d agt_group:"},{"line_number":103,"context_line":"            LOG.error(_LE(\"Conflicting definitions of vxlan_group. \""},{"line_number":104,"context_line":"                          \"VXLAN.vxlan_group: %(agt_group)s and \""},{"line_number":105,"context_line":"                          \"ml2_type_vxlan.vxlan_group: %(type_group)s, \""}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_e07d726d","line":102,"updated":"2016-01-15 16:41:59.000000000","message":"This would be easier and cleaner if oslo.cfg permitted inspecting a config option to see if it had been set by the user.","commit_id":"2a61f47be9fe66628578477527f80e4fd3c0e33a"},{"author":{"_account_id":11255,"name":"Dustin Lundquist","username":"dustin.lundquist","inactive":true},"change_message_id":"22bc5214a904268f1d29290dceeb7a251b096df5","unresolved":false,"context_lines":[{"line_number":123,"context_line":"            LOG.error(_LE(\"Invalid %(source): %(group)s, must be an address \""},{"line_number":124,"context_line":"                          \"or network (in CIDR notation) in a multicast \""},{"line_number":125,"context_line":"                          \"range\"),"},{"line_number":126,"context_line":"                      {\u0027source\u0027: source, \u0027group\u0027: group})"},{"line_number":127,"context_line":"            sys.exit(1)"},{"line_number":128,"context_line":"        else:"},{"line_number":129,"context_line":"            return net"}],"source_content_type":"text/x-python","patch_set":1,"id":"da6ed579_c0f14e02","line":126,"updated":"2016-01-15 16:41:59.000000000","message":"This would be cleaner if oslo.cfg provided a method to return the configuration option.","commit_id":"2a61f47be9fe66628578477527f80e4fd3c0e33a"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"e4d8d37925281a19247cef5eba27ab5be393ca68","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        configuration error."},{"line_number":96,"context_line":"        \"\"\""},{"line_number":97,"context_line":"        type_group \u003d cfg.CONF.ml2_type_vxlan.vxlan_group"},{"line_number":98,"context_line":"        agt_group \u003d cfg.CONF.VXLAN.vxlan_group"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        if type_group !\u003d type_vxlan.DEFAULT_VXLAN_GROUP and \\"},{"line_number":101,"context_line":"                agt_group !\u003d type_vxlan.DEFAULT_VXLAN_GROUP and \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_7a69178b","line":98,"range":{"start_line":98,"start_character":8,"end_line":98,"end_character":46},"updated":"2016-01-18 22:44:10.000000000","message":"This will be removed in next cycle, won\u0027t it? I guess that we don\u0027t need to have such complicated logic if so. I also think that we need comments here which refer to deprecated value.","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11255,"name":"Dustin Lundquist","username":"dustin.lundquist","inactive":true},"change_message_id":"77aba794e3390dd99db4d7a1fd05051074f6fa70","unresolved":false,"context_lines":[{"line_number":95,"context_line":"        configuration error."},{"line_number":96,"context_line":"        \"\"\""},{"line_number":97,"context_line":"        type_group \u003d cfg.CONF.ml2_type_vxlan.vxlan_group"},{"line_number":98,"context_line":"        agt_group \u003d cfg.CONF.VXLAN.vxlan_group"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"        if type_group !\u003d type_vxlan.DEFAULT_VXLAN_GROUP and \\"},{"line_number":101,"context_line":"                agt_group !\u003d type_vxlan.DEFAULT_VXLAN_GROUP and \\"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_60588857","line":98,"range":{"start_line":98,"start_character":8,"end_line":98,"end_character":46},"in_reply_to":"ba63e191_7a69178b","updated":"2016-01-18 23:39:06.000000000","message":"Given the vxlan type driver option is presently being ignored, it seemed we needed some validation that they are not conflicting.\n\nWill note deprecation and reasoning for validation.","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"584b5e5d8256e63686debc307f747b5cd224507a","unresolved":false,"context_lines":[{"line_number":103,"context_line":"            LOG.error(_LE(\"Conflicting definitions of vxlan_group. \""},{"line_number":104,"context_line":"                          \"VXLAN.vxlan_group: %(agt_group)s and \""},{"line_number":105,"context_line":"                          \"ml2_type_vxlan.vxlan_group: %(type_group)s, \""},{"line_number":106,"context_line":"                          \"please removed deprecated VXLAN.vxlan_group \""},{"line_number":107,"context_line":"                          \"configuration parameter.\"),"},{"line_number":108,"context_line":"                      {\u0027agt_group\u0027: agt_group, \u0027type_group\u0027: type_group})"},{"line_number":109,"context_line":"            sys.exit(1)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_e21a116e","line":106,"range":{"start_line":106,"start_character":34,"end_line":106,"end_character":41},"updated":"2016-01-19 16:34:36.000000000","message":"s/remove/removed","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"584b5e5d8256e63686debc307f747b5cd224507a","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        if type_group \u003d\u003d type_vxlan.DEFAULT_VXLAN_GROUP and \\"},{"line_number":114,"context_line":"                agt_group !\u003d type_vxlan.DEFAULT_VXLAN_GROUP:"},{"line_number":115,"context_line":"            group \u003d agt_group"},{"line_number":116,"context_line":"            source \u003d \u0027VXLAN.vxlan_group\u0027"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"        try:"},{"line_number":119,"context_line":"            net \u003d netaddr.IPNetwork(group)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_e28d317c","line":116,"range":{"start_line":116,"start_character":28,"end_line":116,"end_character":39},"updated":"2016-01-19 16:34:36.000000000","message":"Maybe log a message that the Default entry is being ignored?","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"584b5e5d8256e63686debc307f747b5cd224507a","unresolved":false,"context_lines":[{"line_number":145,"context_line":"                sys.exit(1)"},{"line_number":146,"context_line":""},{"line_number":147,"context_line":"    def validate_local_ip_with_vxlan_group(self):"},{"line_number":148,"context_line":"        if not cfg.CONF.VXLAN.vxlan_group:"},{"line_number":149,"context_line":"            return"},{"line_number":150,"context_line":"        try:"},{"line_number":151,"context_line":"            ip_addr \u003d netaddr.IPAddress(self.local_ip)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_426d1d03","line":148,"range":{"start_line":148,"start_character":30,"end_line":148,"end_character":41},"updated":"2016-01-19 16:34:36.000000000","message":"remove?","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"584b5e5d8256e63686debc307f747b5cd224507a","unresolved":false,"context_lines":[{"line_number":149,"context_line":"            return"},{"line_number":150,"context_line":"        try:"},{"line_number":151,"context_line":"            ip_addr \u003d netaddr.IPAddress(self.local_ip)"},{"line_number":152,"context_line":"            # Ensure the configured group address/range is valid and multicast"},{"line_number":153,"context_line":"            if not ip_addr.version \u003d\u003d self.vxlan_group.version:"},{"line_number":154,"context_line":"                raise ValueError()"},{"line_number":155,"context_line":"        except (netaddr.core.AddrFormatError, ValueError):"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_10d1ac57","line":152,"range":{"start_line":152,"start_character":35,"end_line":152,"end_character":36},"updated":"2016-01-19 16:34:36.000000000","message":"This comment is invalid now, isn\u0027t it?","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"584b5e5d8256e63686debc307f747b5cd224507a","unresolved":false,"context_lines":[{"line_number":154,"context_line":"                raise ValueError()"},{"line_number":155,"context_line":"        except (netaddr.core.AddrFormatError, ValueError):"},{"line_number":156,"context_line":"            LOG.error(_LE(\"Invalid VXLAN Group: %(group)s, must be an address \""},{"line_number":157,"context_line":"                          \"or network (in CIDR notation) in a multicast \""},{"line_number":158,"context_line":"                          \"range of the same address family as local_ip: \""},{"line_number":159,"context_line":"                          \"%(ip)s\"),"},{"line_number":160,"context_line":"                      {\u0027group\u0027: str(self.vxlan_group),"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_90783cc6","line":157,"range":{"start_line":157,"start_character":46,"end_line":157,"end_character":47},"updated":"2016-01-19 16:34:36.000000000","message":"the only thing that can occur here is the version missmatch, right? If so remove everything else here","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"3d629595e840a5c1dd7f9cfb9f4a4b62f9d443de","unresolved":false,"context_lines":[{"line_number":96,"context_line":""},{"line_number":97,"context_line":"    def _get_vxlan_group(self):"},{"line_number":98,"context_line":"        \"\"\""},{"line_number":99,"context_line":"        Attempt to determine where user defined VXLAN group. If vxlan_group is"},{"line_number":100,"context_line":"        a defined as a non default value in either ml2_type_vxlan or VXLAN use"},{"line_number":101,"context_line":"        that value. If both are defined with conflicting values that is a"},{"line_number":102,"context_line":"        configuration error."}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_a16cb035","line":99,"range":{"start_line":99,"start_character":29,"end_line":99,"end_character":34},"updated":"2016-02-12 10:02:44.000000000","message":"remove \u0027where\u0027","commit_id":"ee5396aec357d0a68a25309201325128e11fee4c"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"3d629595e840a5c1dd7f9cfb9f4a4b62f9d443de","unresolved":false,"context_lines":[{"line_number":97,"context_line":"    def _get_vxlan_group(self):"},{"line_number":98,"context_line":"        \"\"\""},{"line_number":99,"context_line":"        Attempt to determine where user defined VXLAN group. If vxlan_group is"},{"line_number":100,"context_line":"        a defined as a non default value in either ml2_type_vxlan or VXLAN use"},{"line_number":101,"context_line":"        that value. If both are defined with conflicting values that is a"},{"line_number":102,"context_line":"        configuration error."},{"line_number":103,"context_line":"        \"\"\""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_61723813","line":100,"updated":"2016-02-12 10:02:44.000000000","message":"remove \u0027a\u0027","commit_id":"ee5396aec357d0a68a25309201325128e11fee4c"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"3d629595e840a5c1dd7f9cfb9f4a4b62f9d443de","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                          \"VXLAN.vxlan_group: %(agt_group)s and \""},{"line_number":118,"context_line":"                          \"ml2_type_vxlan.vxlan_group: %(type_group)s, \""},{"line_number":119,"context_line":"                          \"please removed deprecated VXLAN.vxlan_group \""},{"line_number":120,"context_line":"                          \"configuration parameter.\"),"},{"line_number":121,"context_line":"                      {\u0027agt_group\u0027: agt_group, \u0027type_group\u0027: type_group})"},{"line_number":122,"context_line":"            sys.exit(1)"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_01d2645c","line":120,"range":{"start_line":120,"start_character":41,"end_line":120,"end_character":50},"updated":"2016-02-12 10:02:44.000000000","message":"add \"of the servers ml2 configuration file\" or similar","commit_id":"ee5396aec357d0a68a25309201325128e11fee4c"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"3d629595e840a5c1dd7f9cfb9f4a4b62f9d443de","unresolved":false,"context_lines":[{"line_number":125,"context_line":"        source \u003d \u0027ml2_type_vxlan.vxlan_group\u0027"},{"line_number":126,"context_line":"        if type_group \u003d\u003d type_vxlan.DEFAULT_VXLAN_GROUP and \\"},{"line_number":127,"context_line":"                agt_group !\u003d type_vxlan.DEFAULT_VXLAN_GROUP:"},{"line_number":128,"context_line":"            group \u003d agt_group"},{"line_number":129,"context_line":"            source \u003d \u0027VXLAN.vxlan_group\u0027"},{"line_number":130,"context_line":""},{"line_number":131,"context_line":"        try:"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_e137084b","line":128,"updated":"2016-02-12 10:02:44.000000000","message":"What about printing out a warning log again, that his is deprecated? Or will it be printed out anyhow on agent start?","commit_id":"ee5396aec357d0a68a25309201325128e11fee4c"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"3d629595e840a5c1dd7f9cfb9f4a4b62f9d443de","unresolved":false,"context_lines":[{"line_number":138,"context_line":"                          \"range\"),"},{"line_number":139,"context_line":"                      {\u0027source\u0027: source, \u0027group\u0027: group})"},{"line_number":140,"context_line":"            sys.exit(1)"},{"line_number":141,"context_line":"        else:"},{"line_number":142,"context_line":"            return net"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    def validate_interface_mappings(self):"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_a17b5027","line":141,"updated":"2016-02-12 10:02:44.000000000","message":"What about printing out a debug log saying which group from which source was chosen?","commit_id":"ee5396aec357d0a68a25309201325128e11fee4c"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"3d629595e840a5c1dd7f9cfb9f4a4b62f9d443de","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                sys.exit(1)"},{"line_number":159,"context_line":""},{"line_number":160,"context_line":"    def validate_local_ip_with_vxlan_group(self):"},{"line_number":161,"context_line":"        if not cfg.CONF.VXLAN.vxlan_group:"},{"line_number":162,"context_line":"            return"},{"line_number":163,"context_line":"        try:"},{"line_number":164,"context_line":"            ip_addr \u003d netaddr.IPAddress(self.local_ip)"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_4c18931e","line":161,"updated":"2016-02-12 10:02:44.000000000","message":"shouldn\u0027t you use your new attribute self.vxlan_group here? \nIs this line still mandatory?","commit_id":"ee5396aec357d0a68a25309201325128e11fee4c"}],"neutron/tests/unit/plugins/ml2/drivers/linuxbridge/agent/test_linuxbridge_neutron_agent.py":[{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"584b5e5d8256e63686debc307f747b5cd224507a","unresolved":false,"context_lines":[{"line_number":571,"context_line":"            self.assertEqual(1, log.call_count)"},{"line_number":572,"context_line":"            exit.assert_called_once_with(1)"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"    def _test_local_ip_validation_failure(self, local_ip, vxlan_group):"},{"line_number":575,"context_line":"        net \u003d netaddr.IPNetwork(vxlan_group)"},{"line_number":576,"context_line":"        with mock.patch.object(ip_lib.IPWrapper,"},{"line_number":577,"context_line":"                               \u0027get_device_by_ip\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_5007241c","line":574,"range":{"start_line":574,"start_character":8,"end_line":574,"end_character":41},"updated":"2016-01-19 16:34:36.000000000","message":"why not name it along the method you\u0027re testing?\n\n_test_validate_local_ip_with_vxlan_group_failure","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11255,"name":"Dustin Lundquist","username":"dustin.lundquist","inactive":true},"change_message_id":"e3cc9dff6b8684573bfbf30ae08a29839f5ca362","unresolved":false,"context_lines":[{"line_number":571,"context_line":"            self.assertEqual(1, log.call_count)"},{"line_number":572,"context_line":"            exit.assert_called_once_with(1)"},{"line_number":573,"context_line":""},{"line_number":574,"context_line":"    def _test_local_ip_validation_failure(self, local_ip, vxlan_group):"},{"line_number":575,"context_line":"        net \u003d netaddr.IPNetwork(vxlan_group)"},{"line_number":576,"context_line":"        with mock.patch.object(ip_lib.IPWrapper,"},{"line_number":577,"context_line":"                               \u0027get_device_by_ip\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_50a5d9b2","line":574,"range":{"start_line":574,"start_character":8,"end_line":574,"end_character":41},"in_reply_to":"ba63e191_5007241c","updated":"2016-01-19 19:21:00.000000000","message":"Will change, thanks.","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"584b5e5d8256e63686debc307f747b5cd224507a","unresolved":false,"context_lines":[{"line_number":576,"context_line":"        with mock.patch.object(ip_lib.IPWrapper,"},{"line_number":577,"context_line":"                               \u0027get_device_by_ip\u0027,"},{"line_number":578,"context_line":"                               return_value\u003dFAKE_DEFAULT_DEV),\\"},{"line_number":579,"context_line":"                mock.patch.object(self.lbm, \u0027local_ip\u0027,"},{"line_number":580,"context_line":"                                  new_callable\u003dmock.PropertyMock,"},{"line_number":581,"context_line":"                                  return_value\u003dlocal_ip),\\"},{"line_number":582,"context_line":"                mock.patch.object(self.lbm, \u0027vxlan_group\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_73e35234","line":579,"range":{"start_line":579,"start_character":27,"end_line":579,"end_character":33},"updated":"2016-01-19 16:34:36.000000000","message":"why using mock here? You can just set it with \n\nself.lbm.local_ip \u003d local_ip\n\nsame with vxlan group","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11255,"name":"Dustin Lundquist","username":"dustin.lundquist","inactive":true},"change_message_id":"e3cc9dff6b8684573bfbf30ae08a29839f5ca362","unresolved":false,"context_lines":[{"line_number":576,"context_line":"        with mock.patch.object(ip_lib.IPWrapper,"},{"line_number":577,"context_line":"                               \u0027get_device_by_ip\u0027,"},{"line_number":578,"context_line":"                               return_value\u003dFAKE_DEFAULT_DEV),\\"},{"line_number":579,"context_line":"                mock.patch.object(self.lbm, \u0027local_ip\u0027,"},{"line_number":580,"context_line":"                                  new_callable\u003dmock.PropertyMock,"},{"line_number":581,"context_line":"                                  return_value\u003dlocal_ip),\\"},{"line_number":582,"context_line":"                mock.patch.object(self.lbm, \u0027vxlan_group\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_70c9fd77","line":579,"range":{"start_line":579,"start_character":27,"end_line":579,"end_character":33},"in_reply_to":"ba63e191_73e35234","updated":"2016-01-19 19:21:00.000000000","message":"Test below uses this multiple times, using mock ensures original state is restored before next tests.","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"584b5e5d8256e63686debc307f747b5cd224507a","unresolved":false,"context_lines":[{"line_number":589,"context_line":"            self.assertEqual(1, log.call_count)"},{"line_number":590,"context_line":"            exit.assert_called_once_with(1)"},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"    def test_local_ip_validation_failures(self):"},{"line_number":593,"context_line":"        self._test_local_ip_validation_failure(LOCAL_IP, VXLAN_GROUPV6)"},{"line_number":594,"context_line":"        self._test_local_ip_validation_failure(LOCAL_IPV6, VXLAN_GROUP)"},{"line_number":595,"context_line":"        self._test_local_ip_validation_failure(\u0027192.0.2.0.\u0027, VXLAN_GROUP)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_733032e9","line":592,"range":{"start_line":592,"start_character":8,"end_line":592,"end_character":41},"updated":"2016-01-19 16:34:36.000000000","message":"why not name it along the method you\u0027re testing?\n\ntest_validate_local_ip_with_vxlan_group_failures","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11255,"name":"Dustin Lundquist","username":"dustin.lundquist","inactive":true},"change_message_id":"e3cc9dff6b8684573bfbf30ae08a29839f5ca362","unresolved":false,"context_lines":[{"line_number":589,"context_line":"            self.assertEqual(1, log.call_count)"},{"line_number":590,"context_line":"            exit.assert_called_once_with(1)"},{"line_number":591,"context_line":""},{"line_number":592,"context_line":"    def test_local_ip_validation_failures(self):"},{"line_number":593,"context_line":"        self._test_local_ip_validation_failure(LOCAL_IP, VXLAN_GROUPV6)"},{"line_number":594,"context_line":"        self._test_local_ip_validation_failure(LOCAL_IPV6, VXLAN_GROUP)"},{"line_number":595,"context_line":"        self._test_local_ip_validation_failure(\u0027192.0.2.0.\u0027, VXLAN_GROUP)"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_10af6195","line":592,"range":{"start_line":592,"start_character":8,"end_line":592,"end_character":41},"in_reply_to":"ba63e191_733032e9","updated":"2016-01-19 19:21:00.000000000","message":"will change, thanks.","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"584b5e5d8256e63686debc307f747b5cd224507a","unresolved":false,"context_lines":[{"line_number":1224,"context_line":"    def _check_vxlan_mcast_supported("},{"line_number":1225,"context_line":"            self, expected, vxlan_group, iproute_arg_supported):"},{"line_number":1226,"context_line":"        rv \u003d netaddr.IPNetwork(vxlan_group)"},{"line_number":1227,"context_line":"        with mock.patch.object(self.lbm, \u0027vxlan_group\u0027,"},{"line_number":1228,"context_line":"                               new_callable\u003dmock.PropertyMock,"},{"line_number":1229,"context_line":"                               return_value\u003drv),\\"},{"line_number":1230,"context_line":"                mock.patch.object(ip_lib, \u0027iproute_arg_supported\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_f301826b","line":1227,"range":{"start_line":1227,"start_character":42,"end_line":1227,"end_character":53},"updated":"2016-01-19 16:34:36.000000000","message":"why do you need a mock? Can\u0027t you just set the state\n\nself.lbm.vxlan_group \u003d rv","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11255,"name":"Dustin Lundquist","username":"dustin.lundquist","inactive":true},"change_message_id":"e3cc9dff6b8684573bfbf30ae08a29839f5ca362","unresolved":false,"context_lines":[{"line_number":1224,"context_line":"    def _check_vxlan_mcast_supported("},{"line_number":1225,"context_line":"            self, expected, vxlan_group, iproute_arg_supported):"},{"line_number":1226,"context_line":"        rv \u003d netaddr.IPNetwork(vxlan_group)"},{"line_number":1227,"context_line":"        with mock.patch.object(self.lbm, \u0027vxlan_group\u0027,"},{"line_number":1228,"context_line":"                               new_callable\u003dmock.PropertyMock,"},{"line_number":1229,"context_line":"                               return_value\u003drv),\\"},{"line_number":1230,"context_line":"                mock.patch.object(ip_lib, \u0027iproute_arg_supported\u0027,"}],"source_content_type":"text/x-python","patch_set":2,"id":"ba63e191_50be39d5","line":1227,"range":{"start_line":1227,"start_character":42,"end_line":1227,"end_character":53},"in_reply_to":"ba63e191_f301826b","updated":"2016-01-19 19:21:00.000000000","message":"Test below calls this multiple times, using mock in context manager ensures original state is restored.","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"3d629595e840a5c1dd7f9cfb9f4a4b62f9d443de","unresolved":false,"context_lines":[{"line_number":578,"context_line":"            self.assertEqual(1, log.call_count)"},{"line_number":579,"context_line":"            exit.assert_called_once_with(1)"},{"line_number":580,"context_line":""},{"line_number":581,"context_line":"    def _test_local_ip_validation_failure(self, local_ip, vxlan_group):"},{"line_number":582,"context_line":"        net \u003d netaddr.IPNetwork(vxlan_group)"},{"line_number":583,"context_line":"        with mock.patch.object(ip_lib.IPWrapper,"},{"line_number":584,"context_line":"                               \u0027get_device_by_ip\u0027,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_cc09e385","line":581,"updated":"2016-02-12 10:02:44.000000000","message":"I personally would prefer to to name those test methods along the method they are testing. In this case \"_test_validate_ip_with_vxlan_group_..\".","commit_id":"ee5396aec357d0a68a25309201325128e11fee4c"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"3d629595e840a5c1dd7f9cfb9f4a4b62f9d443de","unresolved":false,"context_lines":[{"line_number":601,"context_line":"        self._test_local_ip_validation_failure(LOCAL_IPV6, VXLAN_GROUP)"},{"line_number":602,"context_line":"        self._test_local_ip_validation_failure(\u0027192.0.2.0.\u0027, VXLAN_GROUP)"},{"line_number":603,"context_line":""},{"line_number":604,"context_line":"    def test_vxlan_group_validation_accept_type_drv_opt(self):"},{"line_number":605,"context_line":"        cfg.CONF.set_override(\u0027vxlan_group\u0027, \u0027239.1.2.3\u0027,"},{"line_number":606,"context_line":"                              \u0027ml2_type_vxlan\u0027)"},{"line_number":607,"context_line":"        self.assertEqual(netaddr.IPNetwork(\u0027239.1.2.3\u0027),"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_cce483e1","line":604,"updated":"2016-02-12 10:02:44.000000000","message":"can we rename those tests to \"test_choose_vxlan_group_....\" cause that\u0027s basically the method you\u0027re testing","commit_id":"ee5396aec357d0a68a25309201325128e11fee4c"},{"author":{"_account_id":11307,"name":"Andreas Scheuring","email":"andreas.scheuring@de.ibm.com","username":"uniqueName"},"change_message_id":"3d629595e840a5c1dd7f9cfb9f4a4b62f9d443de","unresolved":false,"context_lines":[{"line_number":612,"context_line":"                              \u0027VXLAN\u0027)"},{"line_number":613,"context_line":"        self.assertEqual(netaddr.IPNetwork(\u0027239.1.2.3\u0027),"},{"line_number":614,"context_line":"                         self.lbm._choose_vxlan_group())"},{"line_number":615,"context_line":""},{"line_number":616,"context_line":"    def _test_vxlan_group_validation_failure(self):"},{"line_number":617,"context_line":"        with mock.patch.object(sys, \u0027exit\u0027) as exit,\\"},{"line_number":618,"context_line":"                mock.patch.object(linuxbridge_neutron_agent.LOG,"}],"source_content_type":"text/x-python","patch_set":4,"id":"3a57f1b5_8c3c4bc9","line":615,"updated":"2016-02-12 10:02:44.000000000","message":"please add a testcase where both are set to default","commit_id":"ee5396aec357d0a68a25309201325128e11fee4c"}],"releasenotes/notes/deprecate-lb-vxlan-group-0b9ac4c1c1f62378.yaml":[{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"e4d8d37925281a19247cef5eba27ab5be393ca68","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - The Linuxbridge agent VXLAN vxlan_group option has been deprecated in favor"},{"line_number":4,"context_line":"    of ml2_type_vxlan vxlan_group option. The VXLAN vxlan_group will be removed"},{"line_number":5,"context_line":"    in the \u0027O\u0027 cycle."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"ba63e191_1aa1fba9","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":21},"updated":"2016-01-18 22:44:10.000000000","message":"Why not \u0027N\u0027?","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11255,"name":"Dustin Lundquist","username":"dustin.lundquist","inactive":true},"change_message_id":"77aba794e3390dd99db4d7a1fd05051074f6fa70","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - The Linuxbridge agent VXLAN vxlan_group option has been deprecated in favor"},{"line_number":4,"context_line":"    of ml2_type_vxlan vxlan_group option. The VXLAN vxlan_group will be removed"},{"line_number":5,"context_line":"    in the \u0027O\u0027 cycle."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"ba63e191_c0adb432","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":21},"in_reply_to":"ba63e191_1aa1fba9","updated":"2016-01-18 23:39:06.000000000","message":"I thought we needed to wait 2 cycles? If we can do it in \u0027N\u0027, lets do so.","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":11255,"name":"Dustin Lundquist","username":"dustin.lundquist","inactive":true},"change_message_id":"7e55965479a790687b08d284f22a135c21ee4a4c","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - The Linuxbridge agent VXLAN vxlan_group option has been deprecated in favor"},{"line_number":4,"context_line":"    of ml2_type_vxlan vxlan_group option. The VXLAN vxlan_group will be removed"},{"line_number":5,"context_line":"    in the \u0027O\u0027 cycle."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"ba63e191_c9439f6b","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":21},"in_reply_to":"ba63e191_8e0ccd43","updated":"2016-01-19 01:12:19.000000000","message":"\u0027N\u0027 it is. Thanks!","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"},{"author":{"_account_id":7715,"name":"Hirofumi Ichihara","email":"ichihara.hirofumi@gmail.com","username":"Hirofumi-Ichihara"},"change_message_id":"84dabb97624d10c2aa3456ad4d37d53a409cc14e","unresolved":false,"context_lines":[{"line_number":2,"context_line":"upgrade:"},{"line_number":3,"context_line":"  - The Linuxbridge agent VXLAN vxlan_group option has been deprecated in favor"},{"line_number":4,"context_line":"    of ml2_type_vxlan vxlan_group option. The VXLAN vxlan_group will be removed"},{"line_number":5,"context_line":"    in the \u0027O\u0027 cycle."}],"source_content_type":"text/x-yaml","patch_set":2,"id":"ba63e191_8e0ccd43","line":5,"range":{"start_line":5,"start_character":4,"end_line":5,"end_character":21},"in_reply_to":"ba63e191_c0adb432","updated":"2016-01-19 00:39:27.000000000","message":"I understand that deprecated process needs 2 cycle: a deprecated cycle(Mitaka) and a removal cycle(N). At least this patch https://review.openstack.org/#/c/248498/ selects N.","commit_id":"887691903b2472572bc2e7bee06cdb1fa94870bc"}]}
