)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"b369425dd2868c2bddd26b095552f7590f7a968d","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"1d98592d_2bbc069b","updated":"2022-03-23 09:06:49.000000000","message":"LGTM, I\u0027ve tested only the vscode method.","commit_id":"d556c622b15a48e1ba76c529952da511237b5d00"}],"doc/source/contributor/guides/remote-debugger.rst":[{"author":{"_account_id":11628,"name":"Michael Johnson","email":"johnsomor@gmail.com","username":"johnsom"},"change_message_id":"6c6c142a012ee8bfa539f683037ad89a2dcdee1e","unresolved":true,"context_lines":[{"line_number":94,"context_line":"host over a SSH tunnel so there is no need for uploading changes or to even"},{"line_number":95,"context_line":"have source code on the local machine."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# TODO(tweining) update: ptvsd method is deprecated"},{"line_number":98,"context_line":"Another example is debugging the Octavia API service with the ptvsd debugger:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"b379eee5_f1de60bd","line":97,"updated":"2022-03-10 17:32:44.000000000","message":"Are you planning to address this TODO in this patch or a future patch?\nIf future patch, maybe add a ..note that this method is deprecated?","commit_id":"a83d0efd79b87cb101d72047f3c7b8c684992187"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"3b470c5d914a36e4aeeebafde8d53b85aeeb5b96","unresolved":false,"context_lines":[{"line_number":94,"context_line":"host over a SSH tunnel so there is no need for uploading changes or to even"},{"line_number":95,"context_line":"have source code on the local machine."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# TODO(tweining) update: ptvsd method is deprecated"},{"line_number":98,"context_line":"Another example is debugging the Octavia API service with the ptvsd debugger:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"ad9bb3e8_e0deb58b","line":97,"in_reply_to":"5bbb15e2_a9193418","updated":"2022-03-11 16:21:17.000000000","message":"I\u0027ve experimented with debugpy (the replacement for ptvsd) but could not get it to work with uwsgi. It seems to be a bug/limitation within debugpy. It tries to create an \"adapter process\" by running \"python somefile.py --for-server\", but with the Octavia API process that is managed by uWSGI that doesn\u0027t seem to work. I also tried with the old ptvsd module, which seems to work better, but not as good as with PyCharm. I will keep the description about ptvsd as it was for reference. For all other Octavia components a more convenient method can be used with Code that works well. I will add documentation about that method.","commit_id":"a83d0efd79b87cb101d72047f3c7b8c684992187"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"7e962f1cc905e33a2b68e1623b7fa6dc35833abb","unresolved":true,"context_lines":[{"line_number":94,"context_line":"host over a SSH tunnel so there is no need for uploading changes or to even"},{"line_number":95,"context_line":"have source code on the local machine."},{"line_number":96,"context_line":""},{"line_number":97,"context_line":"# TODO(tweining) update: ptvsd method is deprecated"},{"line_number":98,"context_line":"Another example is debugging the Octavia API service with the ptvsd debugger:"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"::"}],"source_content_type":"text/x-rst","patch_set":2,"id":"5bbb15e2_a9193418","line":97,"in_reply_to":"b379eee5_f1de60bd","updated":"2022-03-11 09:24:40.000000000","message":"I intend to update this section in this patch. That\u0027s why I marked it as WIP. Since I don\u0027t use VSCode for remote debugging anymore, I\u0027ll first need to investigate what works best.","commit_id":"a83d0efd79b87cb101d72047f3c7b8c684992187"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"c75c0a976af512f7227f3d53f511f134793208b9","unresolved":true,"context_lines":[{"line_number":90,"context_line":"------------------"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"While PyCharm synchronizes local changes with"},{"line_number":93,"context_line":"the remote host Code will work on the remote environment directly"},{"line_number":94,"context_line":"through a SSH tunnel. That means that you don\u0027t even need to have"},{"line_number":95,"context_line":"source code on your local machine in order to debug code on the remote."},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"695f2996_c0592d28","line":93,"range":{"start_line":93,"start_character":15,"end_line":93,"end_character":16},"updated":"2022-03-23 07:54:14.000000000","message":"comma?","commit_id":"c48e1d82df9eae9b6eeae7b0149b910d89a4a47d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"713e26e5c78c6ac1990ba459d886067d414dc206","unresolved":false,"context_lines":[{"line_number":90,"context_line":"------------------"},{"line_number":91,"context_line":""},{"line_number":92,"context_line":"While PyCharm synchronizes local changes with"},{"line_number":93,"context_line":"the remote host Code will work on the remote environment directly"},{"line_number":94,"context_line":"through a SSH tunnel. That means that you don\u0027t even need to have"},{"line_number":95,"context_line":"source code on your local machine in order to debug code on the remote."},{"line_number":96,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"7cde595e_32b74148","line":93,"range":{"start_line":93,"start_character":15,"end_line":93,"end_character":16},"in_reply_to":"695f2996_c0592d28","updated":"2022-03-23 09:01:51.000000000","message":"Done","commit_id":"c48e1d82df9eae9b6eeae7b0149b910d89a4a47d"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"c75c0a976af512f7227f3d53f511f134793208b9","unresolved":true,"context_lines":[{"line_number":113,"context_line":"devstack you might want to open */opt/stack* or */opt/stack/octavia*."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Next, you should configure the *launch.json*, which contains the run"},{"line_number":116,"context_line":"configurations. Use the following template and adjust it to your needs::"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    {"},{"line_number":119,"context_line":"        \"configurations\": ["}],"source_content_type":"text/x-rst","patch_set":6,"id":"d0b332ce_9cfe2f34","line":116,"range":{"start_line":116,"start_character":71,"end_line":116,"end_character":72},"updated":"2022-03-23 07:54:14.000000000","message":"nit: 2x\u0027:\u0027","commit_id":"c48e1d82df9eae9b6eeae7b0149b910d89a4a47d"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"b369425dd2868c2bddd26b095552f7590f7a968d","unresolved":false,"context_lines":[{"line_number":113,"context_line":"devstack you might want to open */opt/stack* or */opt/stack/octavia*."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Next, you should configure the *launch.json*, which contains the run"},{"line_number":116,"context_line":"configurations. Use the following template and adjust it to your needs::"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    {"},{"line_number":119,"context_line":"        \"configurations\": ["}],"source_content_type":"text/x-rst","patch_set":6,"id":"aa5b9bb9_d7b2551c","line":116,"range":{"start_line":116,"start_character":71,"end_line":116,"end_character":72},"in_reply_to":"0a56c84e_b3165261","updated":"2022-03-23 09:06:49.000000000","message":"I didn\u0027t know that, thanks!","commit_id":"c48e1d82df9eae9b6eeae7b0149b910d89a4a47d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"713e26e5c78c6ac1990ba459d886067d414dc206","unresolved":false,"context_lines":[{"line_number":113,"context_line":"devstack you might want to open */opt/stack* or */opt/stack/octavia*."},{"line_number":114,"context_line":""},{"line_number":115,"context_line":"Next, you should configure the *launch.json*, which contains the run"},{"line_number":116,"context_line":"configurations. Use the following template and adjust it to your needs::"},{"line_number":117,"context_line":""},{"line_number":118,"context_line":"    {"},{"line_number":119,"context_line":"        \"configurations\": ["}],"source_content_type":"text/x-rst","patch_set":6,"id":"0a56c84e_b3165261","line":116,"range":{"start_line":116,"start_character":71,"end_line":116,"end_character":72},"in_reply_to":"d0b332ce_9cfe2f34","updated":"2022-03-23 09:01:51.000000000","message":"That is markup for telling Sphinx to render the following paragraph as code listing. The \u0027::\u0027 gets rendered as a single colon in the output. https://www.sphinx-doc.org/en/1.4.9/markup/code.html","commit_id":"c48e1d82df9eae9b6eeae7b0149b910d89a4a47d"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"c75c0a976af512f7227f3d53f511f134793208b9","unresolved":true,"context_lines":[{"line_number":124,"context_line":"                \"module\": \"octavia.cmd.octavia_worker\","},{"line_number":125,"context_line":"                \"args\": [\"--config-file\", \"/etc/octavia/octavia.conf\"],"},{"line_number":126,"context_line":"                \"console\": \"integratedTerminal\""},{"line_number":127,"context_line":"            },"},{"line_number":128,"context_line":"        ]"},{"line_number":129,"context_line":"    }"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"b8323305_6f9258f8","line":127,"range":{"start_line":127,"start_character":13,"end_line":127,"end_character":14},"updated":"2022-03-23 07:54:14.000000000","message":"need to remove this comma to have a valid json file, perhaps vscode doesn\u0027t care","commit_id":"c48e1d82df9eae9b6eeae7b0149b910d89a4a47d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"713e26e5c78c6ac1990ba459d886067d414dc206","unresolved":false,"context_lines":[{"line_number":124,"context_line":"                \"module\": \"octavia.cmd.octavia_worker\","},{"line_number":125,"context_line":"                \"args\": [\"--config-file\", \"/etc/octavia/octavia.conf\"],"},{"line_number":126,"context_line":"                \"console\": \"integratedTerminal\""},{"line_number":127,"context_line":"            },"},{"line_number":128,"context_line":"        ]"},{"line_number":129,"context_line":"    }"},{"line_number":130,"context_line":""}],"source_content_type":"text/x-rst","patch_set":6,"id":"e8735e22_d71fc22f","line":127,"range":{"start_line":127,"start_character":13,"end_line":127,"end_character":14},"in_reply_to":"b8323305_6f9258f8","updated":"2022-03-23 09:01:51.000000000","message":"I will replace this with the version that VSCode generated for me. I only adjusted the config name and added args.","commit_id":"c48e1d82df9eae9b6eeae7b0149b910d89a4a47d"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"c75c0a976af512f7227f3d53f511f134793208b9","unresolved":true,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Make sure that the correct Python interpreter is selected in the status bar."},{"line_number":132,"context_line":"In a devstack environment the global Python interpreter */usr/bin/python3*"},{"line_number":133,"context_line":"should be the correct one. Now you can start debugging by pressing *F5*."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":".. note:: When running this the first time Visual Studio Code might ask you"},{"line_number":136,"context_line":"    to install the Python debugger extension on the remote, which you must"}],"source_content_type":"text/x-rst","patch_set":6,"id":"1338de39_c97198f1","line":133,"range":{"start_line":133,"start_character":27,"end_line":133,"end_character":66},"updated":"2022-03-23 07:54:14.000000000","message":"should we mention that the systemd-controlled service (devstack@o-cw) must be stopped?","commit_id":"c48e1d82df9eae9b6eeae7b0149b910d89a4a47d"},{"author":{"_account_id":29244,"name":"Gregory Thiemonge","email":"gthiemon@redhat.com","username":"gthiemonge"},"change_message_id":"c75c0a976af512f7227f3d53f511f134793208b9","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Make sure that the correct Python interpreter is selected in the status bar."},{"line_number":132,"context_line":"In a devstack environment the global Python interpreter */usr/bin/python3*"},{"line_number":133,"context_line":"should be the correct one. Now you can start debugging by pressing *F5*."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":".. note:: When running this the first time Visual Studio Code might ask you"},{"line_number":136,"context_line":"    to install the Python debugger extension on the remote, which you must"}],"source_content_type":"text/x-rst","patch_set":6,"id":"6c3901fb_cf39dcbd","line":133,"range":{"start_line":133,"start_character":68,"end_line":133,"end_character":70},"updated":"2022-03-23 07:54:14.000000000","message":"that didn\u0027t work well for me for the first time, vscode opened a prompt asking me which debugging method I would use, and then the name of the python module I would want to debug, then it overwrote the launch.json file with the very same content","commit_id":"c48e1d82df9eae9b6eeae7b0149b910d89a4a47d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"713e26e5c78c6ac1990ba459d886067d414dc206","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Make sure that the correct Python interpreter is selected in the status bar."},{"line_number":132,"context_line":"In a devstack environment the global Python interpreter */usr/bin/python3*"},{"line_number":133,"context_line":"should be the correct one. Now you can start debugging by pressing *F5*."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":".. note:: When running this the first time Visual Studio Code might ask you"},{"line_number":136,"context_line":"    to install the Python debugger extension on the remote, which you must"}],"source_content_type":"text/x-rst","patch_set":6,"id":"737d5826_e708a396","line":133,"range":{"start_line":133,"start_character":27,"end_line":133,"end_character":66},"in_reply_to":"1338de39_c97198f1","updated":"2022-03-23 09:01:51.000000000","message":"I moved the respective note that I added for PyCharm to the common \"Setup\" section.","commit_id":"c48e1d82df9eae9b6eeae7b0149b910d89a4a47d"},{"author":{"_account_id":34429,"name":"Tom Weininger","email":"dienste@weinimo.de","username":"tweining"},"change_message_id":"713e26e5c78c6ac1990ba459d886067d414dc206","unresolved":false,"context_lines":[{"line_number":130,"context_line":""},{"line_number":131,"context_line":"Make sure that the correct Python interpreter is selected in the status bar."},{"line_number":132,"context_line":"In a devstack environment the global Python interpreter */usr/bin/python3*"},{"line_number":133,"context_line":"should be the correct one. Now you can start debugging by pressing *F5*."},{"line_number":134,"context_line":""},{"line_number":135,"context_line":".. note:: When running this the first time Visual Studio Code might ask you"},{"line_number":136,"context_line":"    to install the Python debugger extension on the remote, which you must"}],"source_content_type":"text/x-rst","patch_set":6,"id":"e876d29f_1668ca96","line":133,"range":{"start_line":133,"start_character":68,"end_line":133,"end_character":70},"in_reply_to":"6c3901fb_cf39dcbd","updated":"2022-03-23 09:01:51.000000000","message":"I\u0027m not sure why. I deleted my launch.json and followed the guide. For me it worked. It just ran the config and didn\u0027t open any prompt.","commit_id":"c48e1d82df9eae9b6eeae7b0149b910d89a4a47d"}]}
