)]}'
{".zuul.yaml":[{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"6b4c13ae8b06a32b1da1ef9840f4f5b0d5c77c5d","unresolved":true,"context_lines":[{"line_number":13,"context_line":"            voting: false"},{"line_number":14,"context_line":"    gate:"},{"line_number":15,"context_line":"      jobs:"},{"line_number":16,"context_line":"        # TODO(lajoskatona): make the job non-voting till"},{"line_number":17,"context_line":"        # https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/842113"},{"line_number":18,"context_line":"        # is not merged"},{"line_number":19,"context_line":"        - neutron-tempest-plugin-tap-as-a-service:"},{"line_number":20,"context_line":"            voting: false"},{"line_number":21,"context_line":"    periodic-weekly:"},{"line_number":22,"context_line":"      jobs:"},{"line_number":23,"context_line":"        - openstack-tox-py39"}],"source_content_type":"text/x-yaml","patch_set":4,"id":"780297c3_85cc8b03","line":20,"range":{"start_line":16,"start_character":0,"end_line":20,"end_character":25},"updated":"2022-05-19 04:53:23.000000000","message":"can drop from here, non-voting jobs shouldn\u0027t run in gate pipeline","commit_id":"26badfff86fff5deefd6fc37daef79e5dccfb370"}],"/COMMIT_MSG":[{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"889a85d1e1c4b7cd501c1d8abf071e49d86b5bae","unresolved":true,"context_lines":[{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Add context for all SQL transactions"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Follwo the last efforts to make Neutron compatible with sqlalchemy-20"},{"line_number":10,"context_line":"(see [1]), and use the necessary context for all SQL transactions."},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[1]: https://review.opendev.org/c/openstack/neutron-lib/+/828738"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"51e0e608_2027c6de","line":9,"range":{"start_line":9,"start_character":0,"end_line":9,"end_character":6},"updated":"2022-05-19 04:28:42.000000000","message":"Follow","commit_id":"9c8e21091699955627614c49007e5ec29be35ab4"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"889a85d1e1c4b7cd501c1d8abf071e49d86b5bae","unresolved":true,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[1]: https://review.opendev.org/c/openstack/neutron-lib/+/828738"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Depends-On: https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/842113"},{"line_number":15,"context_line":"Closes-Bug: #1973757"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I5aef8683df55b0825181e57257f0b71887315e52"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"f70b7baf_609f0627","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":82},"updated":"2022-05-19 04:28:42.000000000","message":"Both patch depends-on each other, so i think we need to make job non-voting here to get the patch in and then re-revert once ssh issuse is fixed in neutron-tempest-plugin.","commit_id":"9c8e21091699955627614c49007e5ec29be35ab4"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"6b4c13ae8b06a32b1da1ef9840f4f5b0d5c77c5d","unresolved":true,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[1]: https://review.opendev.org/c/openstack/neutron-lib/+/828738"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Depends-On: https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/842113"},{"line_number":15,"context_line":"Closes-Bug: #1973757"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I5aef8683df55b0825181e57257f0b71887315e52"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"f5eb0709_69be74b0","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":82},"in_reply_to":"3f853c17_ee1c2de8","updated":"2022-05-19 04:53:23.000000000","message":"Depends-On needs to be dropped now to let it merge","commit_id":"9c8e21091699955627614c49007e5ec29be35ab4"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"a17f07fecea3579ac20b9fe6c133afeea3cd3e43","unresolved":true,"context_lines":[{"line_number":11,"context_line":""},{"line_number":12,"context_line":"[1]: https://review.opendev.org/c/openstack/neutron-lib/+/828738"},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Depends-On: https://review.opendev.org/c/openstack/neutron-tempest-plugin/+/842113"},{"line_number":15,"context_line":"Closes-Bug: #1973757"},{"line_number":16,"context_line":""},{"line_number":17,"context_line":"Change-Id: I5aef8683df55b0825181e57257f0b71887315e52"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":3,"id":"3f853c17_ee1c2de8","line":14,"range":{"start_line":14,"start_character":0,"end_line":14,"end_character":82},"in_reply_to":"f70b7baf_609f0627","updated":"2022-05-19 04:35:18.000000000","message":"possible, but here neutron-tempest-plugin-tap-as-a-service passed so as I see we can merge this patch, and then the neutron-tempest-plugin patch","commit_id":"9c8e21091699955627614c49007e5ec29be35ab4"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"4bb144d7_e038807e","updated":"2022-05-18 08:56:30.000000000","message":"Code looks ok.","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"6d4ea4cd4c449c55c7dada301357cf2797d48b76","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"1dd89979_02f3bdcd","in_reply_to":"4bb144d7_e038807e","updated":"2022-05-18 08:56:45.000000000","message":"Sorry, not ok","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3cca19cec24698808a775d10162fba4d8c19bc53","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"e3e80b88_e8718a80","updated":"2022-05-20 09:59:11.000000000","message":"Hmmm, something is missing I have to check, there are client and sqlalchemy errors in the log:\nhttps://24010bbed9f30005586c-13d748f9df81cb7089aa22ff6ea70343.ssl.cf1.rackcdn.com/842134/6/check/neutron-tempest-plugin-tap-as-a-service/79a714a/controller/logs/screen-q-svc.txt","commit_id":"d9712d47628dc4d445185e321e70ffa4c6cea43d"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"f5aa87a0b515c16a2eb3d14d913c8bffb8052460","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"016fae81_46c0fbc6","updated":"2022-05-23 05:30:26.000000000","message":"I still see TraceBacks for get_tap_flow in https://storage.gra.cloud.ovh.net/v1/AUTH_dcaab5e32b234d56b626f72581e3644c/zuul_opendev_logs_716/842134/7/check/neutron-tempest-plugin-tap-as-a-service/7165550/controller/logs/screen-q-svc.txt","commit_id":"3c3ebda0d72e1962e1b4992d1c906dba5611a216"},{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"2c18b1f44d1624fc72d4c66caacdc9d820d0df42","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"32cf2a7b_df4308a6","updated":"2022-05-24 14:23:54.000000000","message":"No more Traces now","commit_id":"f59837263cea5c4bdcb254586da8c27b1ce14189"},{"author":{"_account_id":21798,"name":"Bernard Cafarelli","email":"bcafarel@redhat.com","username":"bcafarel"},"change_message_id":"fdc20384f12b152c410ebbe29bcf2f47b1838707","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"94fcb6d5_1b294212","updated":"2022-05-24 14:32:37.000000000","message":"Parts I checked look OK (inline with other sqlalchemy20 changes)","commit_id":"f59837263cea5c4bdcb254586da8c27b1ce14189"}],"neutron_taas/db/taas_db.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":true,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        return self._make_tap_flow_dict(tap_flow_db)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":232,"context_line":"    def delete_tap_service(self, context, id):"},{"line_number":233,"context_line":"        LOG.debug(\"delete_tap_service() called\")"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"d50d5ba0_0f40e36e","line":231,"range":{"start_line":231,"start_character":12,"end_line":231,"end_character":37},"updated":"2022-05-18 08:56:30.000000000","message":"You can add the retry decorator and the write one:\n\n@db_api.retry_if_session_inactive()\n@db_api.WRITER_READER","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2ae4fb262083b74cf4bae566991fc7150f090bcc","unresolved":false,"context_lines":[{"line_number":228,"context_line":""},{"line_number":229,"context_line":"        return self._make_tap_flow_dict(tap_flow_db)"},{"line_number":230,"context_line":""},{"line_number":231,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":232,"context_line":"    def delete_tap_service(self, context, id):"},{"line_number":233,"context_line":"        LOG.debug(\"delete_tap_service() called\")"},{"line_number":234,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"a2c185bc_4aedf085","line":231,"range":{"start_line":231,"start_character":12,"end_line":231,"end_character":37},"in_reply_to":"d50d5ba0_0f40e36e","updated":"2022-05-18 10:56:01.000000000","message":"thanks, done\nI tried to add write decorator/ context only to the smallest code block, but cleaner to have it as decorator","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":true,"context_lines":[{"line_number":239,"context_line":"            if not count:"},{"line_number":240,"context_line":"                raise taas.TapServiceNotFound(tap_id\u003did)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":243,"context_line":"    def delete_tap_flow(self, context, id):"},{"line_number":244,"context_line":"        LOG.debug(\"delete_tap_flow() called\")"},{"line_number":245,"context_line":"        with db_api.CONTEXT_WRITER.using(context):"}],"source_content_type":"text/x-python","patch_set":2,"id":"c7e2dedb_c6a66615","line":242,"range":{"start_line":242,"start_character":4,"end_line":242,"end_character":39},"updated":"2022-05-18 08:56:30.000000000","message":"ditto","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2ae4fb262083b74cf4bae566991fc7150f090bcc","unresolved":false,"context_lines":[{"line_number":239,"context_line":"            if not count:"},{"line_number":240,"context_line":"                raise taas.TapServiceNotFound(tap_id\u003did)"},{"line_number":241,"context_line":""},{"line_number":242,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":243,"context_line":"    def delete_tap_flow(self, context, id):"},{"line_number":244,"context_line":"        LOG.debug(\"delete_tap_flow() called\")"},{"line_number":245,"context_line":"        with db_api.CONTEXT_WRITER.using(context):"}],"source_content_type":"text/x-python","patch_set":2,"id":"cf575d7a_ad7624ff","line":242,"range":{"start_line":242,"start_character":4,"end_line":242,"end_character":39},"in_reply_to":"c7e2dedb_c6a66615","updated":"2022-05-18 10:56:01.000000000","message":"Done","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":true,"context_lines":[{"line_number":267,"context_line":"        t_f \u003d self._get_tap_flow(context, id)"},{"line_number":268,"context_line":"        return self._make_tap_flow_dict(t_f, fields)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":271,"context_line":"    def get_tap_services(self, context, filters\u003dNone, fields\u003dNone,"},{"line_number":272,"context_line":"                         sorts\u003dNone, limit\u003dNone, marker\u003dNone,"},{"line_number":273,"context_line":"                         page_reverse\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":2,"id":"127280a0_d8e528f3","line":270,"range":{"start_line":270,"start_character":12,"end_line":270,"end_character":37},"updated":"2022-05-18 08:56:30.000000000","message":"ditto","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2ae4fb262083b74cf4bae566991fc7150f090bcc","unresolved":false,"context_lines":[{"line_number":267,"context_line":"        t_f \u003d self._get_tap_flow(context, id)"},{"line_number":268,"context_line":"        return self._make_tap_flow_dict(t_f, fields)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":271,"context_line":"    def get_tap_services(self, context, filters\u003dNone, fields\u003dNone,"},{"line_number":272,"context_line":"                         sorts\u003dNone, limit\u003dNone, marker\u003dNone,"},{"line_number":273,"context_line":"                         page_reverse\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":2,"id":"8c7b6df2_79409289","line":270,"range":{"start_line":270,"start_character":12,"end_line":270,"end_character":37},"in_reply_to":"127280a0_d8e528f3","updated":"2022-05-18 10:56:01.000000000","message":"Done","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":true,"context_lines":[{"line_number":277,"context_line":"                                              self._make_tap_service_dict,"},{"line_number":278,"context_line":"                                              filters\u003dfilters, fields\u003dfields)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":281,"context_line":"    def get_tap_flows(self, context, filters\u003dNone, fields\u003dNone,"},{"line_number":282,"context_line":"                      sorts\u003dNone, limit\u003dNone, marker\u003dNone,"},{"line_number":283,"context_line":"                      page_reverse\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":2,"id":"32fc070c_3cfd6854","line":280,"range":{"start_line":280,"start_character":12,"end_line":280,"end_character":37},"updated":"2022-05-18 08:56:30.000000000","message":"ditto","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2ae4fb262083b74cf4bae566991fc7150f090bcc","unresolved":false,"context_lines":[{"line_number":277,"context_line":"                                              self._make_tap_service_dict,"},{"line_number":278,"context_line":"                                              filters\u003dfilters, fields\u003dfields)"},{"line_number":279,"context_line":""},{"line_number":280,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":281,"context_line":"    def get_tap_flows(self, context, filters\u003dNone, fields\u003dNone,"},{"line_number":282,"context_line":"                      sorts\u003dNone, limit\u003dNone, marker\u003dNone,"},{"line_number":283,"context_line":"                      page_reverse\u003dFalse):"}],"source_content_type":"text/x-python","patch_set":2,"id":"c33f5150_b69c210f","line":280,"range":{"start_line":280,"start_character":12,"end_line":280,"end_character":37},"in_reply_to":"32fc070c_3cfd6854","updated":"2022-05-18 10:56:01.000000000","message":"Done","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":true,"context_lines":[{"line_number":288,"context_line":"                                              filters\u003dfilters, fields\u003dfields)"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":291,"context_line":"    def _get_port_details(self, context, port_id):"},{"line_number":292,"context_line":"        with db_api.CONTEXT_READER.using(context):"},{"line_number":293,"context_line":"            port \u003d self._core_plugin().get_port(context, port_id)"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"103177f9_e2d9cf6e","line":291,"range":{"start_line":291,"start_character":8,"end_line":291,"end_character":25},"updated":"2022-05-18 08:56:30.000000000","message":"ditto\n\nYou should consider make this method public","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2ae4fb262083b74cf4bae566991fc7150f090bcc","unresolved":false,"context_lines":[{"line_number":288,"context_line":"                                              filters\u003dfilters, fields\u003dfields)"},{"line_number":289,"context_line":""},{"line_number":290,"context_line":"    @db_api.retry_if_session_inactive()"},{"line_number":291,"context_line":"    def _get_port_details(self, context, port_id):"},{"line_number":292,"context_line":"        with db_api.CONTEXT_READER.using(context):"},{"line_number":293,"context_line":"            port \u003d self._core_plugin().get_port(context, port_id)"},{"line_number":294,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"f62529de_296507e9","line":291,"range":{"start_line":291,"start_character":8,"end_line":291,"end_character":25},"in_reply_to":"103177f9_e2d9cf6e","updated":"2022-05-18 10:56:01.000000000","message":"good idea","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"25113cf434db4758980b27357b9e6a10a3ccea16","unresolved":true,"context_lines":[{"line_number":233,"context_line":"    def delete_tap_service(self, context, id):"},{"line_number":234,"context_line":"        LOG.debug(\"delete_tap_service() called\")"},{"line_number":235,"context_line":""},{"line_number":236,"context_line":"        count \u003d context.session.query(TapService).filter_by("},{"line_number":237,"context_line":"            id\u003did).delete()"},{"line_number":238,"context_line":""},{"line_number":239,"context_line":"        if not count:"},{"line_number":240,"context_line":"            raise taas.TapServiceNotFound(tap_id\u003did)"}],"source_content_type":"text/x-python","patch_set":6,"id":"f9173988_0d579b07","line":237,"range":{"start_line":236,"start_character":8,"end_line":237,"end_character":27},"updated":"2022-05-20 15:13:25.000000000","message":"nit: useless line break","commit_id":"d9712d47628dc4d445185e321e70ffa4c6cea43d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"25113cf434db4758980b27357b9e6a10a3ccea16","unresolved":true,"context_lines":[{"line_number":243,"context_line":"    @db_api.CONTEXT_WRITER"},{"line_number":244,"context_line":"    def delete_tap_flow(self, context, id):"},{"line_number":245,"context_line":"        LOG.debug(\"delete_tap_flow() called\")"},{"line_number":246,"context_line":"        count \u003d context.session.query(TapFlow).filter_by("},{"line_number":247,"context_line":"            id\u003did).delete()"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"        if not count:"},{"line_number":250,"context_line":"            raise taas.TapFlowNotFound(flow_id\u003did)"}],"source_content_type":"text/x-python","patch_set":6,"id":"da6bcd08_c6bb0b7c","line":247,"range":{"start_line":246,"start_character":9,"end_line":247,"end_character":27},"updated":"2022-05-20 15:13:25.000000000","message":"ditto","commit_id":"d9712d47628dc4d445185e321e70ffa4c6cea43d"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"4bb9bc40fe077d286ffdd50d47ee0e93052ddf22","unresolved":true,"context_lines":[{"line_number":237,"context_line":"        if not count:"},{"line_number":238,"context_line":"            raise taas.TapServiceNotFound(tap_id\u003did)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def delete_tap_flow(self, context, id):"},{"line_number":241,"context_line":"        LOG.debug(\"delete_tap_flow() called\")"},{"line_number":242,"context_line":"        count \u003d context.session.query(TapFlow).filter_by(id\u003did).delete()"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"1193b7bd_8913072b","line":240,"range":{"start_line":240,"start_character":8,"end_line":240,"end_character":23},"updated":"2022-05-23 10:37:00.000000000","message":"Why the decorator is missing here?","commit_id":"5b9585ccb84e40c44a9b6d1d8f64b6e5d3661e0d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"6d6fb8197e8d61a7e745a37f1805f2f9424a02dc","unresolved":true,"context_lines":[{"line_number":237,"context_line":"        if not count:"},{"line_number":238,"context_line":"            raise taas.TapServiceNotFound(tap_id\u003did)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def delete_tap_flow(self, context, id):"},{"line_number":241,"context_line":"        LOG.debug(\"delete_tap_flow() called\")"},{"line_number":242,"context_line":"        count \u003d context.session.query(TapFlow).filter_by(id\u003did).delete()"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"18823e74_7c2ad8b2","line":240,"range":{"start_line":240,"start_character":8,"end_line":240,"end_character":23},"in_reply_to":"1193b7bd_8913072b","updated":"2022-05-23 13:43:11.000000000","message":"yeah the decorator was missing here, but I am wondering that the exception (TapFlowNotFound ) is not necessary here (and for delete_tap_service) as for example we do not raise such exception for router delete (https://opendev.org/openstack/neutron/src/branch/master/neutron/db/l3_db.py#L612 )","commit_id":"5b9585ccb84e40c44a9b6d1d8f64b6e5d3661e0d"},{"author":{"_account_id":11975,"name":"Slawek Kaplonski","email":"skaplons@redhat.com","username":"slaweq"},"change_message_id":"e0d5c37a3a926b3345a916f43ffac1aab45cdfde","unresolved":true,"context_lines":[{"line_number":237,"context_line":"        if not count:"},{"line_number":238,"context_line":"            raise taas.TapServiceNotFound(tap_id\u003did)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def delete_tap_flow(self, context, id):"},{"line_number":241,"context_line":"        LOG.debug(\"delete_tap_flow() called\")"},{"line_number":242,"context_line":"        count \u003d context.session.query(TapFlow).filter_by(id\u003did).delete()"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"fa533c24_9cb7725f","line":240,"range":{"start_line":240,"start_character":8,"end_line":240,"end_character":23},"in_reply_to":"18823e74_7c2ad8b2","updated":"2022-05-25 07:11:04.000000000","message":"I think that Rodolfo is asking about retry_if_session_inactive() decorator and I agree it should be added here. But we can do follow up patch to add it. Lets unblock gate first.","commit_id":"5b9585ccb84e40c44a9b6d1d8f64b6e5d3661e0d"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"3e03ed013f6953341236bd305be05d9210d29ad4","unresolved":true,"context_lines":[{"line_number":237,"context_line":"        if not count:"},{"line_number":238,"context_line":"            raise taas.TapServiceNotFound(tap_id\u003did)"},{"line_number":239,"context_line":""},{"line_number":240,"context_line":"    def delete_tap_flow(self, context, id):"},{"line_number":241,"context_line":"        LOG.debug(\"delete_tap_flow() called\")"},{"line_number":242,"context_line":"        count \u003d context.session.query(TapFlow).filter_by(id\u003did).delete()"},{"line_number":243,"context_line":""}],"source_content_type":"text/x-python","patch_set":9,"id":"4eeeefbc_40f006a3","line":240,"range":{"start_line":240,"start_character":8,"end_line":240,"end_character":23},"in_reply_to":"fa533c24_9cb7725f","updated":"2022-05-26 06:37:08.000000000","message":"ok, I check it","commit_id":"5b9585ccb84e40c44a9b6d1d8f64b6e5d3661e0d"}],"neutron_taas/services/taas/service_drivers/taas_rpc.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":true,"context_lines":[{"line_number":98,"context_line":"        # Clear the resource from DB once agent indicates successful deletion"},{"line_number":99,"context_line":"        # by mech driver."},{"line_number":100,"context_line":"        if status \u003d\u003d constants.INACTIVE:"},{"line_number":101,"context_line":"            with context.session.begin(subtransactions\u003dTrue):"},{"line_number":102,"context_line":"                ts \u003d self.plugin.get_tap_service(context, msg[\u0027id\u0027])"},{"line_number":103,"context_line":"                driver_context \u003d sd_context.TapServiceContext(self.plugin,"},{"line_number":104,"context_line":"                                                              context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"b054899a_6adb8362","line":101,"range":{"start_line":101,"start_character":11,"end_line":101,"end_character":61},"updated":"2022-05-18 08:56:30.000000000","message":"writer context","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2ae4fb262083b74cf4bae566991fc7150f090bcc","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        # Clear the resource from DB once agent indicates successful deletion"},{"line_number":99,"context_line":"        # by mech driver."},{"line_number":100,"context_line":"        if status \u003d\u003d constants.INACTIVE:"},{"line_number":101,"context_line":"            with context.session.begin(subtransactions\u003dTrue):"},{"line_number":102,"context_line":"                ts \u003d self.plugin.get_tap_service(context, msg[\u0027id\u0027])"},{"line_number":103,"context_line":"                driver_context \u003d sd_context.TapServiceContext(self.plugin,"},{"line_number":104,"context_line":"                                                              context,"}],"source_content_type":"text/x-python","patch_set":2,"id":"f8415d19_851ce805","line":101,"range":{"start_line":101,"start_character":11,"end_line":101,"end_character":61},"in_reply_to":"b054899a_6adb8362","updated":"2022-05-18 10:56:01.000000000","message":"Done","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":true,"context_lines":[{"line_number":109,"context_line":"                    driver_context)"},{"line_number":110,"context_line":"            return"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":113,"context_line":"            ts \u003d self.plugin.get_tap_service(context, msg[\u0027id\u0027])"},{"line_number":114,"context_line":"            ts[\u0027status\u0027] \u003d status"},{"line_number":115,"context_line":"            super(TaasPlugin, self.plugin).update_tap_service("}],"source_content_type":"text/x-python","patch_set":2,"id":"6c3115c9_0fda3d8a","line":112,"range":{"start_line":112,"start_character":8,"end_line":112,"end_character":57},"updated":"2022-05-18 08:56:30.000000000","message":"writer context\n\nActually you can add a single writer decorator in the method and will be fine","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2ae4fb262083b74cf4bae566991fc7150f090bcc","unresolved":false,"context_lines":[{"line_number":109,"context_line":"                    driver_context)"},{"line_number":110,"context_line":"            return"},{"line_number":111,"context_line":""},{"line_number":112,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":113,"context_line":"            ts \u003d self.plugin.get_tap_service(context, msg[\u0027id\u0027])"},{"line_number":114,"context_line":"            ts[\u0027status\u0027] \u003d status"},{"line_number":115,"context_line":"            super(TaasPlugin, self.plugin).update_tap_service("}],"source_content_type":"text/x-python","patch_set":2,"id":"27740a17_3db958b0","line":112,"range":{"start_line":112,"start_character":8,"end_line":112,"end_character":57},"in_reply_to":"6c3115c9_0fda3d8a","updated":"2022-05-18 10:56:01.000000000","message":"Done","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":true,"context_lines":[{"line_number":117,"context_line":"                msg[\u0027id\u0027],"},{"line_number":118,"context_line":"                {\u0027tap_service\u0027: ts})"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def set_tap_flow_status(self, context, msg, status, host\u003dNone):"},{"line_number":121,"context_line":"        \"\"\"Handle Rpc from Agent to set the status of Tap resources.\"\"\""},{"line_number":122,"context_line":"        LOG.info(\"In RPC Call to set tap flow status: Host\u003d%s, \""},{"line_number":123,"context_line":"                 \"MSG\u003d%s, STATUS\u003d%s\" % (host, msg, status))"}],"source_content_type":"text/x-python","patch_set":2,"id":"b3905c7a_4192c184","line":120,"range":{"start_line":120,"start_character":8,"end_line":120,"end_character":27},"updated":"2022-05-18 08:56:30.000000000","message":"Same comment: remove the \"context.session.begin\" contexts and add a writer decorator here.","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":8313,"name":"Lajos Katona","display_name":"lajoskatona","email":"katonalala@gmail.com","username":"elajkat","status":"Ericsson Software Technology"},"change_message_id":"2ae4fb262083b74cf4bae566991fc7150f090bcc","unresolved":false,"context_lines":[{"line_number":117,"context_line":"                msg[\u0027id\u0027],"},{"line_number":118,"context_line":"                {\u0027tap_service\u0027: ts})"},{"line_number":119,"context_line":""},{"line_number":120,"context_line":"    def set_tap_flow_status(self, context, msg, status, host\u003dNone):"},{"line_number":121,"context_line":"        \"\"\"Handle Rpc from Agent to set the status of Tap resources.\"\"\""},{"line_number":122,"context_line":"        LOG.info(\"In RPC Call to set tap flow status: Host\u003d%s, \""},{"line_number":123,"context_line":"                 \"MSG\u003d%s, STATUS\u003d%s\" % (host, msg, status))"}],"source_content_type":"text/x-python","patch_set":2,"id":"52337f60_8b257445","line":120,"range":{"start_line":120,"start_character":8,"end_line":120,"end_character":27},"in_reply_to":"b3905c7a_4192c184","updated":"2022-05-18 10:56:01.000000000","message":"Done","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"}],"neutron_taas/services/taas/taas_plugin.py":[{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":true,"context_lines":[{"line_number":93,"context_line":"            LOG.debug(\"Host could not be found, Port Binding disbaled!\")"},{"line_number":94,"context_line":""},{"line_number":95,"context_line":"        # Create tap service in the db model"},{"line_number":96,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":97,"context_line":"            ts \u003d super(TaasPlugin, self).create_tap_service(context,"},{"line_number":98,"context_line":"                                                            tap_service)"},{"line_number":99,"context_line":"            driver_context \u003d sd_context.TapServiceContext(self, context, ts)"}],"source_content_type":"text/x-python","patch_set":2,"id":"6428a93e_8210ac8d","line":96,"range":{"start_line":96,"start_character":8,"end_line":96,"end_character":57},"updated":"2022-05-18 08:56:30.000000000","message":"Use the writer decorator.","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":true,"context_lines":[{"line_number":121,"context_line":"        for t_f in t_f_collection:"},{"line_number":122,"context_line":"            self.delete_tap_flow(context, t_f[\u0027id\u0027])"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":125,"context_line":"            ts \u003d self.get_tap_service(context, id)"},{"line_number":126,"context_line":"            driver_context \u003d sd_context.TapServiceContext(self, context, ts)"},{"line_number":127,"context_line":"            if ts[\u0027status\u0027] \u003d\u003d constants.ACTIVE:"}],"source_content_type":"text/x-python","patch_set":2,"id":"e9a5ac89_a11b8910","line":124,"range":{"start_line":124,"start_character":8,"end_line":124,"end_character":57},"updated":"2022-05-18 08:56:30.000000000","message":"Use the writer decorator.","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":true,"context_lines":[{"line_number":156,"context_line":"            raise taas_ex.TapServiceNotBelongToTenant()"},{"line_number":157,"context_line":""},{"line_number":158,"context_line":"        # create tap flow in the db model"},{"line_number":159,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":160,"context_line":"            tf \u003d super(TaasPlugin, self).create_tap_flow(context, tap_flow)"},{"line_number":161,"context_line":"            driver_context \u003d sd_context.TapFlowContext(self, context, tf)"},{"line_number":162,"context_line":"            self.driver.create_tap_flow_precommit(driver_context)"}],"source_content_type":"text/x-python","patch_set":2,"id":"c3abfc2f_f91bb8ae","line":159,"range":{"start_line":159,"start_character":8,"end_line":159,"end_character":57},"updated":"2022-05-18 08:56:30.000000000","message":"ditto","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"},{"author":{"_account_id":16688,"name":"Rodolfo Alonso","email":"ralonsoh@redhat.com","username":"rodolfo-alonso-hernandez"},"change_message_id":"89e1adb5fa6310ed42a3fc7237638dd682da2725","unresolved":true,"context_lines":[{"line_number":174,"context_line":"    def delete_tap_flow(self, context, id):"},{"line_number":175,"context_line":"        LOG.debug(\"delete_tap_flow() called\")"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"        with context.session.begin(subtransactions\u003dTrue):"},{"line_number":178,"context_line":"            tf \u003d self.get_tap_flow(context, id)"},{"line_number":179,"context_line":"            driver_context \u003d sd_context.TapFlowContext(self, context, tf)"},{"line_number":180,"context_line":"            if tf[\u0027status\u0027] \u003d\u003d constants.ACTIVE:"}],"source_content_type":"text/x-python","patch_set":2,"id":"e38d0814_ee71edc3","line":177,"range":{"start_line":177,"start_character":8,"end_line":177,"end_character":57},"updated":"2022-05-18 08:56:30.000000000","message":"ditto","commit_id":"b3d44db88ab9f9f5429d3d552648fc76118dd72e"}],"requirements.txt":[{"author":{"_account_id":13861,"name":"yatin","email":"ykarel@redhat.com","username":"yatinkarel"},"change_message_id":"10d42116c95ebf5e165a4fd47700f3d3468c6a00","unresolved":true,"context_lines":[{"line_number":5,"context_line":"pbr\u003e\u003d5.5.0 # Apache-2.0"},{"line_number":6,"context_line":"Babel\u003e\u003d2.8.0 # BSD"},{"line_number":7,"context_line":"neutron\u003e\u003d16.0.0.0b1  # Apache-2.0"},{"line_number":8,"context_line":"neutron-lib\u003e\u003d2.11.0 # Apache-2.0"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"# Opt-in for neutron-lib consumption patches"},{"line_number":11,"context_line":"# http://lists.openstack.org/pipermail/openstack-dev/2018-September/135063.html"}],"source_content_type":"text/plain","patch_set":3,"id":"3c28bba3_f81ec503","line":8,"updated":"2022-05-19 04:37:06.000000000","message":"Shouldn\u0027t also update minimum version of neutron-lib to 2.21.0 for sqlalchemy-2.0 comptaibility fixes?","commit_id":"9c8e21091699955627614c49007e5ec29be35ab4"}]}
