)]}'
{"kuryr_kubernetes/controller/drivers/namespace_subnet.py":[{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"cdf11c813c033fe681a8124c7b0235ed8d921f59","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                        # not found exception with delete_trunk_subports"},{"line_number":145,"context_line":"                        # method, even if we put nonexistent id for the trunk"},{"line_number":146,"context_line":"                        # and nonexistent port id."},{"line_number":147,"context_line":"                        (os_net"},{"line_number":148,"context_line":"                         .delete_trunk_subports(trunk_id,"},{"line_number":149,"context_line":"                                                {\u0027port_id\u0027: leftover_port.id}))"},{"line_number":150,"context_line":"                    else:"},{"line_number":151,"context_line":"                        LOG.exception(\"Unexpected error deleting leftover \""},{"line_number":152,"context_line":"                                      \"port %s. Skiping it and continue with \""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_78b717d9","line":149,"range":{"start_line":147,"start_character":0,"end_line":149,"end_character":79},"updated":"2019-12-03 09:15:28.000000000","message":"why not splitting like:\nos_net.delete_trunk_subports(\n    trunk,id, {xxx})","commit_id":"b30f814e9edee34e409c74145245195d405246a5"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"2fbd92adf1b39fbc87fa6817ea99b4c99fa61b87","unresolved":false,"context_lines":[{"line_number":144,"context_line":"                        # not found exception with delete_trunk_subports"},{"line_number":145,"context_line":"                        # method, even if we put nonexistent id for the trunk"},{"line_number":146,"context_line":"                        # and nonexistent port id."},{"line_number":147,"context_line":"                        (os_net"},{"line_number":148,"context_line":"                         .delete_trunk_subports(trunk_id,"},{"line_number":149,"context_line":"                                                {\u0027port_id\u0027: leftover_port.id}))"},{"line_number":150,"context_line":"                    else:"},{"line_number":151,"context_line":"                        LOG.exception(\"Unexpected error deleting leftover \""},{"line_number":152,"context_line":"                                      \"port %s. Skiping it and continue with \""}],"source_content_type":"text/x-python","patch_set":3,"id":"3fa7e38b_8880824b","line":149,"range":{"start_line":147,"start_character":0,"end_line":149,"end_character":79},"in_reply_to":"3fa7e38b_78b717d9","updated":"2019-12-03 11:55:12.000000000","message":"I don\u0027t like that way of formatting, but ok. I can do that.","commit_id":"b30f814e9edee34e409c74145245195d405246a5"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"240f15727875564a5cdb71f4dfc9331a04c53adc","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            router_id \u003d oslo_cfg.CONF.namespace_subnet.pod_router"},{"line_number":96,"context_line":"            try:"},{"line_number":97,"context_line":"                result \u003d os_net.remove_interface_from_router(router_id,"},{"line_number":98,"context_line":"                                                             subnet_id)"},{"line_number":99,"context_line":"            except os_exc.SDKException:"},{"line_number":100,"context_line":"                LOG.exception(\"Error deleting subnet %(subnet)s from router \""},{"line_number":101,"context_line":"                              \"%(router)s.\","}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_2123cbac","line":98,"range":{"start_line":98,"start_character":61,"end_line":98,"end_character":70},"updated":"2019-12-18 12:14:57.000000000","message":"That\u0027s a keyword parameter, probably better to explicitly say subnet_id\u003dsubnet_id.","commit_id":"9d650c44fd97e0673730156d54f54ee0d1a60c62"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"43ae3dda84efee090bfa366edae83e35cb3e3232","unresolved":false,"context_lines":[{"line_number":95,"context_line":"            router_id \u003d oslo_cfg.CONF.namespace_subnet.pod_router"},{"line_number":96,"context_line":"            try:"},{"line_number":97,"context_line":"                result \u003d os_net.remove_interface_from_router(router_id,"},{"line_number":98,"context_line":"                                                             subnet_id)"},{"line_number":99,"context_line":"            except os_exc.SDKException:"},{"line_number":100,"context_line":"                LOG.exception(\"Error deleting subnet %(subnet)s from router \""},{"line_number":101,"context_line":"                              \"%(router)s.\","}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_ded71b50","line":98,"range":{"start_line":98,"start_character":61,"end_line":98,"end_character":70},"in_reply_to":"3fa7e38b_2123cbac","updated":"2019-12-19 14:33:35.000000000","message":"It is the first keyword, so it doesn\u0027t matter. If we would have the port_id, we have to use keyword argument instead. If we go with full key\u003dvalue it might be misleading, that subnet_id is one of the keywords available, but not first one.","commit_id":"9d650c44fd97e0673730156d54f54ee0d1a60c62"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"240f15727875564a5cdb71f4dfc9331a04c53adc","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                              {\u0027subnet\u0027: subnet_id, \u0027router\u0027: router_id})"},{"line_number":103,"context_line":"                raise"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"            if \u0027NeutronError\u0027 in result:"},{"line_number":106,"context_line":"                error \u003d result[\u0027NeutronError\u0027]"},{"line_number":107,"context_line":"                if error[\u0027type\u0027] \u003d\u003d \u0027RouterNotFound\u0027:"},{"line_number":108,"context_line":"                    LOG.debug(\"Provided router %s not found.\", router_id)"},{"line_number":109,"context_line":"                elif error[\u0027type\u0027] \u003d\u003d \u0027RouterInterfaceNotFoundForSubnet\u0027:"},{"line_number":110,"context_line":"                    LOG.debug(\"Subnet %(subnet)s not attached to router \""},{"line_number":111,"context_line":"                              \"%(router)s\", {\u0027subnet\u0027: subnet_id,"},{"line_number":112,"context_line":"                                             \u0027router\u0027: router_id})"},{"line_number":113,"context_line":"                else:"},{"line_number":114,"context_line":"                    LOG.exception(\"Error deleting subnet %(subnet)s from \""},{"line_number":115,"context_line":"                                  \"router %(router)s.\", {\u0027subnet\u0027: subnet_id,"},{"line_number":116,"context_line":"                                                         \u0027router\u0027: router_id})"},{"line_number":117,"context_line":"                    raise os_exc.SDKException(\u0027Error deleting interface from \u0027"},{"line_number":118,"context_line":"                                              \u0027router: \u0027 + error[\u0027type\u0027] +"},{"line_number":119,"context_line":"                                              \u0027: \u0027 + error[\u0027message\u0027])"},{"line_number":120,"context_line":"        try:"},{"line_number":121,"context_line":"            os_net.delete_network(net_id)"},{"line_number":122,"context_line":"        except os_exc.ConflictException:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_812ddf90","line":119,"range":{"start_line":105,"start_character":0,"end_line":119,"end_character":70},"updated":"2019-12-18 12:14:57.000000000","message":"This is really fun that openstacksdk won\u0027t raise in this case.","commit_id":"9d650c44fd97e0673730156d54f54ee0d1a60c62"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"43ae3dda84efee090bfa366edae83e35cb3e3232","unresolved":false,"context_lines":[{"line_number":102,"context_line":"                              {\u0027subnet\u0027: subnet_id, \u0027router\u0027: router_id})"},{"line_number":103,"context_line":"                raise"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"            if \u0027NeutronError\u0027 in result:"},{"line_number":106,"context_line":"                error \u003d result[\u0027NeutronError\u0027]"},{"line_number":107,"context_line":"                if error[\u0027type\u0027] \u003d\u003d \u0027RouterNotFound\u0027:"},{"line_number":108,"context_line":"                    LOG.debug(\"Provided router %s not found.\", router_id)"},{"line_number":109,"context_line":"                elif error[\u0027type\u0027] \u003d\u003d \u0027RouterInterfaceNotFoundForSubnet\u0027:"},{"line_number":110,"context_line":"                    LOG.debug(\"Subnet %(subnet)s not attached to router \""},{"line_number":111,"context_line":"                              \"%(router)s\", {\u0027subnet\u0027: subnet_id,"},{"line_number":112,"context_line":"                                             \u0027router\u0027: router_id})"},{"line_number":113,"context_line":"                else:"},{"line_number":114,"context_line":"                    LOG.exception(\"Error deleting subnet %(subnet)s from \""},{"line_number":115,"context_line":"                                  \"router %(router)s.\", {\u0027subnet\u0027: subnet_id,"},{"line_number":116,"context_line":"                                                         \u0027router\u0027: router_id})"},{"line_number":117,"context_line":"                    raise os_exc.SDKException(\u0027Error deleting interface from \u0027"},{"line_number":118,"context_line":"                                              \u0027router: \u0027 + error[\u0027type\u0027] +"},{"line_number":119,"context_line":"                                              \u0027: \u0027 + error[\u0027message\u0027])"},{"line_number":120,"context_line":"        try:"},{"line_number":121,"context_line":"            os_net.delete_network(net_id)"},{"line_number":122,"context_line":"        except os_exc.ConflictException:"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_1e3cd390","line":119,"range":{"start_line":105,"start_character":0,"end_line":119,"end_character":70},"in_reply_to":"3fa7e38b_812ddf90","updated":"2019-12-19 14:33:35.000000000","message":"Yay. I\u0027m wondering if we should raise this as an issue to OpenStackSDK, since in case of removing port we have no idea, if the port was really removed, wasn\u0027t exists or the port id was bad.","commit_id":"9d650c44fd97e0673730156d54f54ee0d1a60c62"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"240f15727875564a5cdb71f4dfc9331a04c53adc","unresolved":false,"context_lines":[{"line_number":191,"context_line":"                      .add_interface_to_router(router_id,"},{"line_number":192,"context_line":"                                               subnet_id\u003dneutron_subnet.id))"},{"line_number":193,"context_line":"            if \u0027NeutronError\u0027 in result:"},{"line_number":194,"context_line":"                LOG.debug(result[\u0027message\u0027])"},{"line_number":195,"context_line":"                return"},{"line_number":196,"context_line":"        except os_exc.SDKException:"},{"line_number":197,"context_line":"            LOG.exception(\"Error creating neutron resources for the namespace \""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_21966ba2","line":194,"range":{"start_line":194,"start_character":26,"end_line":194,"end_character":43},"updated":"2019-12-18 12:14:57.000000000","message":"Shouldn\u0027t this be result[\u0027NeutronError\u0027]? Haven\u0027t checked, just asking.","commit_id":"9d650c44fd97e0673730156d54f54ee0d1a60c62"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"43ae3dda84efee090bfa366edae83e35cb3e3232","unresolved":false,"context_lines":[{"line_number":191,"context_line":"                      .add_interface_to_router(router_id,"},{"line_number":192,"context_line":"                                               subnet_id\u003dneutron_subnet.id))"},{"line_number":193,"context_line":"            if \u0027NeutronError\u0027 in result:"},{"line_number":194,"context_line":"                LOG.debug(result[\u0027message\u0027])"},{"line_number":195,"context_line":"                return"},{"line_number":196,"context_line":"        except os_exc.SDKException:"},{"line_number":197,"context_line":"            LOG.exception(\"Error creating neutron resources for the namespace \""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_4c7f0cbc","line":194,"range":{"start_line":194,"start_character":26,"end_line":194,"end_character":43},"in_reply_to":"3fa7e38b_21966ba2","updated":"2019-12-19 14:33:35.000000000","message":"Yes it is. Same as above. Will fix.","commit_id":"9d650c44fd97e0673730156d54f54ee0d1a60c62"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"240f15727875564a5cdb71f4dfc9331a04c53adc","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                                               subnet_id\u003dneutron_subnet.id))"},{"line_number":193,"context_line":"            if \u0027NeutronError\u0027 in result:"},{"line_number":194,"context_line":"                LOG.debug(result[\u0027message\u0027])"},{"line_number":195,"context_line":"                return"},{"line_number":196,"context_line":"        except os_exc.SDKException:"},{"line_number":197,"context_line":"            LOG.exception(\"Error creating neutron resources for the namespace \""},{"line_number":198,"context_line":"                          \"%s\", namespace)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_e19ff3b0","line":195,"range":{"start_line":195,"start_character":16,"end_line":195,"end_character":22},"updated":"2019-12-18 12:14:57.000000000","message":"I think in that case it should be raising. I\u0027d welcome Luis o Maysa opinion on this.","commit_id":"9d650c44fd97e0673730156d54f54ee0d1a60c62"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"43ae3dda84efee090bfa366edae83e35cb3e3232","unresolved":false,"context_lines":[{"line_number":192,"context_line":"                                               subnet_id\u003dneutron_subnet.id))"},{"line_number":193,"context_line":"            if \u0027NeutronError\u0027 in result:"},{"line_number":194,"context_line":"                LOG.debug(result[\u0027message\u0027])"},{"line_number":195,"context_line":"                return"},{"line_number":196,"context_line":"        except os_exc.SDKException:"},{"line_number":197,"context_line":"            LOG.exception(\"Error creating neutron resources for the namespace \""},{"line_number":198,"context_line":"                          \"%s\", namespace)"}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_7e5e27e9","line":195,"range":{"start_line":195,"start_character":16,"end_line":195,"end_character":22},"in_reply_to":"3fa7e38b_e19ff3b0","updated":"2019-12-19 14:33:35.000000000","message":"It was not raised, since in original implementation we didn\u0027t do so (see line 188).","commit_id":"9d650c44fd97e0673730156d54f54ee0d1a60c62"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"240f15727875564a5cdb71f4dfc9331a04c53adc","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        os_net \u003d clients.get_network_client()"},{"line_number":207,"context_line":"        try:"},{"line_number":208,"context_line":"            os_net.remove_interface_from_router(net_crd_spec[\u0027routerId\u0027],"},{"line_number":209,"context_line":"                                                net_crd_spec[\u0027subnetId\u0027])"},{"line_number":210,"context_line":"            os_net.delete_network(net_crd_spec[\u0027netId\u0027])"},{"line_number":211,"context_line":"        except os_exc.SDKException:"},{"line_number":212,"context_line":"            LOG.exception(\"Failed to clean up network resources associated to \""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_a1a9fbde","line":209,"range":{"start_line":209,"start_character":48,"end_line":209,"end_character":72},"updated":"2019-12-18 12:14:57.000000000","message":"I\u0027d rather use subnet_id\u003dsubnet_id.","commit_id":"9d650c44fd97e0673730156d54f54ee0d1a60c62"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"43ae3dda84efee090bfa366edae83e35cb3e3232","unresolved":false,"context_lines":[{"line_number":206,"context_line":"        os_net \u003d clients.get_network_client()"},{"line_number":207,"context_line":"        try:"},{"line_number":208,"context_line":"            os_net.remove_interface_from_router(net_crd_spec[\u0027routerId\u0027],"},{"line_number":209,"context_line":"                                                net_crd_spec[\u0027subnetId\u0027])"},{"line_number":210,"context_line":"            os_net.delete_network(net_crd_spec[\u0027netId\u0027])"},{"line_number":211,"context_line":"        except os_exc.SDKException:"},{"line_number":212,"context_line":"            LOG.exception(\"Failed to clean up network resources associated to \""}],"source_content_type":"text/x-python","patch_set":9,"id":"3fa7e38b_1e55b3c2","line":209,"range":{"start_line":209,"start_character":48,"end_line":209,"end_character":72},"in_reply_to":"3fa7e38b_a1a9fbde","updated":"2019-12-19 14:33:35.000000000","message":"See my comment above.","commit_id":"9d650c44fd97e0673730156d54f54ee0d1a60c62"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"8d550c69f098e1dae408d6e6743ab8c8cfc1984d","unresolved":false,"context_lines":[{"line_number":225,"context_line":""},{"line_number":226,"context_line":"        for net in networks:"},{"line_number":227,"context_line":"            net_id \u003d net.id"},{"line_number":228,"context_line":"            subnets \u003d list(net.subnets)"},{"line_number":229,"context_line":"            subnet_id \u003d None"},{"line_number":230,"context_line":"            if subnets:"},{"line_number":231,"context_line":"                # NOTE(ltomasbo): Each network created by kuryr only has"}],"source_content_type":"text/x-python","patch_set":10,"id":"3fa7e38b_cf4afc22","line":228,"range":{"start_line":228,"start_character":22,"end_line":228,"end_character":39},"updated":"2019-12-20 10:28:18.000000000","message":"this does not exists, it should be subnet_ids","commit_id":"a1a12258cf3e64dd432b11334962d095a6bf4e89"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"ed5e35acf216fb8ce7c4536bd9520a7a1f4c12ea","unresolved":false,"context_lines":[{"line_number":114,"context_line":"                    LOG.debug(\"Subnet %(subnet)s not exists - probably \""},{"line_number":115,"context_line":"                              \"already removed.\", {\u0027subnet\u0027: subnet_id})"},{"line_number":116,"context_line":"                else:"},{"line_number":117,"context_line":"                    LOG.exception(\"Error deleting subnet %(subnet)s from \""},{"line_number":118,"context_line":"                                  \"router %(router)s.\", {\u0027subnet\u0027: subnet_id,"},{"line_number":119,"context_line":"                                                         \u0027router\u0027: router_id})"},{"line_number":120,"context_line":"                    raise os_exc.SDKException(\u0027Error deleting interface from \u0027"},{"line_number":121,"context_line":"                                              \u0027router: \u0027 + error[\u0027type\u0027] +"},{"line_number":122,"context_line":"                                              \u0027: \u0027 + error[\u0027message\u0027])"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_c2b16003","line":119,"range":{"start_line":117,"start_character":0,"end_line":119,"end_character":78},"updated":"2019-12-23 10:19:36.000000000","message":"There\u0027s no exception in the context at this point, this should just be ERROR.","commit_id":"fa2aa2db6f0f1440f34c37c87818f3daf11726d1"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"81656dfaadb8e73eccca38e8ab925980ca69b16c","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            result \u003d (os_net"},{"line_number":194,"context_line":"                      .add_interface_to_router(router_id,"},{"line_number":195,"context_line":"                                               subnet_id\u003dneutron_subnet.id))"},{"line_number":196,"context_line":"            if \u0027NeutronError\u0027 in result:"},{"line_number":197,"context_line":"                LOG.debug(result[\u0027NeutronError\u0027][\u0027message\u0027])"},{"line_number":198,"context_line":"                return"},{"line_number":199,"context_line":"        except os_exc.SDKException:"},{"line_number":200,"context_line":"            LOG.exception(\"Error creating neutron resources for the namespace \""},{"line_number":201,"context_line":"                          \"%s\", namespace)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_bc56ca2a","line":198,"range":{"start_line":196,"start_character":0,"end_line":198,"end_character":22},"updated":"2019-12-23 09:08:34.000000000","message":"this seems to be changing the logic... this method is either raising an exception or returning a dict. So probably we should raise here an SDKException","commit_id":"fa2aa2db6f0f1440f34c37c87818f3daf11726d1"},{"author":{"_account_id":11600,"name":"Michał Dulko","email":"michal.dulko@gmail.com","username":"dulek"},"change_message_id":"c304e5b623be1dcd012b6974eef29fdc6f573ab2","unresolved":false,"context_lines":[{"line_number":193,"context_line":"            result \u003d (os_net"},{"line_number":194,"context_line":"                      .add_interface_to_router(router_id,"},{"line_number":195,"context_line":"                                               subnet_id\u003dneutron_subnet.id))"},{"line_number":196,"context_line":"            if \u0027NeutronError\u0027 in result:"},{"line_number":197,"context_line":"                LOG.debug(result[\u0027NeutronError\u0027][\u0027message\u0027])"},{"line_number":198,"context_line":"                return"},{"line_number":199,"context_line":"        except os_exc.SDKException:"},{"line_number":200,"context_line":"            LOG.exception(\"Error creating neutron resources for the namespace \""},{"line_number":201,"context_line":"                          \"%s\", namespace)"}],"source_content_type":"text/x-python","patch_set":12,"id":"3fa7e38b_3650b2d5","line":198,"range":{"start_line":196,"start_character":0,"end_line":198,"end_character":22},"in_reply_to":"3fa7e38b_bc56ca2a","updated":"2019-12-23 16:50:48.000000000","message":"Yup, this should not be ignored.","commit_id":"fa2aa2db6f0f1440f34c37c87818f3daf11726d1"},{"author":{"_account_id":23567,"name":"Luis Tomas Bolivar","email":"ltomasbo@redhat.com","username":"ltomasbo"},"change_message_id":"56cefacee6d2bf223849871d537851d7ddae19df","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                        # Get the trunk_id from the error message"},{"line_number":132,"context_line":"                        trunk_id \u003d ("},{"line_number":133,"context_line":"                            str(e).split(\u0027trunk\u0027)[1].split(\u0027.\u0027)[0].strip())"},{"line_number":134,"context_line":"                        try:"},{"line_number":135,"context_line":"                            os_net.delete_trunk_subports("},{"line_number":136,"context_line":"                                trunk_id, {\u0027port_id\u0027: leftover_port.id})"},{"line_number":137,"context_line":"                        except os_exc.NotFoundException:"},{"line_number":138,"context_line":"                            LOG.debug(\"Port %s already removed from trunk %s\","},{"line_number":139,"context_line":"                                      leftover_port[\u0027id\u0027], trunk_id)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_82c27d34","line":136,"range":{"start_line":134,"start_character":0,"end_line":136,"end_character":72},"updated":"2019-12-24 14:11:32.000000000","message":"Got this error here: http://paste.openstack.org/show/787895/","commit_id":"9fea976afe372b04f97be3c72165870c7f49da24"},{"author":{"_account_id":13692,"name":"Roman Dobosz","email":"gryf73@gmail.com","username":"gryf"},"change_message_id":"637beb249f6480cb678c780d76758cb0e4e2daee","unresolved":false,"context_lines":[{"line_number":131,"context_line":"                        # Get the trunk_id from the error message"},{"line_number":132,"context_line":"                        trunk_id \u003d ("},{"line_number":133,"context_line":"                            str(e).split(\u0027trunk\u0027)[1].split(\u0027.\u0027)[0].strip())"},{"line_number":134,"context_line":"                        try:"},{"line_number":135,"context_line":"                            os_net.delete_trunk_subports("},{"line_number":136,"context_line":"                                trunk_id, {\u0027port_id\u0027: leftover_port.id})"},{"line_number":137,"context_line":"                        except os_exc.NotFoundException:"},{"line_number":138,"context_line":"                            LOG.debug(\"Port %s already removed from trunk %s\","},{"line_number":139,"context_line":"                                      leftover_port[\u0027id\u0027], trunk_id)"}],"source_content_type":"text/x-python","patch_set":14,"id":"3fa7e38b_7aaeefe4","line":136,"range":{"start_line":134,"start_character":0,"end_line":136,"end_character":72},"in_reply_to":"3fa7e38b_82c27d34","updated":"2020-01-02 11:01:00.000000000","message":"Right. Should be a list of subports.","commit_id":"9fea976afe372b04f97be3c72165870c7f49da24"}]}
