)]}'
{"neutron/db/ipam_pluggable_backend.py":[{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"bda8b392c9ac688f21f69ff3cd2b18f38c48d093","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        return self._ipam_allocate_ips(context, ipam_driver, p, ips)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    def _get_auto_address_ips(self, v6_stateless_subnets, port,"},{"line_number":265,"context_line":"                              exclude_subnet_ids\u003dNone, segment_id\u003dFalse):"},{"line_number":266,"context_line":"        exclude_subnet_ids \u003d exclude_subnet_ids or []"},{"line_number":267,"context_line":"        ips \u003d []"},{"line_number":268,"context_line":"        is_router_port \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"1fa4df85_c771c2e2","line":265,"range":{"start_line":265,"start_character":66,"end_line":265,"end_character":71},"updated":"2020-02-25 12:08:38.000000000","message":"This False is strange. I was kind of expecting None.","commit_id":"c2ac67b1a0724088851e46e49410d044720d4b3a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"20ab8e0319405d6cd8923875881020fbda6821a9","unresolved":false,"context_lines":[{"line_number":262,"context_line":"        return self._ipam_allocate_ips(context, ipam_driver, p, ips)"},{"line_number":263,"context_line":""},{"line_number":264,"context_line":"    def _get_auto_address_ips(self, v6_stateless_subnets, port,"},{"line_number":265,"context_line":"                              exclude_subnet_ids\u003dNone, segment_id\u003dFalse):"},{"line_number":266,"context_line":"        exclude_subnet_ids \u003d exclude_subnet_ids or []"},{"line_number":267,"context_line":"        ips \u003d []"},{"line_number":268,"context_line":"        is_router_port \u003d ("}],"source_content_type":"text/x-python","patch_set":1,"id":"1fa4df85_22ec32c6","line":265,"range":{"start_line":265,"start_character":66,"end_line":265,"end_character":71},"in_reply_to":"1fa4df85_c771c2e2","updated":"2020-02-26 09:42:28.000000000","message":"None is a valid value for segmnet_id, if the value is None compare and ensure only other subnets with None is used.","commit_id":"c2ac67b1a0724088851e46e49410d044720d4b3a"},{"author":{"_account_id":15554,"name":"Bence Romsics","email":"bence.romsics@gmail.com","username":"ebenrom","status":"working for Ericsson, UTC+1 (+DST)"},"change_message_id":"bda8b392c9ac688f21f69ff3cd2b18f38c48d093","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        for fixed in fixed_ips:"},{"line_number":302,"context_line":"            fixed[\u0027device_owner\u0027] \u003d device_owner"},{"line_number":303,"context_line":"            subnet \u003d self._get_subnet_for_fixed_ip(context, fixed, subnets)"},{"line_number":304,"context_line":"            if segment_id is False:"},{"line_number":305,"context_line":"                segment_id \u003d subnet.get(\u0027segment_id\u0027)"},{"line_number":306,"context_line":"            else:"},{"line_number":307,"context_line":"                if subnet.get(\u0027segment_id\u0027) !\u003d segment_id:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1fa4df85_27abf61d","line":304,"updated":"2020-02-25 12:08:38.000000000","message":"I\u0027m not really familiar with the IPAM code base, so please ignore this comment if it does not apply, just wondering:\n\nThe constraint we are about to enforce (no fixed IPs of a port should belong to subnets on different segments) is not backend specific so the enforcement could be done one level above.","commit_id":"c2ac67b1a0724088851e46e49410d044720d4b3a"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"c9a1be6011af13ee48021d729dc9497365a56d2b","unresolved":false,"context_lines":[{"line_number":301,"context_line":"        for fixed in fixed_ips:"},{"line_number":302,"context_line":"            fixed[\u0027device_owner\u0027] \u003d device_owner"},{"line_number":303,"context_line":"            subnet \u003d self._get_subnet_for_fixed_ip(context, fixed, subnets)"},{"line_number":304,"context_line":"            if segment_id is False:"},{"line_number":305,"context_line":"                segment_id \u003d subnet.get(\u0027segment_id\u0027)"},{"line_number":306,"context_line":"            else:"},{"line_number":307,"context_line":"                if subnet.get(\u0027segment_id\u0027) !\u003d segment_id:"}],"source_content_type":"text/x-python","patch_set":1,"id":"1fa4df85_2620a1b0","line":304,"in_reply_to":"1fa4df85_27abf61d","updated":"2020-02-28 11:59:52.000000000","message":"\u003e The constraint we are about to enforce (no fixed IPs of a port\n \u003e should belong to subnets on different segments) is not backend\n \u003e specific so the enforcement could be done one level above.\n\nYes, as I\u0027ve been working on this I think there is a can of worms here, I opened additional bugs: https://bugs.launchpad.net/neutron/+bug/1864333, https://bugs.launchpad.net/neutron/+bug/1865138 and started re-working the fix entirely.","commit_id":"c2ac67b1a0724088851e46e49410d044720d4b3a"}],"neutron/objects/subnet.py":[{"author":{"_account_id":1131,"name":"Brian Haley","email":"haleyb.dev@gmail.com","username":"brian-haley"},"change_message_id":"8d0d993b3ff40399bfc13e73ebc02cfc7c615cd3","unresolved":false,"context_lines":[{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        :raises: FixedIpsSubnetsNotOnSameSegment"},{"line_number":364,"context_line":"        \"\"\""},{"line_number":365,"context_line":"        subnet \u003d None"},{"line_number":366,"context_line":"        segment_ids \u003d []"},{"line_number":367,"context_line":"        for fixed_ip in fixed_ips:"},{"line_number":368,"context_line":"            if \u0027subnet_id\u0027 in fixed_ip:"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_f3db4a4c","line":365,"updated":"2020-03-13 19:38:27.000000000","message":"Does this need to be inside the loop?  Seems like it could trigger L390 if neither below is true in a fixed_ip otherwise?","commit_id":"a30b8c9446897c28f4e64dc6ceb61509538b63e3"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"22a9238245c2970365f528bfd774eee88a325fbd","unresolved":false,"context_lines":[{"line_number":362,"context_line":""},{"line_number":363,"context_line":"        :raises: FixedIpsSubnetsNotOnSameSegment"},{"line_number":364,"context_line":"        \"\"\""},{"line_number":365,"context_line":"        subnet \u003d None"},{"line_number":366,"context_line":"        segment_ids \u003d []"},{"line_number":367,"context_line":"        for fixed_ip in fixed_ips:"},{"line_number":368,"context_line":"            if \u0027subnet_id\u0027 in fixed_ip:"}],"source_content_type":"text/x-python","patch_set":8,"id":"1fa4df85_e5205f9e","line":365,"in_reply_to":"1fa4df85_f3db4a4c","updated":"2020-03-13 22:53:52.000000000","message":"thanks!","commit_id":"a30b8c9446897c28f4e64dc6ceb61509538b63e3"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"a41973a5a567f92813b43de2e3843fd3b0aecafc","unresolved":false,"context_lines":[{"line_number":387,"context_line":"                    # and some exception will be raised."},{"line_number":388,"context_line":"                    return query"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"            if subnet and subnet.segment_id not in segment_ids:"},{"line_number":391,"context_line":"                segment_ids.append(subnet.segment_id)"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            if 1 \u003c len(segment_ids):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1fa4df85_1227e066","line":390,"range":{"start_line":390,"start_character":26,"end_line":390,"end_character":43},"updated":"2020-03-17 09:50:33.000000000","message":"In case is \u0027subnet_id\u0027 is in fixed_ip, we will enter into \"if\" condition in L368. And than \"subnet\" will be still object SQLAlchemy query object, right? So will it not fail here?","commit_id":"7e09e72661b0b3a0f898c20d451e204aa7a17194"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"0dfe52bc9e9a068d3c6ae8c89c5f7209674aea74","unresolved":false,"context_lines":[{"line_number":387,"context_line":"                    # and some exception will be raised."},{"line_number":388,"context_line":"                    return query"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"            if subnet and subnet.segment_id not in segment_ids:"},{"line_number":391,"context_line":"                segment_ids.append(subnet.segment_id)"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            if 1 \u003c len(segment_ids):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1fa4df85_32ec5c8e","line":390,"range":{"start_line":390,"start_character":26,"end_line":390,"end_character":43},"in_reply_to":"1fa4df85_1227e066","updated":"2020-03-17 10:11:00.000000000","message":"Does\u0027nt the .all()[0] set subnet to a \"subnet object\" in L371?\n\nIf this always fail we would end up always raising FixedIpsSubnetsNotOnSameSegment in L394? \n\n\nI think the unit tests cover the case where \u0027subnet_id\u0027 is in fixed_ip?","commit_id":"7e09e72661b0b3a0f898c20d451e204aa7a17194"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"7d784addb5e8ac6f7acdc7d1cda01647034929c7","unresolved":false,"context_lines":[{"line_number":387,"context_line":"                    # and some exception will be raised."},{"line_number":388,"context_line":"                    return query"},{"line_number":389,"context_line":""},{"line_number":390,"context_line":"            if subnet and subnet.segment_id not in segment_ids:"},{"line_number":391,"context_line":"                segment_ids.append(subnet.segment_id)"},{"line_number":392,"context_line":""},{"line_number":393,"context_line":"            if 1 \u003c len(segment_ids):"}],"source_content_type":"text/x-python","patch_set":9,"id":"1fa4df85_a664914a","line":390,"range":{"start_line":390,"start_character":26,"end_line":390,"end_character":43},"in_reply_to":"1fa4df85_32ec5c8e","updated":"2020-03-17 11:09:11.000000000","message":"ahh, sorry. I missed all()[0] at the end of the L371. My bad","commit_id":"7e09e72661b0b3a0f898c20d451e204aa7a17194"}],"neutron/tests/unit/extensions/test_segment.py":[{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"df9e50c43397eb5063f60700f39d58cc665a7b19","unresolved":false,"context_lines":[{"line_number":1670,"context_line":"        port_deferred \u003d self._create_deferred_ip_port(network)"},{"line_number":1671,"context_line":"        self._validate_deferred_ip_allocation(port_deferred[\u0027port\u0027][\u0027id\u0027])"},{"line_number":1672,"context_line":""},{"line_number":1673,"context_line":"    def test_slaac_segment_aware_immidiate_fixed_ips_no_binding_info_(self):"},{"line_number":1674,"context_line":"        (network, segment_a, segment_b, subnet_a0, subnet_a1, subnet_b0,"},{"line_number":1675,"context_line":"         subnet_b1) \u003d self._create_net_two_segments_four_slaac_subnets()"},{"line_number":1676,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_ac3047ea","line":1673,"range":{"start_line":1673,"start_character":36,"end_line":1673,"end_character":37},"updated":"2020-03-11 11:22:30.000000000","message":"Wording nit: immediate (same at L1698)","commit_id":"b1df2177461fa66cbd2a2ed23aeda3fb7d2e0e4d"},{"author":{"_account_id":24245,"name":"Harald Jensås","email":"hjensas@redhat.com","username":"harald.jensas"},"change_message_id":"f04373b638523f76bc11c83cd2397a07e98d4da4","unresolved":false,"context_lines":[{"line_number":1670,"context_line":"        port_deferred \u003d self._create_deferred_ip_port(network)"},{"line_number":1671,"context_line":"        self._validate_deferred_ip_allocation(port_deferred[\u0027port\u0027][\u0027id\u0027])"},{"line_number":1672,"context_line":""},{"line_number":1673,"context_line":"    def test_slaac_segment_aware_immidiate_fixed_ips_no_binding_info_(self):"},{"line_number":1674,"context_line":"        (network, segment_a, segment_b, subnet_a0, subnet_a1, subnet_b0,"},{"line_number":1675,"context_line":"         subnet_b1) \u003d self._create_net_two_segments_four_slaac_subnets()"},{"line_number":1676,"context_line":""}],"source_content_type":"text/x-python","patch_set":6,"id":"1fa4df85_38b56dce","line":1673,"range":{"start_line":1673,"start_character":36,"end_line":1673,"end_character":37},"in_reply_to":"1fa4df85_ac3047ea","updated":"2020-03-11 14:26:24.000000000","message":"Done","commit_id":"b1df2177461fa66cbd2a2ed23aeda3fb7d2e0e4d"}]}
