)]}'
{"kuryr_kubernetes/controller/drivers/network_policy.py":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"3e828de80376c73be4f8110d6aad124b0eb22ca7","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                self.os_net.delete_security_group(sg.id)"},{"line_number":190,"context_line":"            raise"},{"line_number":191,"context_line":"        try:"},{"line_number":192,"context_line":"            self._add_kuryrnetpolicy_crd(policy, project_id, sg.id, i_rules,"},{"line_number":193,"context_line":"                                         e_rules)"},{"line_number":194,"context_line":"        except exceptions.K8sClientException:"},{"line_number":195,"context_line":"            LOG.exception(\"Rolling back security groups\")"},{"line_number":196,"context_line":"            # Same with CRD creation"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_1bccef88","line":193,"range":{"start_line":192,"start_character":0,"end_line":193,"end_character":49},"updated":"2019-12-02 11:26:44.000000000","message":"The creation of the CRD would fail as the validation expects a \u0027security_group_rule\u0027 field [1]. You would need to either move to how it was before (and pass only the security_group_rule dict for Neutron when a sg rule is created) or update the CRD validation. \n[1] https://github.com/openstack/kuryr-kubernetes/blob/master/kubernetes_crds/kuryrnetpolicy.yaml#L38-L67","commit_id":"1e95b7b549f9417ba47e8550929c53500d547377"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"ab27703d052745dfb773e13c14466a7ac4bb2da5","unresolved":false,"context_lines":[{"line_number":189,"context_line":"                self.os_net.delete_security_group(sg.id)"},{"line_number":190,"context_line":"            raise"},{"line_number":191,"context_line":"        try:"},{"line_number":192,"context_line":"            self._add_kuryrnetpolicy_crd(policy, project_id, sg.id, i_rules,"},{"line_number":193,"context_line":"                                         e_rules)"},{"line_number":194,"context_line":"        except exceptions.K8sClientException:"},{"line_number":195,"context_line":"            LOG.exception(\"Rolling back security groups\")"},{"line_number":196,"context_line":"            # Same with CRD creation"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_d3094c32","line":193,"range":{"start_line":192,"start_character":0,"end_line":193,"end_character":49},"in_reply_to":"3fa7e38b_1bccef88","updated":"2019-12-03 12:03:12.000000000","message":"Ack.","commit_id":"1e95b7b549f9417ba47e8550929c53500d547377"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"7c3aa65ddebbb9271d2b3fe30058900f039ed4da","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        try:"},{"line_number":165,"context_line":"            # Create initial security group"},{"line_number":166,"context_line":"            sg \u003d self.os_net.create_security_group("},{"line_number":167,"context_line":"                **security_group_body[\u0027security_group\u0027])"},{"line_number":168,"context_line":"            driver_utils.tag_neutron_resources(\u0027security-groups\u0027, [sg.id])"},{"line_number":169,"context_line":"            # NOTE(dulek): Neutron populates every new SG with two rules"},{"line_number":170,"context_line":"            #              allowing egress on IPv4 and IPv6. This collides with"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_179ccd6e","line":167,"range":{"start_line":167,"start_character":18,"end_line":167,"end_character":37},"updated":"2019-12-18 14:55:53.000000000","message":"This seems to not been used anywhere else in this method, so you should be able to just directly put all the parameters into os_net.create_security_group().","commit_id":"52782cce14faf3455c163dda6ee44e407598e723"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"e5116818915245b5def84e2b360e85b90b4f410f","unresolved":false,"context_lines":[{"line_number":164,"context_line":"        try:"},{"line_number":165,"context_line":"            # Create initial security group"},{"line_number":166,"context_line":"            sg \u003d self.os_net.create_security_group("},{"line_number":167,"context_line":"                **security_group_body[\u0027security_group\u0027])"},{"line_number":168,"context_line":"            driver_utils.tag_neutron_resources(\u0027security-groups\u0027, [sg.id])"},{"line_number":169,"context_line":"            # NOTE(dulek): Neutron populates every new SG with two rules"},{"line_number":170,"context_line":"            #              allowing egress on IPv4 and IPv6. This collides with"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_a1e1e22d","line":167,"range":{"start_line":167,"start_character":18,"end_line":167,"end_character":37},"in_reply_to":"3fa7e38b_179ccd6e","updated":"2019-12-19 15:21:25.000000000","message":"Ack.","commit_id":"52782cce14faf3455c163dda6ee44e407598e723"}],"kuryr_kubernetes/controller/drivers/utils.py":[{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"3e828de80376c73be4f8110d6aad124b0eb22ca7","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"def create_security_group_rule(body):"},{"line_number":190,"context_line":"    os_net \u003d clients.get_network_client()"},{"line_number":191,"context_line":"    _body \u003d dict(body)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    # remove illegal kwargs for create_security_group_rule method"},{"line_number":194,"context_line":"    for key in (\u0027namespace\u0027, \u0027remote_ip_prefixes\u0027):"},{"line_number":195,"context_line":"        try:"},{"line_number":196,"context_line":"            del _body[key]"},{"line_number":197,"context_line":"        except KeyError:"},{"line_number":198,"context_line":"            pass"},{"line_number":199,"context_line":"    sgr \u003d \u0027\u0027"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_5be347d9","line":198,"range":{"start_line":190,"start_character":0,"end_line":198,"end_character":16},"updated":"2019-12-02 11:26:44.000000000","message":"I still believe we could only fetch the security_group_rule and trigger the creation, instead of deleting the other fields. This way we keep the current structure of the CRD, which I believe to be more clear in the aspect of highlighting what are the Neutron parameters for a sg rule.","commit_id":"1e95b7b549f9417ba47e8550929c53500d547377"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"ab27703d052745dfb773e13c14466a7ac4bb2da5","unresolved":false,"context_lines":[{"line_number":187,"context_line":""},{"line_number":188,"context_line":""},{"line_number":189,"context_line":"def create_security_group_rule(body):"},{"line_number":190,"context_line":"    os_net \u003d clients.get_network_client()"},{"line_number":191,"context_line":"    _body \u003d dict(body)"},{"line_number":192,"context_line":""},{"line_number":193,"context_line":"    # remove illegal kwargs for create_security_group_rule method"},{"line_number":194,"context_line":"    for key in (\u0027namespace\u0027, \u0027remote_ip_prefixes\u0027):"},{"line_number":195,"context_line":"        try:"},{"line_number":196,"context_line":"            del _body[key]"},{"line_number":197,"context_line":"        except KeyError:"},{"line_number":198,"context_line":"            pass"},{"line_number":199,"context_line":"    sgr \u003d \u0027\u0027"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"    try:"}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_050f9b2f","line":198,"range":{"start_line":190,"start_character":0,"end_line":198,"end_character":16},"in_reply_to":"3fa7e38b_5be347d9","updated":"2019-12-03 12:03:12.000000000","message":"Ok. I\u0027m not going to touch this part, and revert location of the neutron security group data under security_group_rule key.","commit_id":"1e95b7b549f9417ba47e8550929c53500d547377"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"5a4b2b7ffb3d32afcaf478f608a9c779cfd1d397","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        LOG.debug(\"Deleting sg rule with ID: %s\", security_group_rule_id)"},{"line_number":210,"context_line":"        neutron.delete_security_group_rule("},{"line_number":211,"context_line":"            security_group_rule\u003dsecurity_group_rule_id)"},{"line_number":212,"context_line":"    except n_exc.NotFound:"},{"line_number":213,"context_line":"        LOG.debug(\"Error deleting security group rule as it does not \""},{"line_number":214,"context_line":"                  \"exist: %s\", security_group_rule_id)"},{"line_number":215,"context_line":"    except n_exc.NeutronClientException:"},{"line_number":216,"context_line":"        LOG.debug(\"Error deleting security group rule: %s\","},{"line_number":217,"context_line":"                  security_group_rule_id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"3fa7e38b_27077721","side":"PARENT","line":214,"range":{"start_line":212,"start_character":0,"end_line":214,"end_character":54},"updated":"2020-01-14 14:10:09.000000000","message":"Shouldn\u0027t we keep this handling and just update it to either NotFoundException or ResourceNotFound?","commit_id":"67897fbe8d730122f628b6ea56bb0b4b4737d1ff"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"1cbe095cb9a898d5b0a0d9b5144159cb3e6509e8","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        LOG.debug(\"Deleting sg rule with ID: %s\", security_group_rule_id)"},{"line_number":210,"context_line":"        neutron.delete_security_group_rule("},{"line_number":211,"context_line":"            security_group_rule\u003dsecurity_group_rule_id)"},{"line_number":212,"context_line":"    except n_exc.NotFound:"},{"line_number":213,"context_line":"        LOG.debug(\"Error deleting security group rule as it does not \""},{"line_number":214,"context_line":"                  \"exist: %s\", security_group_rule_id)"},{"line_number":215,"context_line":"    except n_exc.NeutronClientException:"},{"line_number":216,"context_line":"        LOG.debug(\"Error deleting security group rule: %s\","},{"line_number":217,"context_line":"                  security_group_rule_id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"3fa7e38b_42f06193","side":"PARENT","line":214,"range":{"start_line":212,"start_character":0,"end_line":214,"end_character":54},"in_reply_to":"3fa7e38b_27077721","updated":"2020-01-14 14:30:52.000000000","message":"No, because in case of removing security group rule we do not occur neither *NotFound* exception. Similar for deleting the port.","commit_id":"67897fbe8d730122f628b6ea56bb0b4b4737d1ff"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"8ad6b1479a5bd4c8c4b94af0a74659fa669413bd","unresolved":false,"context_lines":[{"line_number":209,"context_line":"        LOG.debug(\"Deleting sg rule with ID: %s\", security_group_rule_id)"},{"line_number":210,"context_line":"        neutron.delete_security_group_rule("},{"line_number":211,"context_line":"            security_group_rule\u003dsecurity_group_rule_id)"},{"line_number":212,"context_line":"    except n_exc.NotFound:"},{"line_number":213,"context_line":"        LOG.debug(\"Error deleting security group rule as it does not \""},{"line_number":214,"context_line":"                  \"exist: %s\", security_group_rule_id)"},{"line_number":215,"context_line":"    except n_exc.NeutronClientException:"},{"line_number":216,"context_line":"        LOG.debug(\"Error deleting security group rule: %s\","},{"line_number":217,"context_line":"                  security_group_rule_id)"}],"source_content_type":"text/x-python","patch_set":20,"id":"3fa7e38b_22d445bc","side":"PARENT","line":214,"range":{"start_line":212,"start_character":0,"end_line":214,"end_character":54},"in_reply_to":"3fa7e38b_42f06193","updated":"2020-01-14 14:36:42.000000000","message":"Ahh, there\u0027s a ignore_missing parameter with default value set to True in this function, cool!","commit_id":"67897fbe8d730122f628b6ea56bb0b4b4737d1ff"}],"kuryr_kubernetes/os_vif_util.py":[{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"97ab6a8b5ea94e9c0a70f6e095dde3fe1f85b293","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        obj.mtu \u003d neutron_network.mtu"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    # Vlan information will be used later in Sriov binding driver"},{"line_number":56,"context_line":"    if neutron_network.provider_physical_network \u003d\u003d \u0027vlan\u0027:"},{"line_number":57,"context_line":"        obj.should_provide_vlan \u003d True"},{"line_number":58,"context_line":"        obj.vlan \u003d neutron_network.provider_physical_network"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    return obj"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_aa587df8","line":58,"range":{"start_line":56,"start_character":0,"end_line":58,"end_character":60},"updated":"2019-12-09 15:49:00.000000000","message":"I\u0027m quite sure those should be provider_network_type and provider_segmentation_id.","commit_id":"f0aaa5af4486b02aae38fb4fe8cf4ec762f7d00a"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"59dea8fd60f6f540c90dd635fe30e3687f9f8edf","unresolved":false,"context_lines":[{"line_number":53,"context_line":"        obj.mtu \u003d neutron_network.mtu"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"    # Vlan information will be used later in Sriov binding driver"},{"line_number":56,"context_line":"    if neutron_network.provider_physical_network \u003d\u003d \u0027vlan\u0027:"},{"line_number":57,"context_line":"        obj.should_provide_vlan \u003d True"},{"line_number":58,"context_line":"        obj.vlan \u003d neutron_network.provider_physical_network"},{"line_number":59,"context_line":""},{"line_number":60,"context_line":"    return obj"},{"line_number":61,"context_line":""}],"source_content_type":"text/x-python","patch_set":5,"id":"3fa7e38b_8507a717","line":58,"range":{"start_line":56,"start_character":0,"end_line":58,"end_character":60},"in_reply_to":"3fa7e38b_aa587df8","updated":"2019-12-10 08:50:17.000000000","message":"Yup. My mistake.","commit_id":"f0aaa5af4486b02aae38fb4fe8cf4ec762f7d00a"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"7c3aa65ddebbb9271d2b3fe30058900f039ed4da","unresolved":false,"context_lines":[{"line_number":332,"context_line":"    return vif"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"def neutron_to_osvif_vif(vif_translator, neutron_port, subnets):"},{"line_number":336,"context_line":"    \"\"\"Converts Neutron port to os-vif VIF object."},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    :param vif_translator: name of the traslator for the os-vif plugin to use"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_372ea942","line":335,"range":{"start_line":335,"start_character":4,"end_line":335,"end_character":24},"updated":"2019-12-18 14:55:53.000000000","message":"All the above functions are called from this method as stevedore drivers. I\u0027d say those comments are not needed.","commit_id":"52782cce14faf3455c163dda6ee44e407598e723"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"e5116818915245b5def84e2b360e85b90b4f410f","unresolved":false,"context_lines":[{"line_number":332,"context_line":"    return vif"},{"line_number":333,"context_line":""},{"line_number":334,"context_line":""},{"line_number":335,"context_line":"def neutron_to_osvif_vif(vif_translator, neutron_port, subnets):"},{"line_number":336,"context_line":"    \"\"\"Converts Neutron port to os-vif VIF object."},{"line_number":337,"context_line":""},{"line_number":338,"context_line":"    :param vif_translator: name of the traslator for the os-vif plugin to use"}],"source_content_type":"text/x-python","patch_set":11,"id":"3fa7e38b_21ee5221","line":335,"range":{"start_line":335,"start_character":4,"end_line":335,"end_character":24},"in_reply_to":"3fa7e38b_372ea942","updated":"2019-12-19 15:21:25.000000000","message":"They are resolved/removed in on of upcoming patches.","commit_id":"52782cce14faf3455c163dda6ee44e407598e723"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"5a4b2b7ffb3d32afcaf478f608a9c779cfd1d397","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    :param subnets: subnet mapping as returned by PodSubnetsDriver.get_subnets"},{"line_number":216,"context_line":"    :return: os-vif VIF object"},{"line_number":217,"context_line":"    \"\"\""},{"line_number":218,"context_line":"    # TODO(gryf): check wehre it is used and what exactly is neutron_port now."},{"line_number":219,"context_line":"    profile \u003d osv_vif.VIFPortProfileOpenVSwitch("},{"line_number":220,"context_line":"        interface_id\u003dneutron_port[\u0027id\u0027])"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"3fa7e38b_a2f83518","line":218,"range":{"start_line":218,"start_character":24,"end_line":218,"end_character":29},"updated":"2020-01-14 14:10:09.000000000","message":"where","commit_id":"39733feff7252b4897d25abc6a99df674d230ca4"},{"author":{"_account_id":27032,"name":"Maysa de Macedo Souza","email":"maysa.macedo95@gmail.com","username":"maysa"},"change_message_id":"8ad6b1479a5bd4c8c4b94af0a74659fa669413bd","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    :param subnets: subnet mapping as returned by PodSubnetsDriver.get_subnets"},{"line_number":216,"context_line":"    :return: os-vif VIF object"},{"line_number":217,"context_line":"    \"\"\""},{"line_number":218,"context_line":"    # TODO(gryf): check wehre it is used and what exactly is neutron_port now."},{"line_number":219,"context_line":"    profile \u003d osv_vif.VIFPortProfileOpenVSwitch("},{"line_number":220,"context_line":"        interface_id\u003dneutron_port[\u0027id\u0027])"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"3fa7e38b_82e8997b","line":218,"range":{"start_line":218,"start_character":24,"end_line":218,"end_character":29},"in_reply_to":"3fa7e38b_622ebdfa","updated":"2020-01-14 14:36:42.000000000","message":"No no, just in case you would need to update something else.","commit_id":"39733feff7252b4897d25abc6a99df674d230ca4"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"1cbe095cb9a898d5b0a0d9b5144159cb3e6509e8","unresolved":false,"context_lines":[{"line_number":215,"context_line":"    :param subnets: subnet mapping as returned by PodSubnetsDriver.get_subnets"},{"line_number":216,"context_line":"    :return: os-vif VIF object"},{"line_number":217,"context_line":"    \"\"\""},{"line_number":218,"context_line":"    # TODO(gryf): check wehre it is used and what exactly is neutron_port now."},{"line_number":219,"context_line":"    profile \u003d osv_vif.VIFPortProfileOpenVSwitch("},{"line_number":220,"context_line":"        interface_id\u003dneutron_port[\u0027id\u0027])"},{"line_number":221,"context_line":""}],"source_content_type":"text/x-python","patch_set":20,"id":"3fa7e38b_622ebdfa","line":218,"range":{"start_line":218,"start_character":24,"end_line":218,"end_character":29},"in_reply_to":"3fa7e38b_a2f83518","updated":"2020-01-14 14:30:52.000000000","message":"That comment will go away anyway. Do I really need to correct it?","commit_id":"39733feff7252b4897d25abc6a99df674d230ca4"}]}
