)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"a58df556fb1ca9d77a89c1892685637d1e344740","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"219f6b95_ec582659","updated":"2023-10-27 18:59:38.000000000","message":"Still a WIP but VIP ports work","commit_id":"62c5193122327113cb7fc1331e9e24b5dcd61c29"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"61e08504a90673352aec94a250e3865fcbc473cf","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"0d00d82a_c3b405af","updated":"2023-10-28 00:20:51.000000000","message":"recheck\ngreenlet.error: cannot switch to a different thread\nI think there is a bug in oslo.messaging","commit_id":"62c5193122327113cb7fc1331e9e24b5dcd61c29"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"1da4d20266efc1d0bba9d72f2fa2ce8ada1825d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"e829a649_8e6c66a9","updated":"2023-11-17 16:55:14.000000000","message":"WIP as there is SG work to do","commit_id":"6c26a34885adab86893debd5eb1f117131b71b37"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"5b6d55a85cb9e9736436562a507a2fff44b907e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"d76e66ea_5fd086e2","updated":"2024-02-24 23:02:16.000000000","message":"I need to fix an issue in failover","commit_id":"2655ad0f2745e9c64ae192997880a447dbd28d89"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ce3cd00d4461999698b666d2d51578303bef94ee","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"30d521d4_21782c16","updated":"2024-02-21 17:32:05.000000000","message":"This should have release notes, right?","commit_id":"2655ad0f2745e9c64ae192997880a447dbd28d89"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"1026db81f20ec53e8f106abd05f98fc655183da7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"b5690d6e_b1d66f82","in_reply_to":"30d521d4_21782c16","updated":"2024-02-21 17:33:21.000000000","message":"^","commit_id":"2655ad0f2745e9c64ae192997880a447dbd28d89"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7e4c63b520e0e06f2da166eb0951deda8641abba","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"035276ab_60afffaa","in_reply_to":"977b71b9_41bc63e2","updated":"2024-02-25 18:37:43.000000000","message":"Done","commit_id":"2655ad0f2745e9c64ae192997880a447dbd28d89"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b0ac5e8cd98475b2c9878267198c2970db4c6d2b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":5,"id":"977b71b9_41bc63e2","in_reply_to":"b5690d6e_b1d66f82","updated":"2024-02-21 23:23:48.000000000","message":"I plan to add the release note on the end of the patch chain.","commit_id":"2655ad0f2745e9c64ae192997880a447dbd28d89"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"fa4f843a1cfcc7973761c2bfd8da2b3b3b2a7e5d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e2e45820_275f897d","updated":"2024-02-25 18:37:28.000000000","message":"recheck\ngreenlet.error: cannot switch to a different thread","commit_id":"4d72b03357c521183c33b1385cdbcad4c600aba7"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"81302517154a35a100cee719fd5ad20e41b1761c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"351a934a_4143d1de","updated":"2024-02-28 15:53:17.000000000","message":"Good catches, thanks","commit_id":"442afdc94a8e6c384eddd4740fcbfde1aa4bdf41"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"2c37eaebc66ea22f244f953f09f27e4233cb705e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"1b3c4fe1_0d4136fe","updated":"2024-02-28 10:09:05.000000000","message":"small -1 after a review, I\u0027m also going to test it (db migration, etc..)","commit_id":"442afdc94a8e6c384eddd4740fcbfde1aa4bdf41"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"b0b1ffd480be1313e067ad20288c24a531e45347","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"8e227499_d3244333","updated":"2024-02-28 20:36:24.000000000","message":"LGTM","commit_id":"75c1bdd104f3ac02cf05defc0655597b9d4e5e0b"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"de3a37944f4e7056af0279d42c3903d73ea2352d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"a03a9201_fb63ef04","updated":"2024-02-29 02:52:05.000000000","message":"LGTM","commit_id":"75c1bdd104f3ac02cf05defc0655597b9d4e5e0b"}],"octavia/api/drivers/amphora_driver/flavor_schema.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"c47200aa17faefed9a5cd4179a3c5358a5451b36","unresolved":true,"context_lines":[{"line_number":53,"context_line":"            \"description\": \"When true, the VIP port will be created using an \""},{"line_number":54,"context_line":"                           \"SR-IOV VF port.\""},{"line_number":55,"context_line":"        },"},{"line_number":56,"context_line":"        consts.MEMBER_TRY_SRIOV: {"},{"line_number":57,"context_line":"            \"type\": \"boolean\","},{"line_number":58,"context_line":"            \"description\": \"When true, member ports will be provisioned using \""},{"line_number":59,"context_line":"                           \"SR-IOV VF ports, if available for the requested \""}],"source_content_type":"text/x-python","patch_set":3,"id":"556a4cba_a6646ec1","line":56,"range":{"start_line":56,"start_character":15,"end_line":56,"end_character":31},"updated":"2024-02-16 10:53:44.000000000","message":"As it\u0027s currently unused, I think we need to explicitly mention it in the release node","commit_id":"6c26a34885adab86893debd5eb1f117131b71b37"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9908e2abdb30f94fce449d66db3a338c185f965e","unresolved":false,"context_lines":[{"line_number":53,"context_line":"            \"description\": \"When true, the VIP port will be created using an \""},{"line_number":54,"context_line":"                           \"SR-IOV VF port.\""},{"line_number":55,"context_line":"        },"},{"line_number":56,"context_line":"        consts.MEMBER_TRY_SRIOV: {"},{"line_number":57,"context_line":"            \"type\": \"boolean\","},{"line_number":58,"context_line":"            \"description\": \"When true, member ports will be provisioned using \""},{"line_number":59,"context_line":"                           \"SR-IOV VF ports, if available for the requested \""}],"source_content_type":"text/x-python","patch_set":3,"id":"8bf98ed6_0ed6bf56","line":56,"range":{"start_line":56,"start_character":15,"end_line":56,"end_character":31},"in_reply_to":"556a4cba_a6646ec1","updated":"2024-02-16 23:23:31.000000000","message":"Done","commit_id":"6c26a34885adab86893debd5eb1f117131b71b37"}],"octavia/common/constants.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"2c37eaebc66ea22f244f953f09f27e4233cb705e","unresolved":true,"context_lines":[{"line_number":926,"context_line":"                                    lib_consts.ALPN_PROTOCOL_HTTP_1_0]"},{"line_number":927,"context_line":""},{"line_number":928,"context_line":"SRIOV_VIP \u003d \u0027sriov_vip\u0027"},{"line_number":929,"context_line":"MEMBER_TRY_SRIOV \u003d \u0027member_try_sriov\u0027"},{"line_number":930,"context_line":""},{"line_number":931,"context_line":"# Amphora interface fields"},{"line_number":932,"context_line":"IF_TYPE \u003d \u0027if_type\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"5c2321e3_c88342f6","line":929,"range":{"start_line":929,"start_character":0,"end_line":929,"end_character":16},"updated":"2024-02-28 10:09:05.000000000","message":"this constant is not used","commit_id":"442afdc94a8e6c384eddd4740fcbfde1aa4bdf41"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"81302517154a35a100cee719fd5ad20e41b1761c","unresolved":false,"context_lines":[{"line_number":926,"context_line":"                                    lib_consts.ALPN_PROTOCOL_HTTP_1_0]"},{"line_number":927,"context_line":""},{"line_number":928,"context_line":"SRIOV_VIP \u003d \u0027sriov_vip\u0027"},{"line_number":929,"context_line":"MEMBER_TRY_SRIOV \u003d \u0027member_try_sriov\u0027"},{"line_number":930,"context_line":""},{"line_number":931,"context_line":"# Amphora interface fields"},{"line_number":932,"context_line":"IF_TYPE \u003d \u0027if_type\u0027"}],"source_content_type":"text/x-python","patch_set":8,"id":"3da75ca8_a4c6e925","line":929,"range":{"start_line":929,"start_character":0,"end_line":929,"end_character":16},"in_reply_to":"5c2321e3_c88342f6","updated":"2024-02-28 15:53:17.000000000","message":"Done","commit_id":"442afdc94a8e6c384eddd4740fcbfde1aa4bdf41"}],"octavia/common/exceptions.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"2c37eaebc66ea22f244f953f09f27e4233cb705e","unresolved":true,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"class ComputeNoResourcesException(OctaviaException):"},{"line_number":258,"context_line":"    message \u003d _(\u0027The compute service does not have the reources available to \u0027"},{"line_number":259,"context_line":"                \u0027fulfill the request\u0027)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"1f842774_f5cc93a4","line":258,"range":{"start_line":258,"start_character":55,"end_line":258,"end_character":63},"updated":"2024-02-28 10:09:05.000000000","message":"typo","commit_id":"442afdc94a8e6c384eddd4740fcbfde1aa4bdf41"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"81302517154a35a100cee719fd5ad20e41b1761c","unresolved":false,"context_lines":[{"line_number":255,"context_line":""},{"line_number":256,"context_line":""},{"line_number":257,"context_line":"class ComputeNoResourcesException(OctaviaException):"},{"line_number":258,"context_line":"    message \u003d _(\u0027The compute service does not have the reources available to \u0027"},{"line_number":259,"context_line":"                \u0027fulfill the request\u0027)"},{"line_number":260,"context_line":""},{"line_number":261,"context_line":""}],"source_content_type":"text/x-python","patch_set":8,"id":"2e8ee9e4_c14d2398","line":258,"range":{"start_line":258,"start_character":55,"end_line":258,"end_character":63},"in_reply_to":"1f842774_f5cc93a4","updated":"2024-02-28 15:53:17.000000000","message":"Done","commit_id":"442afdc94a8e6c384eddd4740fcbfde1aa4bdf41"}],"octavia/controller/worker/v2/flows/load_balancer_flows.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"2c37eaebc66ea22f244f953f09f27e4233cb705e","unresolved":true,"context_lines":[{"line_number":192,"context_line":"                requires\u003d(constants.LOADBALANCER, constants.AMPHORA,"},{"line_number":193,"context_line":"                          constants.PORT_DATA),"},{"line_number":194,"context_line":"                provides\u003dconstants.AMP_DATA))"},{"line_number":195,"context_line":"            flows.append(network_tasks.ApplyQosAmphora("},{"line_number":196,"context_line":"                name\u003dsf_name + \u0027-\u0027 + constants.APPLY_QOS_AMP,"},{"line_number":197,"context_line":"                requires\u003d(constants.LOADBALANCER, constants.AMP_DATA,"},{"line_number":198,"context_line":"                          constants.UPDATE_DICT)))"},{"line_number":199,"context_line":"            flows.append(database_tasks.UpdateAmphoraVIPData("},{"line_number":200,"context_line":"                name\u003dsf_name + \u0027-\u0027 + constants.UPDATE_AMPHORA_VIP_DATA,"},{"line_number":201,"context_line":"                requires\u003dconstants.AMP_DATA))"},{"line_number":202,"context_line":"            flows.append(network_tasks.GetAmphoraNetworkConfigs("},{"line_number":203,"context_line":"                name\u003dsf_name + \u0027-\u0027 + constants.GET_AMP_NETWORK_CONFIG,"},{"line_number":204,"context_line":"                requires\u003d(constants.LOADBALANCER, constants.AMPHORA),"},{"line_number":205,"context_line":"                provides\u003dconstants.AMPHORA_NETWORK_CONFIG))"},{"line_number":206,"context_line":"            # TODO(johnsom) nftables need to be handled here in the SG patch"},{"line_number":207,"context_line":"            flows.append(amphora_driver_tasks.AmphoraPostVIPPlug("},{"line_number":208,"context_line":"                name\u003dsf_name + \u0027-\u0027 + constants.AMP_POST_VIP_PLUG,"},{"line_number":209,"context_line":"                rebind\u003d{constants.AMPHORAE_NETWORK_CONFIG:"},{"line_number":210,"context_line":"                        constants.AMPHORA_NETWORK_CONFIG},"},{"line_number":211,"context_line":"                requires\u003d(constants.LOADBALANCER,"},{"line_number":212,"context_line":"                          constants.AMPHORAE_NETWORK_CONFIG)))"},{"line_number":213,"context_line":"        else:"},{"line_number":214,"context_line":"            flows.append(network_tasks.PlugVIPAmphora("},{"line_number":215,"context_line":"                name\u003dsf_name + \u0027-\u0027 + constants.PLUG_VIP_AMPHORA,"}],"source_content_type":"text/x-python","patch_set":8,"id":"46c8d152_3faf17ca","line":212,"range":{"start_line":195,"start_character":12,"end_line":212,"end_character":62},"updated":"2024-02-28 10:09:05.000000000","message":"this block is the same as in the else clause, can we merge them?","commit_id":"442afdc94a8e6c384eddd4740fcbfde1aa4bdf41"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"81302517154a35a100cee719fd5ad20e41b1761c","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                requires\u003d(constants.LOADBALANCER, constants.AMPHORA,"},{"line_number":193,"context_line":"                          constants.PORT_DATA),"},{"line_number":194,"context_line":"                provides\u003dconstants.AMP_DATA))"},{"line_number":195,"context_line":"            flows.append(network_tasks.ApplyQosAmphora("},{"line_number":196,"context_line":"                name\u003dsf_name + \u0027-\u0027 + constants.APPLY_QOS_AMP,"},{"line_number":197,"context_line":"                requires\u003d(constants.LOADBALANCER, constants.AMP_DATA,"},{"line_number":198,"context_line":"                          constants.UPDATE_DICT)))"},{"line_number":199,"context_line":"            flows.append(database_tasks.UpdateAmphoraVIPData("},{"line_number":200,"context_line":"                name\u003dsf_name + \u0027-\u0027 + constants.UPDATE_AMPHORA_VIP_DATA,"},{"line_number":201,"context_line":"                requires\u003dconstants.AMP_DATA))"},{"line_number":202,"context_line":"            flows.append(network_tasks.GetAmphoraNetworkConfigs("},{"line_number":203,"context_line":"                name\u003dsf_name + \u0027-\u0027 + constants.GET_AMP_NETWORK_CONFIG,"},{"line_number":204,"context_line":"                requires\u003d(constants.LOADBALANCER, constants.AMPHORA),"},{"line_number":205,"context_line":"                provides\u003dconstants.AMPHORA_NETWORK_CONFIG))"},{"line_number":206,"context_line":"            # TODO(johnsom) nftables need to be handled here in the SG patch"},{"line_number":207,"context_line":"            flows.append(amphora_driver_tasks.AmphoraPostVIPPlug("},{"line_number":208,"context_line":"                name\u003dsf_name + \u0027-\u0027 + constants.AMP_POST_VIP_PLUG,"},{"line_number":209,"context_line":"                rebind\u003d{constants.AMPHORAE_NETWORK_CONFIG:"},{"line_number":210,"context_line":"                        constants.AMPHORA_NETWORK_CONFIG},"},{"line_number":211,"context_line":"                requires\u003d(constants.LOADBALANCER,"},{"line_number":212,"context_line":"                          constants.AMPHORAE_NETWORK_CONFIG)))"},{"line_number":213,"context_line":"        else:"},{"line_number":214,"context_line":"            flows.append(network_tasks.PlugVIPAmphora("},{"line_number":215,"context_line":"                name\u003dsf_name + \u0027-\u0027 + constants.PLUG_VIP_AMPHORA,"}],"source_content_type":"text/x-python","patch_set":8,"id":"0a42096d_15bc9cb7","line":212,"range":{"start_line":195,"start_character":12,"end_line":212,"end_character":62},"in_reply_to":"46c8d152_3faf17ca","updated":"2024-02-28 15:53:17.000000000","message":"Done","commit_id":"442afdc94a8e6c384eddd4740fcbfde1aa4bdf41"}],"octavia/db/migration/alembic_migrations/versions/db2a73e82626_add_vnic_type_for_vip.py":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"c47200aa17faefed9a5cd4179a3c5358a5451b36","unresolved":true,"context_lines":[{"line_number":30,"context_line":"def upgrade():"},{"line_number":31,"context_line":"    op.add_column("},{"line_number":32,"context_line":"        u\u0027vip\u0027,"},{"line_number":33,"context_line":"        sa.Column(u\u0027vnic_type\u0027, sa.String(64), nullable\u003dTrue)"},{"line_number":34,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":3,"id":"401b3410_816a1397","line":33,"range":{"start_line":33,"start_character":18,"end_line":33,"end_character":29},"updated":"2024-02-16 10:53:44.000000000","message":"after an update, vnic_type is null for already existing VIPs, I think we either need to update the existing VIPs in the DB or consider that a null vnic_type is \u0027normal\u0027.\nRight now the API returns \u0027\"vip_vnic_type\": null\u0027 for existing LBs","commit_id":"6c26a34885adab86893debd5eb1f117131b71b37"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"9908e2abdb30f94fce449d66db3a338c185f965e","unresolved":false,"context_lines":[{"line_number":30,"context_line":"def upgrade():"},{"line_number":31,"context_line":"    op.add_column("},{"line_number":32,"context_line":"        u\u0027vip\u0027,"},{"line_number":33,"context_line":"        sa.Column(u\u0027vnic_type\u0027, sa.String(64), nullable\u003dTrue)"},{"line_number":34,"context_line":"    )"}],"source_content_type":"text/x-python","patch_set":3,"id":"9b553f7b_9cafa05a","line":33,"range":{"start_line":33,"start_character":18,"end_line":33,"end_character":29},"in_reply_to":"401b3410_816a1397","updated":"2024-02-16 23:23:31.000000000","message":"Right, I decided to add to the api after. Good catch.","commit_id":"6c26a34885adab86893debd5eb1f117131b71b37"}],"octavia/network/drivers/neutron/allowed_address_pairs.py":[{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"ce3cd00d4461999698b666d2d51578303bef94ee","unresolved":true,"context_lines":[{"line_number":472,"context_line":"        Reserves the IP for later use as the frontend connection of a load"},{"line_number":473,"context_line":"        balancer."},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        :param load_balancer: octavia.common.data_models.LoadBalancer instance"},{"line_number":476,"context_line":"        :return: octavia.common.data_models.Vip,"},{"line_number":477,"context_line":"                 list(octavia.common.data_models.AdditionalVip)"},{"line_number":478,"context_line":"        :raises: AllocateVIPException, PortNotFound, SubnetNotFound"},{"line_number":479,"context_line":"        \"\"\""},{"line_number":480,"context_line":"        if load_balancer.vip.port_id:"}],"source_content_type":"text/x-python","patch_set":5,"id":"298bc10a_4bc1353e","line":477,"range":{"start_line":475,"start_character":8,"end_line":477,"end_character":63},"updated":"2024-02-21 17:32:05.000000000","message":"Please let\u0027s use annotations instead. Both Python and Sphinx understands them as well.\n\n```\nimport typing as tp\n\ndef allocate_vip(self, load_balancer: data_models.LoadBalancer) -\u003e tp.Tuple[data_models.Vip, tp.List[data_model.AdditionalVip]]:\n```","commit_id":"2655ad0f2745e9c64ae192997880a447dbd28d89"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"b0ac5e8cd98475b2c9878267198c2970db4c6d2b","unresolved":true,"context_lines":[{"line_number":472,"context_line":"        Reserves the IP for later use as the frontend connection of a load"},{"line_number":473,"context_line":"        balancer."},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        :param load_balancer: octavia.common.data_models.LoadBalancer instance"},{"line_number":476,"context_line":"        :return: octavia.common.data_models.Vip,"},{"line_number":477,"context_line":"                 list(octavia.common.data_models.AdditionalVip)"},{"line_number":478,"context_line":"        :raises: AllocateVIPException, PortNotFound, SubnetNotFound"},{"line_number":479,"context_line":"        \"\"\""},{"line_number":480,"context_line":"        if load_balancer.vip.port_id:"}],"source_content_type":"text/x-python","patch_set":5,"id":"f1607ecd_3f86e71f","line":477,"range":{"start_line":475,"start_character":8,"end_line":477,"end_character":63},"in_reply_to":"298bc10a_4bc1353e","updated":"2024-02-21 23:23:48.000000000","message":"This was pulled in from the abstract method here:\nhttps://github.com/openstack/octavia/blob/master/octavia/network/base.py#L96\nThis form is consistent with that code. I would prefer not to switch to annotations in this patch, but do that as a \"migrate to annotations\" patch that updates the network driver as a whole.","commit_id":"2655ad0f2745e9c64ae192997880a447dbd28d89"},{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"7e4c63b520e0e06f2da166eb0951deda8641abba","unresolved":false,"context_lines":[{"line_number":472,"context_line":"        Reserves the IP for later use as the frontend connection of a load"},{"line_number":473,"context_line":"        balancer."},{"line_number":474,"context_line":""},{"line_number":475,"context_line":"        :param load_balancer: octavia.common.data_models.LoadBalancer instance"},{"line_number":476,"context_line":"        :return: octavia.common.data_models.Vip,"},{"line_number":477,"context_line":"                 list(octavia.common.data_models.AdditionalVip)"},{"line_number":478,"context_line":"        :raises: AllocateVIPException, PortNotFound, SubnetNotFound"},{"line_number":479,"context_line":"        \"\"\""},{"line_number":480,"context_line":"        if load_balancer.vip.port_id:"}],"source_content_type":"text/x-python","patch_set":5,"id":"c4b815e4_df26c503","line":477,"range":{"start_line":475,"start_character":8,"end_line":477,"end_character":63},"in_reply_to":"f1607ecd_3f86e71f","updated":"2024-02-25 18:37:43.000000000","message":"Acknowledged","commit_id":"2655ad0f2745e9c64ae192997880a447dbd28d89"}]}
