)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"512b71e1dfb1e795607517b70cdd27406c9a149a","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In [1] it is assumed that all mechanism drivers have an agent, but the"},{"line_number":10,"context_line":"mech driver API [2] doesn\u0027t enforce it. An additional check must be done"},{"line_number":11,"context_line":"in order to retrieve the \"agent_type\" instance variable."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[1]https://review.openstack.org/#/c/633165/20/neutron/plugins/ml2/plugin.py@814"},{"line_number":14,"context_line":"[2]https://github.com/openstack/neutron-lib/blob/stable/stein/neutron_lib/plugins/ml2/api.py#L37"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ffb9cba7_fbbb37e2","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":56},"updated":"2019-04-23 07:14:18.000000000","message":"It seems this needs to be updated.","commit_id":"12876ba311985b5c636d2203cae4fe405e6c916c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5e3096cf5c0ae4b6099b89aa94d9e8f84d2fd139","unresolved":false,"context_lines":[{"line_number":8,"context_line":""},{"line_number":9,"context_line":"In [1] it is assumed that all mechanism drivers have an agent, but the"},{"line_number":10,"context_line":"mech driver API [2] doesn\u0027t enforce it. An additional check must be done"},{"line_number":11,"context_line":"in order to retrieve the \"agent_type\" instance variable."},{"line_number":12,"context_line":""},{"line_number":13,"context_line":"[1]https://review.openstack.org/#/c/633165/20/neutron/plugins/ml2/plugin.py@814"},{"line_number":14,"context_line":"[2]https://github.com/openstack/neutron-lib/blob/stable/stein/neutron_lib/plugins/ml2/api.py#L37"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"ffb9cba7_a62cbf47","line":11,"range":{"start_line":11,"start_character":0,"end_line":11,"end_character":56},"in_reply_to":"ffb9cba7_fbbb37e2","updated":"2019-04-23 10:33:59.000000000","message":"Done","commit_id":"12876ba311985b5c636d2203cae4fe405e6c916c"}],"neutron/plugins/ml2/plugin.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"8a8233b45f36f6f281d13d92b4bd336a3fdd11e1","unresolved":false,"context_lines":[{"line_number":810,"context_line":"        vif_types \u003d [portbindings.VIF_TYPE_UNBOUND,"},{"line_number":811,"context_line":"                     portbindings.VIF_TYPE_BINDING_FAILED]"},{"line_number":812,"context_line":"        for mech_driver in self.mechanism_manager.ordered_mech_drivers:"},{"line_number":813,"context_line":"            if (provider_net.SEGMENTATION_ID in mech_driver.obj."},{"line_number":814,"context_line":"                    provider_network_attribute_updates_supported()):"},{"line_number":815,"context_line":"                agent_type \u003d getattr(mech_driver.obj, \u0027agent_type\u0027, None)"},{"line_number":816,"context_line":"                if not agent_type:"},{"line_number":817,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_70c52c8e","line":814,"range":{"start_line":813,"start_character":12,"end_line":814,"end_character":68},"updated":"2019-04-12 08:45:52.000000000","message":"How about changing this condition to:\n\n if (isinstance(mech_driver, AgentMechanismDriverBase) and\n     provider_net.SEGMENTATION_ID in mech_driver.obj.provider_network_attribute_updates_supported()):\n\nthis way you won\u0027t even need to move provider_network_attribute_updates_supported in the neutron-lib Mech driver API.","commit_id":"593b58b13688e63c11b3a4708fb9c76f770a739d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"2303dce9313be3a47e525de8e95f886831b1f783","unresolved":false,"context_lines":[{"line_number":810,"context_line":"        vif_types \u003d [portbindings.VIF_TYPE_UNBOUND,"},{"line_number":811,"context_line":"                     portbindings.VIF_TYPE_BINDING_FAILED]"},{"line_number":812,"context_line":"        for mech_driver in self.mechanism_manager.ordered_mech_drivers:"},{"line_number":813,"context_line":"            if (provider_net.SEGMENTATION_ID in mech_driver.obj."},{"line_number":814,"context_line":"                    provider_network_attribute_updates_supported()):"},{"line_number":815,"context_line":"                agent_type \u003d getattr(mech_driver.obj, \u0027agent_type\u0027, None)"},{"line_number":816,"context_line":"                if not agent_type:"},{"line_number":817,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_d7dc0f1a","line":814,"range":{"start_line":813,"start_character":12,"end_line":814,"end_character":68},"in_reply_to":"3fce034c_5fffdba9","updated":"2019-04-12 15:38:33.000000000","message":"Done","commit_id":"593b58b13688e63c11b3a4708fb9c76f770a739d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"9d5258732fdd5e741fd6766e4d909bcbc78b01b0","unresolved":false,"context_lines":[{"line_number":810,"context_line":"        vif_types \u003d [portbindings.VIF_TYPE_UNBOUND,"},{"line_number":811,"context_line":"                     portbindings.VIF_TYPE_BINDING_FAILED]"},{"line_number":812,"context_line":"        for mech_driver in self.mechanism_manager.ordered_mech_drivers:"},{"line_number":813,"context_line":"            if (provider_net.SEGMENTATION_ID in mech_driver.obj."},{"line_number":814,"context_line":"                    provider_network_attribute_updates_supported()):"},{"line_number":815,"context_line":"                agent_type \u003d getattr(mech_driver.obj, \u0027agent_type\u0027, None)"},{"line_number":816,"context_line":"                if not agent_type:"},{"line_number":817,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_a4d7d6bf","line":814,"range":{"start_line":813,"start_character":12,"end_line":814,"end_character":68},"in_reply_to":"3fce034c_70c52c8e","updated":"2019-04-12 13:10:29.000000000","message":"I understand your point here, but I don\u0027t want to depend on a class name. Instead of this, I prefer to have this method in the API class [1] and check for \"agent_type\".\n\nOnce [1] is released (it\u0027s already merged), all mech_drivers will have this method and test in L815-817 is enough to prevent any agentless mech_driver to have any problem.\n\nBTW, sorry for introducing this bug for other network backends.\n\n[1] https://review.openstack.org/#/c/651175/2/neutron_lib/plugins/ml2/api.py","commit_id":"593b58b13688e63c11b3a4708fb9c76f770a739d"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"0c08f95781f145d192752ea2b68ad7ccd17efba1","unresolved":false,"context_lines":[{"line_number":810,"context_line":"        vif_types \u003d [portbindings.VIF_TYPE_UNBOUND,"},{"line_number":811,"context_line":"                     portbindings.VIF_TYPE_BINDING_FAILED]"},{"line_number":812,"context_line":"        for mech_driver in self.mechanism_manager.ordered_mech_drivers:"},{"line_number":813,"context_line":"            if (provider_net.SEGMENTATION_ID in mech_driver.obj."},{"line_number":814,"context_line":"                    provider_network_attribute_updates_supported()):"},{"line_number":815,"context_line":"                agent_type \u003d getattr(mech_driver.obj, \u0027agent_type\u0027, None)"},{"line_number":816,"context_line":"                if not agent_type:"},{"line_number":817,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_5fffdba9","line":814,"range":{"start_line":813,"start_character":12,"end_line":814,"end_character":68},"in_reply_to":"3fce034c_a4d7d6bf","updated":"2019-04-12 13:35:49.000000000","message":"The agent_type is introduced by AgentMechanismDriverBase. I find it more correct to check if your superclass is the Agent one rather than relying on a single class attribute.\n\nIf you have a concern that 3rd party might not inherit from AgentMechanismDriverBase then it\u0027s the same as worrying they won\u0027t implement agent_type attribute/interface.\n\nNo need to apologize, every real Neutrino broke other networking backend at least once, it\u0027s a sign of maturity and good culture ;)","commit_id":"593b58b13688e63c11b3a4708fb9c76f770a739d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"116ded9c906c2963986331a7fc9ed8ed12baa29a","unresolved":false,"context_lines":[{"line_number":810,"context_line":"        vif_types \u003d [portbindings.VIF_TYPE_UNBOUND,"},{"line_number":811,"context_line":"                     portbindings.VIF_TYPE_BINDING_FAILED]"},{"line_number":812,"context_line":"        for mech_driver in self.mechanism_manager.ordered_mech_drivers:"},{"line_number":813,"context_line":"            if (provider_net.SEGMENTATION_ID in mech_driver.obj."},{"line_number":814,"context_line":"                    provider_network_attribute_updates_supported()):"},{"line_number":815,"context_line":"                agent_type \u003d getattr(mech_driver.obj, \u0027agent_type\u0027, None)"},{"line_number":816,"context_line":"                if not agent_type:"},{"line_number":817,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_f81c81c2","line":814,"range":{"start_line":813,"start_character":12,"end_line":814,"end_character":68},"in_reply_to":"3fce034c_c491a69b","updated":"2019-04-15 12:37:01.000000000","message":"I was solving some UTs problems hehehe","commit_id":"593b58b13688e63c11b3a4708fb9c76f770a739d"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"d7a1d3487a0ee4c0f8becf79b234c577eef1cd24","unresolved":false,"context_lines":[{"line_number":810,"context_line":"        vif_types \u003d [portbindings.VIF_TYPE_UNBOUND,"},{"line_number":811,"context_line":"                     portbindings.VIF_TYPE_BINDING_FAILED]"},{"line_number":812,"context_line":"        for mech_driver in self.mechanism_manager.ordered_mech_drivers:"},{"line_number":813,"context_line":"            if (provider_net.SEGMENTATION_ID in mech_driver.obj."},{"line_number":814,"context_line":"                    provider_network_attribute_updates_supported()):"},{"line_number":815,"context_line":"                agent_type \u003d getattr(mech_driver.obj, \u0027agent_type\u0027, None)"},{"line_number":816,"context_line":"                if not agent_type:"},{"line_number":817,"context_line":"                    continue"}],"source_content_type":"text/x-python","patch_set":1,"id":"3fce034c_c491a69b","line":814,"range":{"start_line":813,"start_character":12,"end_line":814,"end_character":68},"in_reply_to":"3fce034c_d7dc0f1a","updated":"2019-04-15 08:28:23.000000000","message":"didn\u0027t You forgot to push new PS maybe?","commit_id":"593b58b13688e63c11b3a4708fb9c76f770a739d"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"3e29f28c33c4607c0dc0c431274204014ddeb58c","unresolved":false,"context_lines":[{"line_number":815,"context_line":"                                     mech_agent.AgentMechanismDriverBase)"},{"line_number":816,"context_line":"            is_supported \u003d (provider_net.SEGMENTATION_ID in mech_driver.obj."},{"line_number":817,"context_line":"                            provider_network_attribute_updates_supported())"},{"line_number":818,"context_line":"            if is_instance and is_supported:"},{"line_number":819,"context_line":"                agent_type \u003d mech_driver.obj.agent_type"},{"line_number":820,"context_line":"                agents \u003d self.get_agents("},{"line_number":821,"context_line":"                    context, filters\u003d{\u0027agent_type\u0027: [agent_type]})"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fce034c_819ce55d","line":818,"range":{"start_line":818,"start_character":15,"end_line":818,"end_character":43},"updated":"2019-04-15 16:22:06.000000000","message":"nit: If you didn\u0027t split into two variables then the Python lazy evaluation would not even call the second part ((provider_net.SEGMENTATION_ID in mech_driver.obj.provider_network_attribute_updates_supported()) and the code will be compatible even with older neutron-lib versions.","commit_id":"42b1fb4ff3d47d41e91026556c9e5beb67d49c25"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"0e8d60b2b7153dc39f1b0d69f0a013d02302def8","unresolved":false,"context_lines":[{"line_number":815,"context_line":"                                     mech_agent.AgentMechanismDriverBase)"},{"line_number":816,"context_line":"            is_supported \u003d (provider_net.SEGMENTATION_ID in mech_driver.obj."},{"line_number":817,"context_line":"                            provider_network_attribute_updates_supported())"},{"line_number":818,"context_line":"            if is_instance and is_supported:"},{"line_number":819,"context_line":"                agent_type \u003d mech_driver.obj.agent_type"},{"line_number":820,"context_line":"                agents \u003d self.get_agents("},{"line_number":821,"context_line":"                    context, filters\u003d{\u0027agent_type\u0027: [agent_type]})"}],"source_content_type":"text/x-python","patch_set":2,"id":"3fce034c_9dd67a27","line":818,"range":{"start_line":818,"start_character":15,"end_line":818,"end_character":43},"in_reply_to":"3fce034c_819ce55d","updated":"2019-04-16 08:08:18.000000000","message":"I know but I did this for the sake of readability. Anyway, I\u0027ll join both conditions in the same line.","commit_id":"42b1fb4ff3d47d41e91026556c9e5beb67d49c25"}],"neutron/tests/unit/plugins/ml2/drivers/mechanism_logger.py":[{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"701c1ea6485609749501013f80af855d8d35950f","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                 {\u0027segments\u0027: segments, \u0027hosts\u0027: candidate_hosts})"},{"line_number":142,"context_line":"        return set()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    # NOTE(ralonsoh): to be removed with neutron-lib \u003e 1.25.0"},{"line_number":145,"context_line":"    @staticmethod"},{"line_number":146,"context_line":"    def provider_network_attribute_updates_supported():"},{"line_number":147,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fce034c_e0381c3e","line":144,"updated":"2019-04-17 07:32:48.000000000","message":"should be this week IIRC what boden wanted :)","commit_id":"12876ba311985b5c636d2203cae4fe405e6c916c"},{"author":{"_account_id":13995,"name":"Nate Johnston","email":"nate.johnston@redhat.com","username":"natejohnston"},"change_message_id":"2996690ab180183e473a75d78828591a069d8688","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                 {\u0027segments\u0027: segments, \u0027hosts\u0027: candidate_hosts})"},{"line_number":142,"context_line":"        return set()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    # NOTE(ralonsoh): to be removed with neutron-lib \u003e 1.25.0"},{"line_number":145,"context_line":"    @staticmethod"},{"line_number":146,"context_line":"    def provider_network_attribute_updates_supported():"},{"line_number":147,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_663b32d1","line":144,"in_reply_to":"3fce034c_e0381c3e","updated":"2019-04-22 21:33:39.000000000","message":"Can this be removed now?","commit_id":"12876ba311985b5c636d2203cae4fe405e6c916c"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"70e1a1c73bd898ed5bc94fc7625fdf2f0676bd24","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                 {\u0027segments\u0027: segments, \u0027hosts\u0027: candidate_hosts})"},{"line_number":142,"context_line":"        return set()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    # NOTE(ralonsoh): to be removed with neutron-lib \u003e 1.25.0"},{"line_number":145,"context_line":"    @staticmethod"},{"line_number":146,"context_line":"    def provider_network_attribute_updates_supported():"},{"line_number":147,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_cd89d626","line":144,"in_reply_to":"ffb9cba7_663b32d1","updated":"2019-04-23 08:18:13.000000000","message":"Yes, we have 1.26 already released","commit_id":"12876ba311985b5c636d2203cae4fe405e6c916c"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"5e3096cf5c0ae4b6099b89aa94d9e8f84d2fd139","unresolved":false,"context_lines":[{"line_number":141,"context_line":"                 {\u0027segments\u0027: segments, \u0027hosts\u0027: candidate_hosts})"},{"line_number":142,"context_line":"        return set()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    # NOTE(ralonsoh): to be removed with neutron-lib \u003e 1.25.0"},{"line_number":145,"context_line":"    @staticmethod"},{"line_number":146,"context_line":"    def provider_network_attribute_updates_supported():"},{"line_number":147,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":3,"id":"ffb9cba7_e632b7a7","line":144,"in_reply_to":"ffb9cba7_cd89d626","updated":"2019-04-23 10:33:59.000000000","message":"Done","commit_id":"12876ba311985b5c636d2203cae4fe405e6c916c"},{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"5a064c594540b64942fe28dff40c66e0430f909e","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        return set()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @staticmethod"},{"line_number":145,"context_line":"    def provider_network_attribute_updates_supported():"},{"line_number":146,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffb9cba7_eaeeea86","side":"PARENT","line":145,"range":{"start_line":145,"start_character":8,"end_line":145,"end_character":52},"updated":"2019-04-24 02:02:27.000000000","message":"nit: it might not be straightforward to understand the rational of this removal (I guess it is because this method is moved to neutron-lib?). Perhaps, you can add a note in commit message about this.","commit_id":"5d607a13ba340a3a3be099572f1d639a37da0432"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c4f3ca308a7f997b1ed030f85a21cbcb942b8f7b","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        return set()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @staticmethod"},{"line_number":145,"context_line":"    def provider_network_attribute_updates_supported():"},{"line_number":146,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffb9cba7_78a2d14d","side":"PARENT","line":145,"range":{"start_line":145,"start_character":8,"end_line":145,"end_character":52},"in_reply_to":"ffb9cba7_755dfae7","updated":"2019-04-24 07:39:05.000000000","message":"Done","commit_id":"5d607a13ba340a3a3be099572f1d639a37da0432"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c4f3ca308a7f997b1ed030f85a21cbcb942b8f7b","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        return set()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @staticmethod"},{"line_number":145,"context_line":"    def provider_network_attribute_updates_supported():"},{"line_number":146,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffb9cba7_188955c9","side":"PARENT","line":145,"range":{"start_line":145,"start_character":8,"end_line":145,"end_character":52},"in_reply_to":"ffb9cba7_eaeeea86","updated":"2019-04-24 07:39:05.000000000","message":"Done","commit_id":"5d607a13ba340a3a3be099572f1d639a37da0432"},{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"3fbaa6143dd00b0b3b77fa121d6051a602385fd1","unresolved":false,"context_lines":[{"line_number":142,"context_line":"        return set()"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"    @staticmethod"},{"line_number":145,"context_line":"    def provider_network_attribute_updates_supported():"},{"line_number":146,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffb9cba7_755dfae7","side":"PARENT","line":145,"range":{"start_line":145,"start_character":8,"end_line":145,"end_character":52},"in_reply_to":"ffb9cba7_eaeeea86","updated":"2019-04-24 06:15:53.000000000","message":"This should be done in a different patch. We may want to backport this patch but not this change in particular as it\u0027s not really related to purpose of this patch.","commit_id":"5d607a13ba340a3a3be099572f1d639a37da0432"}],"neutron/tests/unit/plugins/ml2/drivers/mechanism_test.py":[{"author":{"_account_id":27654,"name":"Hongbin Lu","email":"kira034@163.com","username":"hongbin.lu"},"change_message_id":"5a064c594540b64942fe28dff40c66e0430f909e","unresolved":false,"context_lines":[{"line_number":267,"context_line":"    def get_standard_device_mappings(self, agent):"},{"line_number":268,"context_line":"        return {}"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    # NOTE(ralonsoh): to be removed with neutron-lib \u003e 1.25.0"},{"line_number":271,"context_line":"    @staticmethod"},{"line_number":272,"context_line":"    def provider_network_attribute_updates_supported():"},{"line_number":273,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffb9cba7_8a6c0e37","line":270,"range":{"start_line":270,"start_character":55,"end_line":270,"end_character":61},"updated":"2019-04-24 02:02:27.000000000","message":"It looks we have neutron-lib 1.26.0 now. I guess we can remove this?","commit_id":"622d16272d5ab883e3cf404181863910b053cbb8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c4f3ca308a7f997b1ed030f85a21cbcb942b8f7b","unresolved":false,"context_lines":[{"line_number":267,"context_line":"    def get_standard_device_mappings(self, agent):"},{"line_number":268,"context_line":"        return {}"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    # NOTE(ralonsoh): to be removed with neutron-lib \u003e 1.25.0"},{"line_number":271,"context_line":"    @staticmethod"},{"line_number":272,"context_line":"    def provider_network_attribute_updates_supported():"},{"line_number":273,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffb9cba7_b81da974","line":270,"range":{"start_line":270,"start_character":55,"end_line":270,"end_character":61},"in_reply_to":"ffb9cba7_8a6c0e37","updated":"2019-04-24 07:39:05.000000000","message":"I can\u0027t remove this if in [1] I\u0027ve been told to keep this function.\n\nI\u0027ll remove those methods in other patch.\n\nIf you are talking about the version number, I\u0027ll set 1.26.\n\n[1] https://review.opendev.org/#/c/651878/5/neutron/tests/unit/plugins/ml2/drivers/mechanism_logger.py@a145","commit_id":"622d16272d5ab883e3cf404181863910b053cbb8"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"30820eb7a96fd6a7256e5c305adcb88be168adc6","unresolved":false,"context_lines":[{"line_number":267,"context_line":"    def get_standard_device_mappings(self, agent):"},{"line_number":268,"context_line":"        return {}"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    # NOTE(ralonsoh): to be removed with neutron-lib \u003e\u003d 1.26.0"},{"line_number":271,"context_line":"    @staticmethod"},{"line_number":272,"context_line":"    def provider_network_attribute_updates_supported():"},{"line_number":273,"context_line":"        return []"}],"source_content_type":"text/x-python","patch_set":6,"id":"ffb9cba7_cf03df41","line":270,"range":{"start_line":270,"start_character":53,"end_line":270,"end_character":55},"updated":"2019-04-24 20:19:25.000000000","message":"nitty nit: we already have 1.26 released so is this condition wrong or can this note be removed?","commit_id":"749b33e41bc905a3bec9d356c78a477e9b8aa87d"}],"neutron/tests/unit/plugins/ml2/test_plugin.py":[{"author":{"_account_id":8655,"name":"Jakub Libosvar","email":"libosvar@redhat.com","username":"jlibosva"},"change_message_id":"3fbaa6143dd00b0b3b77fa121d6051a602385fd1","unresolved":false,"context_lines":[{"line_number":480,"context_line":"                     pnet.SEGMENTATION_ID: 1}]"},{"line_number":481,"context_line":"        mech_drivers \u003d plugin.mechanism_manager.ordered_mech_drivers"},{"line_number":482,"context_line":"        for mech_driver in (md.obj for md in mech_drivers if"},{"line_number":483,"context_line":"                            getattr(md.obj, \u0027agent_type\u0027, None)):"},{"line_number":484,"context_line":"            mock.patch.object(type(mech_driver), \u0027agent_type\u0027,"},{"line_number":485,"context_line":"                new_callable\u003dmock.PropertyMock(return_value\u003dNone)).start()"},{"line_number":486,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ffb9cba7_154b5e2b","line":483,"range":{"start_line":483,"start_character":28,"end_line":483,"end_character":35},"updated":"2019-04-24 06:15:53.000000000","message":"It\u0027s better to use hasattr or isinstance as you\u0027re not using the agent_type value","commit_id":"622d16272d5ab883e3cf404181863910b053cbb8"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"c4f3ca308a7f997b1ed030f85a21cbcb942b8f7b","unresolved":false,"context_lines":[{"line_number":480,"context_line":"                     pnet.SEGMENTATION_ID: 1}]"},{"line_number":481,"context_line":"        mech_drivers \u003d plugin.mechanism_manager.ordered_mech_drivers"},{"line_number":482,"context_line":"        for mech_driver in (md.obj for md in mech_drivers if"},{"line_number":483,"context_line":"                            getattr(md.obj, \u0027agent_type\u0027, None)):"},{"line_number":484,"context_line":"            mock.patch.object(type(mech_driver), \u0027agent_type\u0027,"},{"line_number":485,"context_line":"                new_callable\u003dmock.PropertyMock(return_value\u003dNone)).start()"},{"line_number":486,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"ffb9cba7_d8073d1c","line":483,"range":{"start_line":483,"start_character":28,"end_line":483,"end_character":35},"in_reply_to":"ffb9cba7_154b5e2b","updated":"2019-04-24 07:39:05.000000000","message":"Done","commit_id":"622d16272d5ab883e3cf404181863910b053cbb8"}]}
