)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"9bf39965fe6bc684ca6b1a7fe178f0bc6d3cf0bd","unresolved":true,"context_lines":[{"line_number":11,"context_line":"prometheus rule files are checked by promtool."},{"line_number":12,"context_line":"If the syntax of them are invalid, the test fails."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This check is disabled by default and enabled when"},{"line_number":15,"context_line":"CONF.prometheus_plugin.test_rule_with_promtool"},{"line_number":16,"context_line":"is true."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"10eaa828_cbd4f363","line":14,"updated":"2022-11-30 12:22:08.000000000","message":"Is this check function useful for users?\nIf this function is used for developers only, IMO, it might be good to implement the codes in functional test, not in tacker main codes.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"60bfc6c6413f02cd4f46a03458793cfc8e89133b","unresolved":true,"context_lines":[{"line_number":11,"context_line":"prometheus rule files are checked by promtool."},{"line_number":12,"context_line":"If the syntax of them are invalid, the test fails."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This check is disabled by default and enabled when"},{"line_number":15,"context_line":"CONF.prometheus_plugin.test_rule_with_promtool"},{"line_number":16,"context_line":"is true."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5e3642db_981ee30b","line":14,"in_reply_to":"10eaa828_cbd4f363","updated":"2022-12-05 14:11:45.000000000","message":"I think it is also useful in case that a operator copies this plugin and make his original prometheus plugin. Especially, promQL statement is high probably to be modified by operators. In that case, this function would be useful.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"24d829298920b35acd19822be8a57d8fccbd9825","unresolved":false,"context_lines":[{"line_number":11,"context_line":"prometheus rule files are checked by promtool."},{"line_number":12,"context_line":"If the syntax of them are invalid, the test fails."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"This check is disabled by default and enabled when"},{"line_number":15,"context_line":"CONF.prometheus_plugin.test_rule_with_promtool"},{"line_number":16,"context_line":"is true."},{"line_number":17,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":10,"id":"5b92f51a_3df1bb58","line":14,"in_reply_to":"5e3642db_981ee30b","updated":"2022-12-15 00:57:58.000000000","message":"Thank you for your comments.\nI understood it\u0027s useful for operators who modify their original promQL.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"9de519406c35d80bca0ff56d77046c89470f25d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"f586a822_4cea6a3d","updated":"2022-10-26 04:50:58.000000000","message":"Please kindly review my patch.","commit_id":"dbfae5959f324767b0492d5076fed2075d2d7b5a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8a220f59f9f2a826a0ca9c2bcfd5f2884be0e35b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"cb7a18b3_d595d4ea","updated":"2022-11-02 05:21:37.000000000","message":"Thank you for your great work. Please kindly check my comments.","commit_id":"dbfae5959f324767b0492d5076fed2075d2d7b5a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"929d2bfff3ea964eabd0ede27375cb68a1cd5421","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"079b9ab3_664b6853","updated":"2022-11-09 10:14:53.000000000","message":"Thank you for your review.","commit_id":"5e61163de3c75c4604dffa508699266e2d97b61f"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d139d10d0f45a5a8c9cb206030728a2b3f4c53a9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"8acb8daa_dfe152c4","updated":"2022-11-09 05:24:02.000000000","message":"recheck  Operation failed. state: FAILED_TEMP","commit_id":"5e61163de3c75c4604dffa508699266e2d97b61f"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"3d99781f11b9fe1a0fe8220069c575cb00ffdbf2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0dbeea5c_70e5561f","updated":"2022-11-09 00:17:06.000000000","message":"recheck \"StackOperationFailed: Resource CREATE failed\"","commit_id":"5e61163de3c75c4604dffa508699266e2d97b61f"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"7af73d4b76831cc178b3feb710b7766757f5d6a8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"c8ce4f52_53f2ab9e","updated":"2022-11-08 07:28:25.000000000","message":"recheck unexprected error @test_vnflcm_basic","commit_id":"5e61163de3c75c4604dffa508699266e2d97b61f"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"4e010b59d49a81d11ea0bdcae40a4a9882bd68db","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0575fcc7_ac282d6f","updated":"2022-11-08 00:13:38.000000000","message":"recheck vnf deletion timed out.","commit_id":"5e61163de3c75c4604dffa508699266e2d97b61f"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"2b367a09e19693fde460a145bf6301f2c8e80a92","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"0f5cb85f_2a325176","updated":"2022-11-08 00:11:06.000000000","message":"recheck, vnf deletion timed out.","commit_id":"5e61163de3c75c4604dffa508699266e2d97b61f"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"f300c0459886fb284f6d01e1f07d195992615e3f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"122a3836_6f2ec53a","updated":"2022-11-13 23:47:25.000000000","message":"recheck infra failure","commit_id":"f5b3ebb02cf4e5ac8b331a5f2db0a50ed5b2d018"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"a14b951c0ab9c5b516d213651b9da362dd857788","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"f913dd79_36233dd0","updated":"2022-11-12 04:39:37.000000000","message":"recheck tackerclient error","commit_id":"f5b3ebb02cf4e5ac8b331a5f2db0a50ed5b2d018"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"69bb7946fdf6439aeffaa1db12faa189be803fff","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"0e7b3274_a4204ba2","updated":"2022-11-17 06:37:34.000000000","message":"Are there any related Blueprints?\nIf there is, please add it to Topic and CommitMessage.\nIf not, please set an appropriate topic.","commit_id":"52dd4a3bb137d85eb6b0b2fd2813d4a56c319807"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"43ebbef2152ab3ee1f67a076eca07f39c7546164","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"18fe7383_48d5afca","updated":"2022-11-16 09:33:32.000000000","message":"recheck test_vnf_alarm_maintenance","commit_id":"52dd4a3bb137d85eb6b0b2fd2813d4a56c319807"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"6cb51d062ac21d9a5a25040f0696d6c318092856","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":7,"id":"fa43f7d8_23ddf629","in_reply_to":"0e7b3274_a4204ba2","updated":"2022-11-17 10:47:14.000000000","message":"Commit message was updated.","commit_id":"52dd4a3bb137d85eb6b0b2fd2813d4a56c319807"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"d61f5d11400d09247fe5b010cd000fc6d243ea22","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"803f96c9_cc0fb7fc","in_reply_to":"fa43f7d8_23ddf629","updated":"2022-11-18 01:09:21.000000000","message":"Done","commit_id":"52dd4a3bb137d85eb6b0b2fd2813d4a56c319807"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"6cb51d062ac21d9a5a25040f0696d6c318092856","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"3538e172_843729fb","updated":"2022-11-17 10:47:14.000000000","message":"Thank you very much for your review.","commit_id":"33546dde82ba56eb120c64c28dc6ac87549fa8ee"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"168295d35fae8d7ed41f7ed1b0d9d6b2036e1214","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"cc8d0f38_f952fe6c","updated":"2022-11-21 07:19:48.000000000","message":"Thank you for your review.","commit_id":"4aa8a2d4cb5ca8d10d8c66a32ce30837b2d05a87"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"cac898f1c4a373f9e930bfca61550e104915cf54","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"1f9890bf_e1a3e36e","updated":"2022-11-21 10:36:15.000000000","message":"recheck\nNov 21 07:34:06.488534 ubuntu-focal-rax-iad-0032146107 tacker-conductor[51393]: 2022-11-21 07:34:06.488 WARNING tacker.objects.vnfd [req-27a7facd-a148-4f06-8d5d-7d459368b80c nfv_user nfv] delete vnfd failed: oslo_db.exception.DBReferenceError: (pymysql.err.IntegrityError) (1451, \u0027Cannot delete or update a parent row: a foreign key constraint fails (`tacker`.`vnf`, CONSTRAINT `vnf_ibfk_1` FOREIGN KEY (`vnfd_id`) REFERENCES `vnfd` (`id`))\u0027)\n","commit_id":"4aa8a2d4cb5ca8d10d8c66a32ce30837b2d05a87"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"5e8d9f6019d70afce701c051ac5d588c6762081a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"b51eaa46_d7be22e9","updated":"2022-11-22 00:38:31.000000000","message":"recheck Nov 17 08:04:54.822710 ubuntu-focal-ovh-gra1-0032080919 tacker-conductor[51330]: 2022-11-17 08:04:54.822 DEBUG tacker.objects.vnf_package [req-dcd5065b-feff-4b1c-a752-3d351eaa8a47 nfv_user nfv] Lazy-loading \u0027vnfd\u0027 on VnfPackage id a24a3fc4-1ed7-412e-ad9f-82314055f146 obj_load_attr /opt/stack/tacker/tacker/objects/vnf_package.py:482","commit_id":"4aa8a2d4cb5ca8d10d8c66a32ce30837b2d05a87"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"337aa49216d12262595041529bbd38c962205e61","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"04ae4d5a_f697d7f2","updated":"2022-11-28 01:02:40.000000000","message":"LGTM","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"def467f9856b9001ad3e3381e5192c2b273c77e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a9e80889_93cb9f49","updated":"2022-11-30 06:56:05.000000000","message":"Thank you for the patch.\nPlease kindly find my comments.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"a109f055ae40c9c9e4744d9d98e3699bdd3302f2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"9b0e6c80_fe769f2b","updated":"2022-11-25 14:16:40.000000000","message":"Thank you very much for your comment.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"8b4bea283c37a4768f237f72e1d8d4b06020580e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"8f71853a_f369d0ad","updated":"2022-11-25 14:15:25.000000000","message":"recheck\n\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]: 2022-11-25 07:54:20.469 WARNING tacker.conductor.conductor_server [req-4074cc48-d775-4677-94df-7d0f6ab6925a nfv_user nfv] Traceback (most recent call last):\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:   File \"/opt/stack/tacker/tacker/vnflcm/vnflcm_driver.py\", line 410, in _instantiate_vnf\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:     self._vnf_manager.invoke(\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:   File \"/opt/stack/tacker/tacker/common/driver_manager.py\", line 71, in invoke\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:     return getattr(driver, method_name)(**kwargs)\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:   File \"/opt/stack/tacker/tacker/common/log.py\", line 35, in wrapper\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:     return method(*args, **kwargs)\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:   File \"/opt/stack/tacker/tacker/vnfm/infra_drivers/openstack/openstack.py\", line 611, in create_wait\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:     stack \u003d self._wait_until_stack_ready(\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:   File \"/opt/stack/tacker/tacker/vnfm/infra_drivers/openstack/openstack.py\", line 664, in _wait_until_stack_ready\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:     raise exception_class(reason\u003derror_reason)\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]: tacker.extensions.vnfm.VNFCreateWaitFailed: VNF Create Resource CREATE failed: ClientException: resources.VDU2_scale.resources.k4s2fvp3qqbe.resources.VDU2: Unknown Error (HTTP 500)\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]: During handling of the above exception, another exception occurred:\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]: Traceback (most recent call last):\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:   File \"/opt/stack/tacker/tacker/conductor/conductor_server.py\", line 2010, in instantiate\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:     self.vnflcm_driver.instantiate_vnf(context, vnf_instance,\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:   File \"/opt/stack/tacker/tacker/common/log.py\", line 35, in wrapper\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:     return method(*args, **kwargs)\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:   File \"/opt/stack/tacker/tacker/vnflcm/vnflcm_driver.py\", line 653, in instantiate_vnf\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:     raise exc\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:   File \"/opt/stack/tacker/tacker/vnflcm/vnflcm_driver.py\", line 647, in instantiate_vnf\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:     self._instantiate_vnf(context, vnf_instance, vnf_dict,\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:   File \"/opt/stack/tacker/tacker/vnflcm/vnflcm_driver.py\", line 424, in _instantiate_vnf\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]:     raise exceptions.VnfInstantiationWaitFailed(\nNov 25 07:54:20.469625 ubuntu-focal-rax-iad-0032250006 tacker-conductor[57282]: tacker.common.exceptions.VnfInstantiationWaitFailed: Vnf instantiation wait failed for vnf 2ac8cedf-98d4-441a-8b58-87cd66568ab9, error: VNF Create Resource CREATE failed: ClientException: resources.VDU2_scale.resources.k4s2fvp3qqbe.resources.VDU2: Unknown Error (HTTP 500)","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"f3452683a9d380acef92983840867871b82da195","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"6e730aa9_3337a328","updated":"2022-11-26 06:57:57.000000000","message":"recheck\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 ERROR tacker.sol_refactored.conductor.conductor_v2 [req-7db784d7-b9cc-456b-862b-d08312759b93 nfv_user nfv] PROCESSING INSTANTIATE failed: tacker.sol_refactored.common.exceptions.StackOperationFailed: Resource CREATE failed: BadRequest: resources.VDU1-0.resources.VDU1: Port 2b034a0c-f475-4807-85dd-791d50f2c2c4 requires a FixedIP in order to be used. (HTTP 400) (Request-ID: req-0ce280a2-6a86-49e7-a7cf-3b0bf52f62f8)\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2 Traceback (most recent call last):\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2   File \"/opt/stack/tacker/tacker/sol_refactored/conductor/conductor_v2.py\", line 179, in _start_lcm_op\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2     self.vnflcm_driver.process(context, lcmocc, inst, grant_req,\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2   File \"/opt/stack/tacker/tacker/sol_refactored/conductor/vnflcm_driver_v2.py\", line 237, in process\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2     method(context, lcmocc, inst, grant_req, grant, vnfd)\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2   File \"/opt/stack/tacker/tacker/sol_refactored/conductor/vnflcm_driver_v2.py\", line 445, in instantiate_process\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2     driver.instantiate(req, inst, grant_req, grant, vnfd)\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2   File \"/opt/stack/tacker/tacker/sol_refactored/infra_drivers/openstack/openstack.py\", line 100, in instantiate\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2     stack_id \u003d heat_client.create_stack(fields)\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2   File \"/opt/stack/tacker/tacker/sol_refactored/infra_drivers/openstack/heat_utils.py\", line 49, in create_stack\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2     self.wait_stack_create(\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2   File \"/opt/stack/tacker/tacker/sol_refactored/infra_drivers/openstack/heat_utils.py\", line 127, in wait_stack_create\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2     self._wait_completion(stack_name, \"Stack create\",\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2   File \"/opt/stack/tacker/tacker/sol_refactored/infra_drivers/openstack/heat_utils.py\", line 124, in _wait_completion\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2     timer.start(interval\u003dCHECK_INTERVAL).wait()\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2   File \"/usr/local/lib/python3.8/dist-packages/eventlet/event.py\", line 125, in wait\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2     result \u003d hub.switch()\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2   File \"/usr/local/lib/python3.8/dist-packages/eventlet/hubs/hub.py\", line 313, in switch\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2     return self.greenlet.switch()\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2   File \"/usr/local/lib/python3.8/dist-packages/oslo_service/loopingcall.py\", line 150, in _run_loop\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2     result \u003d func(*self.args, **self.kw)\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2   File \"/opt/stack/tacker/tacker/sol_refactored/infra_drivers/openstack/heat_utils.py\", line 112, in _check_status\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2     raise sol_ex.StackOperationFailed(sol_title\u003dsol_title,\nNov 26 03:51:54.945377 ubuntu-focal-rax-iad-0032270216 tacker-conductor[57144]: 2022-11-26 03:51:54.942 57144 ERROR tacker.sol_refactored.conductor.conductor_v2 tacker.sol_refactored.common.exceptions.S","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"b9ee08a9660f2e5e57120602d03e891ee6dabb81","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"ac1e94c7_9335ff9d","updated":"2022-11-26 02:38:24.000000000","message":"recheck AssertionError: \u0027vdu1-update-5b9d95d894-b9gt8\u0027 \u003d\u003d \u0027vdu1-update-5b9d95d894-b9gt8\u0027","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"2e9d7eff3a63b9b4ef91a23be7a00cefe8713991","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"14f74a91_184d64b0","updated":"2022-12-01 04:55:59.000000000","message":"Let me confirm why this update includes a zip file even other samples doesn\u0027t so. As a basic policy we\u0027ve agreed before, we don\u0027t include compressed file without any specific reason. Thanks.","commit_id":"16bd173822a2bff9eafc1227fb462c98916ccfbd"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"9bf39965fe6bc684ca6b1a7fe178f0bc6d3cf0bd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"fb75425c_7d9e6725","updated":"2022-11-30 12:22:08.000000000","message":"Thank you for your works. Please kindly check my comments.","commit_id":"16bd173822a2bff9eafc1227fb462c98916ccfbd"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"60bfc6c6413f02cd4f46a03458793cfc8e89133b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"7467fea5_1a15511a","in_reply_to":"14f74a91_184d64b0","updated":"2022-12-05 14:11:45.000000000","message":"Thank you for this information, I didnt know about past discussion. I would like to fix it in another patch.","commit_id":"16bd173822a2bff9eafc1227fb462c98916ccfbd"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f4a4a1af43be19f0b652360c118da56b2a4905e2","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"fa934774_38a2c315","updated":"2022-12-09 21:42:03.000000000","message":"Thank you for re-work.\n\nsorry, I have a few more comments on the comments of others.","commit_id":"a08866eb911177a2eb14b9eb56c263bcdd7f74a1"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"60bfc6c6413f02cd4f46a03458793cfc8e89133b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"adff887a_fd322878","updated":"2022-12-05 14:11:45.000000000","message":"Thank you very much for your review.","commit_id":"a08866eb911177a2eb14b9eb56c263bcdd7f74a1"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"0ae93a8c5cf0942d59173b9ac2c997b5e96be6a5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"868190ff_6081584a","updated":"2022-12-07 04:56:39.000000000","message":"recheck https://forge.etsi.org/ is temporally down.","commit_id":"a08866eb911177a2eb14b9eb56c263bcdd7f74a1"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"86ac000e6697546068ab71dd8ae2b809ee91d663","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"352c1636_ab4d894c","updated":"2022-12-06 00:24:05.000000000","message":"recheck tacker.sol_refactored.common.exceptions.StackOperationFailed: Resource CREATE failed: resources.4dmgbzi6jiue: resources.VDU1_scale_group.Property error: resources.VDU1_CP1.properties.network: Error validating value \u0027errornetwork\u0027: Unable to find network with name or id \u0027errornetwork\u0027","commit_id":"a08866eb911177a2eb14b9eb56c263bcdd7f74a1"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"355b10ae1bdb16e0551c61500aa953e0f7921fa8","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"6ab1d327_0ff4323f","updated":"2022-12-15 04:26:11.000000000","message":"Thank you for re-work. I found no-action comment. Please kindly check it.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"6280082a5bb2904eefd7152fb85b693674f72ba6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"a5f24eec_848a81a4","updated":"2022-12-23 07:40:33.000000000","message":"Thank you for your comment.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"b2bd46e4ba26506f5a2d5990399fd6eecd2e64e0","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"6bf05c16_b073f91f","updated":"2022-12-22 04:28:57.000000000","message":"Thank you for your great work. However, I would like you to check my last comment before a patch marge.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"24d829298920b35acd19822be8a57d8fccbd9825","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"70aa2991_ae1ad4f3","updated":"2022-12-15 00:57:58.000000000","message":"Thank you for your re-work. I resolve some comments.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"dc7e194ea284ba89defb5230844da5b72fafca27","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"1263f8da_9919101b","updated":"2022-12-23 06:55:58.000000000","message":"Thank you for your reply. Please check my reply.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"e48a656540f32fb5efc2d9a4eb599dc23ca61973","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"b9d99176_e89393e3","updated":"2022-12-15 05:08:47.000000000","message":"Thank you for your rework. LGTM!","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"8f09c0196cddeb4c195e76710b1d7ad136600fe6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"0767681c_eb2f9401","updated":"2022-12-23 09:43:16.000000000","message":"Thank you very much for your comment.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"bad9a76f717417f4df193c1bd90651445c81213b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"3d88ac68_a6efb7d2","updated":"2022-12-23 06:28:27.000000000","message":"Thank you very much for your comment.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"3ab23357bee4bf34e25ee017b92d7a326510b20a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"4c4808b7_2b843af9","updated":"2022-12-10 06:58:51.000000000","message":"Thank you very much for your review.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"170a7430d9d21c8786ab894ba54d3ce890774444","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"85257f29_b9624808","updated":"2022-12-18 03:09:36.000000000","message":"Thank you very much for your review.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"07776e9a5c186a6e2ee5874f0f75516309937980","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"aaf6b97b_0f6c9112","updated":"2022-12-16 05:39:56.000000000","message":"Thank you, LGTM.\nbut it appears that there are still threads under the discussion, so I will merge them if there are no problems.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"8f37c43035c5bac786d1c2dccd86b637f6900152","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"c450fee1_e365faf0","updated":"2022-12-22 04:20:09.000000000","message":"thank you for re-work. lgmt!","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"3cb8fdc6af84212364260998f1053b9a06a92b45","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"d12a6292_95caa567","updated":"2023-01-12 06:23:23.000000000","message":"Thank you for re-work and discussion. LGTM!","commit_id":"ba036ffe2b7fb9ce5ca69433baf68a445816f108"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f3108b762d529f1ce60be6a4943fde26f4a68889","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"6ae442c6_5b21b205","updated":"2023-01-04 03:43:28.000000000","message":"Thank you for re-work and discussion. LGTM.","commit_id":"ba036ffe2b7fb9ce5ca69433baf68a445816f108"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"86b7359ea66598db77789e23cce3b0e0a0efb29c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"f8b0458f_68029a80","updated":"2022-12-27 22:39:00.000000000","message":"Thank you very much for your review.","commit_id":"ba036ffe2b7fb9ce5ca69433baf68a445816f108"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"1976fd9f293e2774f054e12b57a07b38a25e6f8b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"b22a08ab_8eb8f1cf","updated":"2023-01-06 00:00:13.000000000","message":"recheck tox4 problem might be fixed.","commit_id":"ba036ffe2b7fb9ce5ca69433baf68a445816f108"}],"doc/source/user/prometheus_plugin_use_case_guide.rst":[{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"9bf39965fe6bc684ca6b1a7fe178f0bc6d3cf0bd","unresolved":true,"context_lines":[{"line_number":243,"context_line":"- The directory indicated by \"rule_files\" setting of prometheus"},{"line_number":244,"context_line":"  server config should be accessible by SSH."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"Supported versions"},{"line_number":247,"context_line":"------------------"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"- Prometheus: 2.37"}],"source_content_type":"text/x-rst","patch_set":10,"id":"3571d98c_f86be978","line":246,"updated":"2022-11-30 12:22:08.000000000","message":"IMO, It is better to describe \"Tacker versions\" such as \"Zed release.\"\n(i.e.)\"Supported versions (Tacker Zed release.)\"","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"60bfc6c6413f02cd4f46a03458793cfc8e89133b","unresolved":true,"context_lines":[{"line_number":243,"context_line":"- The directory indicated by \"rule_files\" setting of prometheus"},{"line_number":244,"context_line":"  server config should be accessible by SSH."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"Supported versions"},{"line_number":247,"context_line":"------------------"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"- Prometheus: 2.37"}],"source_content_type":"text/x-rst","patch_set":10,"id":"c952b583_5af85120","line":246,"in_reply_to":"2b19e1f2_7b520a12","updated":"2022-12-05 14:11:45.000000000","message":"Fixed in PS12.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"2e9d7eff3a63b9b4ef91a23be7a00cefe8713991","unresolved":true,"context_lines":[{"line_number":243,"context_line":"- The directory indicated by \"rule_files\" setting of prometheus"},{"line_number":244,"context_line":"  server config should be accessible by SSH."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"Supported versions"},{"line_number":247,"context_line":"------------------"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"- Prometheus: 2.37"}],"source_content_type":"text/x-rst","patch_set":10,"id":"2b19e1f2_7b520a12","line":246,"in_reply_to":"3571d98c_f86be978","updated":"2022-12-01 04:55:59.000000000","message":"+1","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"24d829298920b35acd19822be8a57d8fccbd9825","unresolved":false,"context_lines":[{"line_number":243,"context_line":"- The directory indicated by \"rule_files\" setting of prometheus"},{"line_number":244,"context_line":"  server config should be accessible by SSH."},{"line_number":245,"context_line":""},{"line_number":246,"context_line":"Supported versions"},{"line_number":247,"context_line":"------------------"},{"line_number":248,"context_line":""},{"line_number":249,"context_line":"- Prometheus: 2.37"}],"source_content_type":"text/x-rst","patch_set":10,"id":"2e553ba0_c6e7d046","line":246,"in_reply_to":"c952b583_5af85120","updated":"2022-12-15 00:57:58.000000000","message":"Ack","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"}],"tacker/sol_refactored/common/prometheus_plugin.py":[{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8a220f59f9f2a826a0ca9c2bcfd5f2884be0e35b","unresolved":true,"context_lines":[{"line_number":535,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":536,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":537,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":538,"context_line":"        if resp.status_code !\u003d 202:"},{"line_number":539,"context_line":"            LOG.error(\"reloading request to prometheus is failed: %d.\","},{"line_number":540,"context_line":"                      resp.status_code)"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"    def _upload_rule(self, rule_group, host, port, user, password, path,"},{"line_number":543,"context_line":"                     pm_job_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"bffa561c_5f27fbc3","line":540,"range":{"start_line":538,"start_character":0,"end_line":540,"end_character":39},"updated":"2022-11-02 05:21:37.000000000","message":"As I mentioned in L602-617, I think an exception should be raised in this situation.","commit_id":"dbfae5959f324767b0492d5076fed2075d2d7b5a"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"355b10ae1bdb16e0551c61500aa953e0f7921fa8","unresolved":true,"context_lines":[{"line_number":535,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":536,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":537,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":538,"context_line":"        if resp.status_code !\u003d 202:"},{"line_number":539,"context_line":"            LOG.error(\"reloading request to prometheus is failed: %d.\","},{"line_number":540,"context_line":"                      resp.status_code)"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"    def _upload_rule(self, rule_group, host, port, user, password, path,"},{"line_number":543,"context_line":"                     pm_job_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"dab9842f_b4d27eac","line":540,"range":{"start_line":538,"start_character":0,"end_line":540,"end_character":39},"in_reply_to":"bffa561c_5f27fbc3","updated":"2022-12-15 04:26:11.000000000","message":"Could you fix it or any comments?","commit_id":"dbfae5959f324767b0492d5076fed2075d2d7b5a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"e48a656540f32fb5efc2d9a4eb599dc23ca61973","unresolved":false,"context_lines":[{"line_number":535,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":536,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":537,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":538,"context_line":"        if resp.status_code !\u003d 202:"},{"line_number":539,"context_line":"            LOG.error(\"reloading request to prometheus is failed: %d.\","},{"line_number":540,"context_line":"                      resp.status_code)"},{"line_number":541,"context_line":""},{"line_number":542,"context_line":"    def _upload_rule(self, rule_group, host, port, user, password, path,"},{"line_number":543,"context_line":"                     pm_job_id):"}],"source_content_type":"text/x-python","patch_set":2,"id":"9c1f0081_42f52fce","line":540,"range":{"start_line":538,"start_character":0,"end_line":540,"end_character":39},"in_reply_to":"dab9842f_b4d27eac","updated":"2022-12-15 05:08:47.000000000","message":"Done","commit_id":"dbfae5959f324767b0492d5076fed2075d2d7b5a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8a220f59f9f2a826a0ca9c2bcfd5f2884be0e35b","unresolved":true,"context_lines":[{"line_number":563,"context_line":"            _, stdout, _ \u003d client.exec_command(command)"},{"line_number":564,"context_line":"            if stdout.channel.recv_exit_status() !\u003d 0:"},{"line_number":565,"context_line":"                raise sol_ex.PrometheusPluginError("},{"line_number":566,"context_line":"                    \"Rule file validation with promtool failed.\")"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    def get_access_info(self, pm_job):"},{"line_number":569,"context_line":"        target_list \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"72173c23_b64f08c4","line":566,"updated":"2022-11-02 05:21:37.000000000","message":"Can the detailed error messages be obtained? If syntax errors occur, promtool shows the detailed error messages on stderr. So please consider obtaining those messages from stderr and put them into exception messages if we can.","commit_id":"dbfae5959f324767b0492d5076fed2075d2d7b5a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"929d2bfff3ea964eabd0ede27375cb68a1cd5421","unresolved":true,"context_lines":[{"line_number":563,"context_line":"            _, stdout, _ \u003d client.exec_command(command)"},{"line_number":564,"context_line":"            if stdout.channel.recv_exit_status() !\u003d 0:"},{"line_number":565,"context_line":"                raise sol_ex.PrometheusPluginError("},{"line_number":566,"context_line":"                    \"Rule file validation with promtool failed.\")"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    def get_access_info(self, pm_job):"},{"line_number":569,"context_line":"        target_list \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"8a198b72_3d8fcc54","line":566,"in_reply_to":"72173c23_b64f08c4","updated":"2022-11-09 10:14:53.000000000","message":"Fixed. Stderr can be large message, so just logging it.","commit_id":"dbfae5959f324767b0492d5076fed2075d2d7b5a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"e48a656540f32fb5efc2d9a4eb599dc23ca61973","unresolved":false,"context_lines":[{"line_number":563,"context_line":"            _, stdout, _ \u003d client.exec_command(command)"},{"line_number":564,"context_line":"            if stdout.channel.recv_exit_status() !\u003d 0:"},{"line_number":565,"context_line":"                raise sol_ex.PrometheusPluginError("},{"line_number":566,"context_line":"                    \"Rule file validation with promtool failed.\")"},{"line_number":567,"context_line":""},{"line_number":568,"context_line":"    def get_access_info(self, pm_job):"},{"line_number":569,"context_line":"        target_list \u003d []"}],"source_content_type":"text/x-python","patch_set":2,"id":"2ce30a82_ef0c8cf0","line":566,"in_reply_to":"8a198b72_3d8fcc54","updated":"2022-12-15 05:08:47.000000000","message":"Done","commit_id":"dbfae5959f324767b0492d5076fed2075d2d7b5a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8a220f59f9f2a826a0ca9c2bcfd5f2884be0e35b","unresolved":true,"context_lines":[{"line_number":599,"context_line":""},{"line_number":600,"context_line":"    def upload_rules("},{"line_number":601,"context_line":"            self, context, target_list, reload_list, rule_group, pm_job):"},{"line_number":602,"context_line":"        upload_success \u003d False"},{"line_number":603,"context_line":"        try:"},{"line_number":604,"context_line":"            for info in target_list:"},{"line_number":605,"context_line":"                self._upload_rule("},{"line_number":606,"context_line":"                    rule_group, info[\u0027host\u0027], info[\u0027port\u0027], info[\u0027user\u0027],"},{"line_number":607,"context_line":"                    info[\u0027password\u0027], info[\u0027path\u0027], pm_job.id)"},{"line_number":608,"context_line":"            for uri in reload_list:"},{"line_number":609,"context_line":"                self.reload_prom_server(context, uri)"},{"line_number":610,"context_line":"            upload_success \u003d True"},{"line_number":611,"context_line":"        finally:"},{"line_number":612,"context_line":"            # delete rule files if error."},{"line_number":613,"context_line":"            if not upload_success:"},{"line_number":614,"context_line":"                for info in target_list:"},{"line_number":615,"context_line":"                    self._delete_rule(info[\u0027host\u0027], info[\u0027port\u0027],"},{"line_number":616,"context_line":"                        info[\u0027user\u0027], info[\u0027password\u0027], info[\u0027path\u0027],"},{"line_number":617,"context_line":"                        pm_job.id)"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"    def get_vnf_instances(self, context, pm_job):"},{"line_number":620,"context_line":"        object_instance_ids \u003d list(set(pm_job.objectInstanceIds))"}],"source_content_type":"text/x-python","patch_set":2,"id":"0c5ff18d_f5264f0b","line":617,"range":{"start_line":602,"start_character":0,"end_line":617,"end_character":34},"updated":"2022-11-02 05:21:37.000000000","message":"Please avoid using try clause without except clause.\n\nFinally clause uses flag variable defined in try clause. I think deleting rule files should be triggered by exceptions raised from `_upload_rule` and `reload_prom_server` methods.\n\nMoreover, `_upload_rule` method raises PrometheusPluginError if rule validation fails, but `reload_prom_server` does not have raise statement even if reload requests fail (situation such as syntax error of other rule files in target prometheus servers).\n\nTherefore, I think the below seems to be better in this context:\n\n```\n        try:\n            for info in target_list:\n                self._upload_rule(\n                    rule_group, info[\u0027host\u0027], info[\u0027port\u0027], info[\u0027user\u0027],\n                    info[\u0027password\u0027], info[\u0027path\u0027], pm_job.id)\n            for uri in reload_list:\n                self.reload_prom_server(context, uri)\n        except (sol_ex.PrometheusPluginError, \u003cException of reload\u003e):\n            # delete rule files if error.\n            for info in target_list:\n                self._delete_rule(info[\u0027host\u0027], info[\u0027port\u0027],\n                    info[\u0027user\u0027], info[\u0027password\u0027], info[\u0027path\u0027],\n                    pm_job.id)\n```","commit_id":"dbfae5959f324767b0492d5076fed2075d2d7b5a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"929d2bfff3ea964eabd0ede27375cb68a1cd5421","unresolved":true,"context_lines":[{"line_number":599,"context_line":""},{"line_number":600,"context_line":"    def upload_rules("},{"line_number":601,"context_line":"            self, context, target_list, reload_list, rule_group, pm_job):"},{"line_number":602,"context_line":"        upload_success \u003d False"},{"line_number":603,"context_line":"        try:"},{"line_number":604,"context_line":"            for info in target_list:"},{"line_number":605,"context_line":"                self._upload_rule("},{"line_number":606,"context_line":"                    rule_group, info[\u0027host\u0027], info[\u0027port\u0027], info[\u0027user\u0027],"},{"line_number":607,"context_line":"                    info[\u0027password\u0027], info[\u0027path\u0027], pm_job.id)"},{"line_number":608,"context_line":"            for uri in reload_list:"},{"line_number":609,"context_line":"                self.reload_prom_server(context, uri)"},{"line_number":610,"context_line":"            upload_success \u003d True"},{"line_number":611,"context_line":"        finally:"},{"line_number":612,"context_line":"            # delete rule files if error."},{"line_number":613,"context_line":"            if not upload_success:"},{"line_number":614,"context_line":"                for info in target_list:"},{"line_number":615,"context_line":"                    self._delete_rule(info[\u0027host\u0027], info[\u0027port\u0027],"},{"line_number":616,"context_line":"                        info[\u0027user\u0027], info[\u0027password\u0027], info[\u0027path\u0027],"},{"line_number":617,"context_line":"                        pm_job.id)"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"    def get_vnf_instances(self, context, pm_job):"},{"line_number":620,"context_line":"        object_instance_ids \u003d list(set(pm_job.objectInstanceIds))"}],"source_content_type":"text/x-python","patch_set":2,"id":"d706776d_db01ab94","line":617,"range":{"start_line":602,"start_character":0,"end_line":617,"end_character":34},"in_reply_to":"0c5ff18d_f5264f0b","updated":"2022-11-09 10:14:53.000000000","message":"Fixed.","commit_id":"dbfae5959f324767b0492d5076fed2075d2d7b5a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"e48a656540f32fb5efc2d9a4eb599dc23ca61973","unresolved":false,"context_lines":[{"line_number":599,"context_line":""},{"line_number":600,"context_line":"    def upload_rules("},{"line_number":601,"context_line":"            self, context, target_list, reload_list, rule_group, pm_job):"},{"line_number":602,"context_line":"        upload_success \u003d False"},{"line_number":603,"context_line":"        try:"},{"line_number":604,"context_line":"            for info in target_list:"},{"line_number":605,"context_line":"                self._upload_rule("},{"line_number":606,"context_line":"                    rule_group, info[\u0027host\u0027], info[\u0027port\u0027], info[\u0027user\u0027],"},{"line_number":607,"context_line":"                    info[\u0027password\u0027], info[\u0027path\u0027], pm_job.id)"},{"line_number":608,"context_line":"            for uri in reload_list:"},{"line_number":609,"context_line":"                self.reload_prom_server(context, uri)"},{"line_number":610,"context_line":"            upload_success \u003d True"},{"line_number":611,"context_line":"        finally:"},{"line_number":612,"context_line":"            # delete rule files if error."},{"line_number":613,"context_line":"            if not upload_success:"},{"line_number":614,"context_line":"                for info in target_list:"},{"line_number":615,"context_line":"                    self._delete_rule(info[\u0027host\u0027], info[\u0027port\u0027],"},{"line_number":616,"context_line":"                        info[\u0027user\u0027], info[\u0027password\u0027], info[\u0027path\u0027],"},{"line_number":617,"context_line":"                        pm_job.id)"},{"line_number":618,"context_line":""},{"line_number":619,"context_line":"    def get_vnf_instances(self, context, pm_job):"},{"line_number":620,"context_line":"        object_instance_ids \u003d list(set(pm_job.objectInstanceIds))"}],"source_content_type":"text/x-python","patch_set":2,"id":"4b12b163_dd6c01b1","line":617,"range":{"start_line":602,"start_character":0,"end_line":617,"end_character":34},"in_reply_to":"d706776d_db01ab94","updated":"2022-12-15 05:08:47.000000000","message":"Done","commit_id":"dbfae5959f324767b0492d5076fed2075d2d7b5a"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"df559e3a6a8ab09ee079d26464a9c6cb6e451698","unresolved":true,"context_lines":[{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":"import tempfile"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from keystoneauth1 import exceptions as kstn_ex"},{"line_number":25,"context_line":"from oslo_log import log as logging"},{"line_number":26,"context_line":"from oslo_utils import uuidutils"},{"line_number":27,"context_line":"from tacker.sol_refactored.api import prometheus_plugin_validator as validator"}],"source_content_type":"text/x-python","patch_set":4,"id":"1d2fe9f8_d9c52429","line":24,"range":{"start_line":24,"start_character":40,"end_line":24,"end_character":47},"updated":"2022-11-10 06:26:57.000000000","message":"\"kstn\" is a little bit strange. Why don\u0027t you use `ks_exc\" like as other projects?","commit_id":"5e61163de3c75c4604dffa508699266e2d97b61f"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"6cb51d062ac21d9a5a25040f0696d6c318092856","unresolved":true,"context_lines":[{"line_number":21,"context_line":"import re"},{"line_number":22,"context_line":"import tempfile"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"from keystoneauth1 import exceptions as kstn_ex"},{"line_number":25,"context_line":"from oslo_log import log as logging"},{"line_number":26,"context_line":"from oslo_utils import uuidutils"},{"line_number":27,"context_line":"from tacker.sol_refactored.api import prometheus_plugin_validator as validator"}],"source_content_type":"text/x-python","patch_set":4,"id":"9e084522_e3f169de","line":24,"range":{"start_line":24,"start_character":40,"end_line":24,"end_character":47},"in_reply_to":"1d2fe9f8_d9c52429","updated":"2022-11-17 10:47:14.000000000","message":"fixed in patchset 5.","commit_id":"5e61163de3c75c4604dffa508699266e2d97b61f"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"df559e3a6a8ab09ee079d26464a9c6cb6e451698","unresolved":true,"context_lines":[{"line_number":527,"context_line":"                self.reload_prom_server(context, uri)"},{"line_number":528,"context_line":"        except (sol_ex.PrometheusPluginError, kstn_ex.ClientException,"},{"line_number":529,"context_line":"                paramiko.SSHException):"},{"line_number":530,"context_line":"            # Subsequent delete process should be done"},{"line_number":531,"context_line":"            # even if deleting a file is failed."},{"line_number":532,"context_line":"            pass"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"    def decompose_metrics(self, pm_job):"}],"source_content_type":"text/x-python","patch_set":4,"id":"20d3ba1d_6e174458","line":531,"range":{"start_line":530,"start_character":12,"end_line":531,"end_character":48},"updated":"2022-11-10 06:26:57.000000000","message":"What do you mean?","commit_id":"5e61163de3c75c4604dffa508699266e2d97b61f"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"6cb51d062ac21d9a5a25040f0696d6c318092856","unresolved":true,"context_lines":[{"line_number":527,"context_line":"                self.reload_prom_server(context, uri)"},{"line_number":528,"context_line":"        except (sol_ex.PrometheusPluginError, kstn_ex.ClientException,"},{"line_number":529,"context_line":"                paramiko.SSHException):"},{"line_number":530,"context_line":"            # Subsequent delete process should be done"},{"line_number":531,"context_line":"            # even if deleting a file is failed."},{"line_number":532,"context_line":"            pass"},{"line_number":533,"context_line":""},{"line_number":534,"context_line":"    def decompose_metrics(self, pm_job):"}],"source_content_type":"text/x-python","patch_set":4,"id":"026f89d8_3e7460f5","line":531,"range":{"start_line":530,"start_character":12,"end_line":531,"end_character":48},"in_reply_to":"20d3ba1d_6e174458","updated":"2022-11-17 10:47:14.000000000","message":"It means that pm job deletion does not fail even if external rule file on prometheus is corrupted. This avoids PM job that cannot be permanently deleted.","commit_id":"5e61163de3c75c4604dffa508699266e2d97b61f"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"69bb7946fdf6439aeffaa1db12faa189be803fff","unresolved":true,"context_lines":[{"line_number":568,"context_line":"        with paramiko.SSHClient() as client:"},{"line_number":569,"context_line":"            client.set_missing_host_key_policy(paramiko.AutoAddPolicy())"},{"line_number":570,"context_line":"            client.connect(host, port\u003dport, username\u003duser, password\u003dpassword)"},{"line_number":571,"context_line":"            command \u003d f\"promtool check rules {path}/{pm_job_id}.json\""},{"line_number":572,"context_line":"            LOG.info(\"Rule file validation command: %s\", command)"},{"line_number":573,"context_line":"            _, stdout, stderr \u003d client.exec_command(command)"},{"line_number":574,"context_line":"            if stdout.channel.recv_exit_status() !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":7,"id":"70541e71_f987f038","line":571,"updated":"2022-11-17 06:37:34.000000000","message":"Which version of Prometheus rule is checked by promtool?\nIn Antelope, Prometheus version will be updated to 2.42.\nI think it would be useful to be able to change the version of Prometheus to check in the config settings.\nWhat do you think?","commit_id":"52dd4a3bb137d85eb6b0b2fd2813d4a56c319807"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"337aa49216d12262595041529bbd38c962205e61","unresolved":false,"context_lines":[{"line_number":568,"context_line":"        with paramiko.SSHClient() as client:"},{"line_number":569,"context_line":"            client.set_missing_host_key_policy(paramiko.AutoAddPolicy())"},{"line_number":570,"context_line":"            client.connect(host, port\u003dport, username\u003duser, password\u003dpassword)"},{"line_number":571,"context_line":"            command \u003d f\"promtool check rules {path}/{pm_job_id}.json\""},{"line_number":572,"context_line":"            LOG.info(\"Rule file validation command: %s\", command)"},{"line_number":573,"context_line":"            _, stdout, stderr \u003d client.exec_command(command)"},{"line_number":574,"context_line":"            if stdout.channel.recv_exit_status() !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":7,"id":"fcb23f1a_39fdcce2","line":571,"in_reply_to":"13ce53d7_53633a2f","updated":"2022-11-28 01:02:40.000000000","message":"Done","commit_id":"52dd4a3bb137d85eb6b0b2fd2813d4a56c319807"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"6cb51d062ac21d9a5a25040f0696d6c318092856","unresolved":true,"context_lines":[{"line_number":568,"context_line":"        with paramiko.SSHClient() as client:"},{"line_number":569,"context_line":"            client.set_missing_host_key_policy(paramiko.AutoAddPolicy())"},{"line_number":570,"context_line":"            client.connect(host, port\u003dport, username\u003duser, password\u003dpassword)"},{"line_number":571,"context_line":"            command \u003d f\"promtool check rules {path}/{pm_job_id}.json\""},{"line_number":572,"context_line":"            LOG.info(\"Rule file validation command: %s\", command)"},{"line_number":573,"context_line":"            _, stdout, stderr \u003d client.exec_command(command)"},{"line_number":574,"context_line":"            if stdout.channel.recv_exit_status() !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":7,"id":"8aa971c7_35f87f2a","line":571,"in_reply_to":"70541e71_f987f038","updated":"2022-11-17 10:47:14.000000000","message":"Currently, prometheus 2.34.0 is used. However, The version is depends on external tool. I think it is hard to change it form tacker.","commit_id":"52dd4a3bb137d85eb6b0b2fd2813d4a56c319807"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"2cc70120e7c72b0f15aa59afe89f27e3e2e810ac","unresolved":true,"context_lines":[{"line_number":568,"context_line":"        with paramiko.SSHClient() as client:"},{"line_number":569,"context_line":"            client.set_missing_host_key_policy(paramiko.AutoAddPolicy())"},{"line_number":570,"context_line":"            client.connect(host, port\u003dport, username\u003duser, password\u003dpassword)"},{"line_number":571,"context_line":"            command \u003d f\"promtool check rules {path}/{pm_job_id}.json\""},{"line_number":572,"context_line":"            LOG.info(\"Rule file validation command: %s\", command)"},{"line_number":573,"context_line":"            _, stdout, stderr \u003d client.exec_command(command)"},{"line_number":574,"context_line":"            if stdout.channel.recv_exit_status() !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":7,"id":"73e1fddb_a696b9f1","line":571,"in_reply_to":"73ae101c_2cbc88ce","updated":"2022-11-22 00:44:51.000000000","message":"Thank you for updating the tool.\nCould you add to the documentation that the current Tacker supports Prometheus 2.37?\n(If you plan to fix the documentation in another patch, there is no problem.)","commit_id":"52dd4a3bb137d85eb6b0b2fd2813d4a56c319807"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"a109f055ae40c9c9e4744d9d98e3699bdd3302f2","unresolved":true,"context_lines":[{"line_number":568,"context_line":"        with paramiko.SSHClient() as client:"},{"line_number":569,"context_line":"            client.set_missing_host_key_policy(paramiko.AutoAddPolicy())"},{"line_number":570,"context_line":"            client.connect(host, port\u003dport, username\u003duser, password\u003dpassword)"},{"line_number":571,"context_line":"            command \u003d f\"promtool check rules {path}/{pm_job_id}.json\""},{"line_number":572,"context_line":"            LOG.info(\"Rule file validation command: %s\", command)"},{"line_number":573,"context_line":"            _, stdout, stderr \u003d client.exec_command(command)"},{"line_number":574,"context_line":"            if stdout.channel.recv_exit_status() !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":7,"id":"13ce53d7_53633a2f","line":571,"in_reply_to":"73e1fddb_a696b9f1","updated":"2022-11-25 14:16:40.000000000","message":"Update doc/source/user/prometheus_plugin_use_case_guide.rst","commit_id":"52dd4a3bb137d85eb6b0b2fd2813d4a56c319807"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"d61f5d11400d09247fe5b010cd000fc6d243ea22","unresolved":true,"context_lines":[{"line_number":568,"context_line":"        with paramiko.SSHClient() as client:"},{"line_number":569,"context_line":"            client.set_missing_host_key_policy(paramiko.AutoAddPolicy())"},{"line_number":570,"context_line":"            client.connect(host, port\u003dport, username\u003duser, password\u003dpassword)"},{"line_number":571,"context_line":"            command \u003d f\"promtool check rules {path}/{pm_job_id}.json\""},{"line_number":572,"context_line":"            LOG.info(\"Rule file validation command: %s\", command)"},{"line_number":573,"context_line":"            _, stdout, stderr \u003d client.exec_command(command)"},{"line_number":574,"context_line":"            if stdout.channel.recv_exit_status() !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":7,"id":"d52b2f02_4a1b7840","line":571,"in_reply_to":"8aa971c7_35f87f2a","updated":"2022-11-18 01:09:21.000000000","message":"Prometheus 2.34 seems to be out of support already...\nhttps://prometheus.io/docs/introduction/release-cycle/\n\nIdeally we test with Prometheus 2.37.\nBut if we can\u0027t do that, we need to check the difference between 2.37 and 2.34 rules.\nWe\u0027ll also need to consider how we\u0027re going to test when 2.42 is released in February.","commit_id":"52dd4a3bb137d85eb6b0b2fd2813d4a56c319807"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"2a9506ee929071471bc76e88c1716c9f4583a47d","unresolved":true,"context_lines":[{"line_number":568,"context_line":"        with paramiko.SSHClient() as client:"},{"line_number":569,"context_line":"            client.set_missing_host_key_policy(paramiko.AutoAddPolicy())"},{"line_number":570,"context_line":"            client.connect(host, port\u003dport, username\u003duser, password\u003dpassword)"},{"line_number":571,"context_line":"            command \u003d f\"promtool check rules {path}/{pm_job_id}.json\""},{"line_number":572,"context_line":"            LOG.info(\"Rule file validation command: %s\", command)"},{"line_number":573,"context_line":"            _, stdout, stderr \u003d client.exec_command(command)"},{"line_number":574,"context_line":"            if stdout.channel.recv_exit_status() !\u003d 0:"}],"source_content_type":"text/x-python","patch_set":7,"id":"73ae101c_2cbc88ce","line":571,"in_reply_to":"d52b2f02_4a1b7840","updated":"2022-11-21 06:16:10.000000000","message":"In PS9, promtool has been updated to 2.37 in FT env. That is described in tacker-monitoring-test.zip. (I already used 2.37 in our manual testing env.)","commit_id":"52dd4a3bb137d85eb6b0b2fd2813d4a56c319807"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"def467f9856b9001ad3e3381e5192c2b273c77e5","unresolved":true,"context_lines":[{"line_number":519,"context_line":""},{"line_number":520,"context_line":"    def delete_rules(self, context, pm_job):"},{"line_number":521,"context_line":"        target_list, reload_list \u003d self.get_access_info(pm_job)"},{"line_number":522,"context_line":"        try:"},{"line_number":523,"context_line":"            for info in target_list:"},{"line_number":524,"context_line":"                self._delete_rule("},{"line_number":525,"context_line":"                    info[\u0027host\u0027], info[\u0027port\u0027], info[\u0027user\u0027],"}],"source_content_type":"text/x-python","patch_set":10,"id":"f71e82c6_f4e9dd68","line":522,"updated":"2022-11-30 06:56:05.000000000","message":"If you want to avoid orphan PM jobs that can\u0027t be deleted anyway, I think `for` should be placed outside `try`. The current code stops deletion if at least one PM job fails to be deleted.\n \n```\nfor info in target_list:\n    try:\n        self._delete_rule(\n        ...\n    except (sol_ex.PrometheusPluginError, ks_exc.ClientException,\n            paramiko.SSHException):\n        ...\n```","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f4a4a1af43be19f0b652360c118da56b2a4905e2","unresolved":false,"context_lines":[{"line_number":519,"context_line":""},{"line_number":520,"context_line":"    def delete_rules(self, context, pm_job):"},{"line_number":521,"context_line":"        target_list, reload_list \u003d self.get_access_info(pm_job)"},{"line_number":522,"context_line":"        try:"},{"line_number":523,"context_line":"            for info in target_list:"},{"line_number":524,"context_line":"                self._delete_rule("},{"line_number":525,"context_line":"                    info[\u0027host\u0027], info[\u0027port\u0027], info[\u0027user\u0027],"}],"source_content_type":"text/x-python","patch_set":10,"id":"0dc56293_c7b84b59","line":522,"in_reply_to":"c25d28bd_0b57bea9","updated":"2022-12-09 21:42:03.000000000","message":"Done","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"60bfc6c6413f02cd4f46a03458793cfc8e89133b","unresolved":true,"context_lines":[{"line_number":519,"context_line":""},{"line_number":520,"context_line":"    def delete_rules(self, context, pm_job):"},{"line_number":521,"context_line":"        target_list, reload_list \u003d self.get_access_info(pm_job)"},{"line_number":522,"context_line":"        try:"},{"line_number":523,"context_line":"            for info in target_list:"},{"line_number":524,"context_line":"                self._delete_rule("},{"line_number":525,"context_line":"                    info[\u0027host\u0027], info[\u0027port\u0027], info[\u0027user\u0027],"}],"source_content_type":"text/x-python","patch_set":10,"id":"c25d28bd_0b57bea9","line":522,"in_reply_to":"f71e82c6_f4e9dd68","updated":"2022-12-05 14:11:45.000000000","message":"Fixed in PS11.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"def467f9856b9001ad3e3381e5192c2b273c77e5","unresolved":true,"context_lines":[{"line_number":520,"context_line":"    def delete_rules(self, context, pm_job):"},{"line_number":521,"context_line":"        target_list, reload_list \u003d self.get_access_info(pm_job)"},{"line_number":522,"context_line":"        try:"},{"line_number":523,"context_line":"            for info in target_list:"},{"line_number":524,"context_line":"                self._delete_rule("},{"line_number":525,"context_line":"                    info[\u0027host\u0027], info[\u0027port\u0027], info[\u0027user\u0027],"},{"line_number":526,"context_line":"                    info[\u0027password\u0027], info[\u0027path\u0027], pm_job.id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"290c87e8_618af526","line":523,"updated":"2022-11-30 06:56:05.000000000","message":"nits. I feel it\u0027s a little bit more natural if retrieving ``target`` from ``target_list`` (or targets) rather than ``info``.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"60bfc6c6413f02cd4f46a03458793cfc8e89133b","unresolved":true,"context_lines":[{"line_number":520,"context_line":"    def delete_rules(self, context, pm_job):"},{"line_number":521,"context_line":"        target_list, reload_list \u003d self.get_access_info(pm_job)"},{"line_number":522,"context_line":"        try:"},{"line_number":523,"context_line":"            for info in target_list:"},{"line_number":524,"context_line":"                self._delete_rule("},{"line_number":525,"context_line":"                    info[\u0027host\u0027], info[\u0027port\u0027], info[\u0027user\u0027],"},{"line_number":526,"context_line":"                    info[\u0027password\u0027], info[\u0027path\u0027], pm_job.id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"d6ea359e_26d376bf","line":523,"in_reply_to":"290c87e8_618af526","updated":"2022-12-05 14:11:45.000000000","message":"Fixed in PS11.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f4a4a1af43be19f0b652360c118da56b2a4905e2","unresolved":false,"context_lines":[{"line_number":520,"context_line":"    def delete_rules(self, context, pm_job):"},{"line_number":521,"context_line":"        target_list, reload_list \u003d self.get_access_info(pm_job)"},{"line_number":522,"context_line":"        try:"},{"line_number":523,"context_line":"            for info in target_list:"},{"line_number":524,"context_line":"                self._delete_rule("},{"line_number":525,"context_line":"                    info[\u0027host\u0027], info[\u0027port\u0027], info[\u0027user\u0027],"},{"line_number":526,"context_line":"                    info[\u0027password\u0027], info[\u0027path\u0027], pm_job.id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"dd6d22ce_348a8334","line":523,"in_reply_to":"d6ea359e_26d376bf","updated":"2022-12-09 21:42:03.000000000","message":"Done","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"def467f9856b9001ad3e3381e5192c2b273c77e5","unresolved":true,"context_lines":[{"line_number":562,"context_line":"                sftp.put(filename, f\u0027{path}/{pm_job_id}.json\u0027)"},{"line_number":563,"context_line":"        self.test_rule(host, port, user, password, path, pm_job_id)"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"    def test_rule(self, host, port, user, password, path, pm_job_id):"},{"line_number":566,"context_line":"        if not CONF.prometheus_plugin.test_rule_with_promtool:"},{"line_number":567,"context_line":"            return"},{"line_number":568,"context_line":"        with paramiko.SSHClient() as client:"}],"source_content_type":"text/x-python","patch_set":10,"id":"947eaae9_c91f06ba","line":565,"updated":"2022-11-30 06:56:05.000000000","message":"nits, ``test_`` prefix might be confusing for some developers. Could you change it to, for example, ``verfiy_rule``?","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f4a4a1af43be19f0b652360c118da56b2a4905e2","unresolved":false,"context_lines":[{"line_number":562,"context_line":"                sftp.put(filename, f\u0027{path}/{pm_job_id}.json\u0027)"},{"line_number":563,"context_line":"        self.test_rule(host, port, user, password, path, pm_job_id)"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"    def test_rule(self, host, port, user, password, path, pm_job_id):"},{"line_number":566,"context_line":"        if not CONF.prometheus_plugin.test_rule_with_promtool:"},{"line_number":567,"context_line":"            return"},{"line_number":568,"context_line":"        with paramiko.SSHClient() as client:"}],"source_content_type":"text/x-python","patch_set":10,"id":"a6a01eca_43b7ee88","line":565,"in_reply_to":"34bf1ffe_97e3f2fc","updated":"2022-12-09 21:42:03.000000000","message":"Done","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"60bfc6c6413f02cd4f46a03458793cfc8e89133b","unresolved":true,"context_lines":[{"line_number":562,"context_line":"                sftp.put(filename, f\u0027{path}/{pm_job_id}.json\u0027)"},{"line_number":563,"context_line":"        self.test_rule(host, port, user, password, path, pm_job_id)"},{"line_number":564,"context_line":""},{"line_number":565,"context_line":"    def test_rule(self, host, port, user, password, path, pm_job_id):"},{"line_number":566,"context_line":"        if not CONF.prometheus_plugin.test_rule_with_promtool:"},{"line_number":567,"context_line":"            return"},{"line_number":568,"context_line":"        with paramiko.SSHClient() as client:"}],"source_content_type":"text/x-python","patch_set":10,"id":"34bf1ffe_97e3f2fc","line":565,"in_reply_to":"947eaae9_c91f06ba","updated":"2022-12-05 14:11:45.000000000","message":"Fixed in PS11.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"9bf39965fe6bc684ca6b1a7fe178f0bc6d3cf0bd","unresolved":true,"context_lines":[{"line_number":624,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":625,"context_line":"                paramiko.SSHException) as e:"},{"line_number":626,"context_line":"            # delete rule files if error."},{"line_number":627,"context_line":"            for info in target_list:"},{"line_number":628,"context_line":"                self._delete_rule(info[\u0027host\u0027], info[\u0027port\u0027],"},{"line_number":629,"context_line":"                    info[\u0027user\u0027], info[\u0027password\u0027], info[\u0027path\u0027],"},{"line_number":630,"context_line":"                    pm_job.id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"796ecd8a_9197bacb","line":627,"updated":"2022-11-30 12:22:08.000000000","message":"Is there any possibility of failing to delete the rule in this function?\nThere is no try-except here.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"8f37c43035c5bac786d1c2dccd86b637f6900152","unresolved":false,"context_lines":[{"line_number":624,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":625,"context_line":"                paramiko.SSHException) as e:"},{"line_number":626,"context_line":"            # delete rule files if error."},{"line_number":627,"context_line":"            for info in target_list:"},{"line_number":628,"context_line":"                self._delete_rule(info[\u0027host\u0027], info[\u0027port\u0027],"},{"line_number":629,"context_line":"                    info[\u0027user\u0027], info[\u0027password\u0027], info[\u0027path\u0027],"},{"line_number":630,"context_line":"                    pm_job.id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"62db87ac_54062fd2","line":627,"in_reply_to":"0650ff94_dbc32a47","updated":"2022-12-22 04:20:09.000000000","message":"Done","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f4a4a1af43be19f0b652360c118da56b2a4905e2","unresolved":true,"context_lines":[{"line_number":624,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":625,"context_line":"                paramiko.SSHException) as e:"},{"line_number":626,"context_line":"            # delete rule files if error."},{"line_number":627,"context_line":"            for info in target_list:"},{"line_number":628,"context_line":"                self._delete_rule(info[\u0027host\u0027], info[\u0027port\u0027],"},{"line_number":629,"context_line":"                    info[\u0027user\u0027], info[\u0027password\u0027], info[\u0027path\u0027],"},{"line_number":630,"context_line":"                    pm_job.id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"b949f473_490fa05a","line":627,"in_reply_to":"0ae4a316_ce76c467","updated":"2022-12-09 21:42:03.000000000","message":"What do you mean by \"it is already decided to fail\"?\nIsn\u0027t it necessary to try deleting all target jobs when the update fails?","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"07776e9a5c186a6e2ee5874f0f75516309937980","unresolved":true,"context_lines":[{"line_number":624,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":625,"context_line":"                paramiko.SSHException) as e:"},{"line_number":626,"context_line":"            # delete rule files if error."},{"line_number":627,"context_line":"            for info in target_list:"},{"line_number":628,"context_line":"                self._delete_rule(info[\u0027host\u0027], info[\u0027port\u0027],"},{"line_number":629,"context_line":"                    info[\u0027user\u0027], info[\u0027password\u0027], info[\u0027path\u0027],"},{"line_number":630,"context_line":"                    pm_job.id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"d4f3b60a_ee8de5dc","line":627,"in_reply_to":"5b3c8a33_df2e079e","updated":"2022-12-16 05:39:56.000000000","message":"When the discussion of this thread is concluded, I will merge if there is no problem.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"60bfc6c6413f02cd4f46a03458793cfc8e89133b","unresolved":true,"context_lines":[{"line_number":624,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":625,"context_line":"                paramiko.SSHException) as e:"},{"line_number":626,"context_line":"            # delete rule files if error."},{"line_number":627,"context_line":"            for info in target_list:"},{"line_number":628,"context_line":"                self._delete_rule(info[\u0027host\u0027], info[\u0027port\u0027],"},{"line_number":629,"context_line":"                    info[\u0027user\u0027], info[\u0027password\u0027], info[\u0027path\u0027],"},{"line_number":630,"context_line":"                    pm_job.id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"0ae4a316_ce76c467","line":627,"in_reply_to":"796ecd8a_9197bacb","updated":"2022-12-05 14:11:45.000000000","message":"This is trying to cleanup files as much as possible after error. In this situation, deletion may fail. However, it is ok because it is already decided to fail.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"2ac52c8da2d8f37d9aeb6e790b8d121079f67f09","unresolved":false,"context_lines":[{"line_number":624,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":625,"context_line":"                paramiko.SSHException) as e:"},{"line_number":626,"context_line":"            # delete rule files if error."},{"line_number":627,"context_line":"            for info in target_list:"},{"line_number":628,"context_line":"                self._delete_rule(info[\u0027host\u0027], info[\u0027port\u0027],"},{"line_number":629,"context_line":"                    info[\u0027user\u0027], info[\u0027password\u0027], info[\u0027path\u0027],"},{"line_number":630,"context_line":"                    pm_job.id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5b3c8a33_df2e079e","line":627,"in_reply_to":"994cbf3c_e5805367","updated":"2022-12-15 04:30:23.000000000","message":"Make sense, but what if the 4th rule fails to be created and the cleanup process fails to delete 2nd rule. In this case, the 2nd and subsequent rules are not deleted. I feel such a case can be ignored as it rarely happens, but I\u0027d like to confirm we\u0027re on the same page.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"3ab23357bee4bf34e25ee017b92d7a326510b20a","unresolved":true,"context_lines":[{"line_number":624,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":625,"context_line":"                paramiko.SSHException) as e:"},{"line_number":626,"context_line":"            # delete rule files if error."},{"line_number":627,"context_line":"            for info in target_list:"},{"line_number":628,"context_line":"                self._delete_rule(info[\u0027host\u0027], info[\u0027port\u0027],"},{"line_number":629,"context_line":"                    info[\u0027user\u0027], info[\u0027password\u0027], info[\u0027path\u0027],"},{"line_number":630,"context_line":"                    pm_job.id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"994cbf3c_e5805367","line":627,"in_reply_to":"b949f473_490fa05a","updated":"2022-12-10 06:58:51.000000000","message":"I think the cleanup is enough to delete files in same order.\nFor example, rule1, rule2, rule3 are trying to be created in this order and creation of rule2 was failed. rule3 would not be created.\nIn this case, it is no need to delete rule3.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"170a7430d9d21c8786ab894ba54d3ce890774444","unresolved":true,"context_lines":[{"line_number":624,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":625,"context_line":"                paramiko.SSHException) as e:"},{"line_number":626,"context_line":"            # delete rule files if error."},{"line_number":627,"context_line":"            for info in target_list:"},{"line_number":628,"context_line":"                self._delete_rule(info[\u0027host\u0027], info[\u0027port\u0027],"},{"line_number":629,"context_line":"                    info[\u0027user\u0027], info[\u0027password\u0027], info[\u0027path\u0027],"},{"line_number":630,"context_line":"                    pm_job.id)"}],"source_content_type":"text/x-python","patch_set":10,"id":"0650ff94_dbc32a47","line":627,"in_reply_to":"d4f3b60a_ee8de5dc","updated":"2022-12-18 03:09:36.000000000","message":"In PS13, it is modified to delete rule files as much as possible.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"2e9d7eff3a63b9b4ef91a23be7a00cefe8713991","unresolved":true,"context_lines":[{"line_number":526,"context_line":"                    target[\u0027password\u0027], target[\u0027path\u0027], pm_job.id)"},{"line_number":527,"context_line":"            except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":528,"context_line":"                    paramiko.SSHException):"},{"line_number":529,"context_line":"                # Subsequent delete process should be done"},{"line_number":530,"context_line":"                # even if deleting a file is failed."},{"line_number":531,"context_line":"                pass"},{"line_number":532,"context_line":"        for uri in reload_list:"},{"line_number":533,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":11,"id":"445306ce_561dcc45","line":530,"range":{"start_line":529,"start_character":16,"end_line":530,"end_character":52},"updated":"2022-12-01 04:55:59.000000000","message":"I don\u0027t understand where is the subsequent delete process around here. In addition, it\u0027s useless to comment the same in L.537-538. Could you make it more exactly and consider the place of the comment?","commit_id":"16bd173822a2bff9eafc1227fb462c98916ccfbd"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"60bfc6c6413f02cd4f46a03458793cfc8e89133b","unresolved":true,"context_lines":[{"line_number":526,"context_line":"                    target[\u0027password\u0027], target[\u0027path\u0027], pm_job.id)"},{"line_number":527,"context_line":"            except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":528,"context_line":"                    paramiko.SSHException):"},{"line_number":529,"context_line":"                # Subsequent delete process should be done"},{"line_number":530,"context_line":"                # even if deleting a file is failed."},{"line_number":531,"context_line":"                pass"},{"line_number":532,"context_line":"        for uri in reload_list:"},{"line_number":533,"context_line":"            try:"}],"source_content_type":"text/x-python","patch_set":11,"id":"2a9772c3_4ce17186","line":530,"range":{"start_line":529,"start_character":16,"end_line":530,"end_character":52},"in_reply_to":"445306ce_561dcc45","updated":"2022-12-05 14:11:45.000000000","message":"Fixed at PS12.","commit_id":"16bd173822a2bff9eafc1227fb462c98916ccfbd"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"2e9d7eff3a63b9b4ef91a23be7a00cefe8713991","unresolved":true,"context_lines":[{"line_number":630,"context_line":"                self.reload_prom_server(context, uri)"},{"line_number":631,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":632,"context_line":"                paramiko.SSHException) as e:"},{"line_number":633,"context_line":"            # delete rule files if error."},{"line_number":634,"context_line":"            for target in target_list:"},{"line_number":635,"context_line":"                self._delete_rule(target[\u0027host\u0027], target[\u0027port\u0027],"},{"line_number":636,"context_line":"                    target[\u0027user\u0027], target[\u0027password\u0027], target[\u0027path\u0027],"},{"line_number":637,"context_line":"                    pm_job.id)"},{"line_number":638,"context_line":"            raise e"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    def get_vnf_instances(self, context, pm_job):"}],"source_content_type":"text/x-python","patch_set":11,"id":"dfe6d8a0_bba1d1ec","line":637,"range":{"start_line":633,"start_character":12,"end_line":637,"end_character":30},"updated":"2022-12-01 04:55:59.000000000","message":"You should move it to `finally` clause next if you\u0027ll ensure the deletion.","commit_id":"16bd173822a2bff9eafc1227fb462c98916ccfbd"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"d868a39fc5dd0af6e127ef2cc5f412d65bf147e6","unresolved":true,"context_lines":[{"line_number":630,"context_line":"                self.reload_prom_server(context, uri)"},{"line_number":631,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":632,"context_line":"                paramiko.SSHException) as e:"},{"line_number":633,"context_line":"            # delete rule files if error."},{"line_number":634,"context_line":"            for target in target_list:"},{"line_number":635,"context_line":"                self._delete_rule(target[\u0027host\u0027], target[\u0027port\u0027],"},{"line_number":636,"context_line":"                    target[\u0027user\u0027], target[\u0027password\u0027], target[\u0027path\u0027],"},{"line_number":637,"context_line":"                    pm_job.id)"},{"line_number":638,"context_line":"            raise e"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    def get_vnf_instances(self, context, pm_job):"}],"source_content_type":"text/x-python","patch_set":11,"id":"c22f9c84_e2af8b81","line":637,"range":{"start_line":633,"start_character":12,"end_line":637,"end_character":30},"in_reply_to":"104ed241_a697607a","updated":"2022-12-09 21:44:25.000000000","message":"sorry, `_delete_rule` -\u003e `_delete_rules`\n\n```\nexcept (sol_ex.PrometheusPluginError, ks_exc.ClientException,\n    paramiko.SSHException) as e:\n    LOG.error(\n    \"Failed to update rules\") # THE MESSAGE IS JUST AN EXAMPLE\n    self._delete_rules(target_list, pm_job.id)\n    raise e            \nexcept Exception as e:\n    self._delete_rules(target_list, pm_job.id)\n    raise e                \n\ndef _delete_rules(self, target_list, id)\n    for target in target_list:\n        self._delete_rule(target[\u0027host\u0027], target[\u0027port\u0027],\n            target[\u0027user\u0027], target[\u0027password\u0027], target[\u0027path\u0027],\n            id)\n```","commit_id":"16bd173822a2bff9eafc1227fb462c98916ccfbd"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"2ac52c8da2d8f37d9aeb6e790b8d121079f67f09","unresolved":false,"context_lines":[{"line_number":630,"context_line":"                self.reload_prom_server(context, uri)"},{"line_number":631,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":632,"context_line":"                paramiko.SSHException) as e:"},{"line_number":633,"context_line":"            # delete rule files if error."},{"line_number":634,"context_line":"            for target in target_list:"},{"line_number":635,"context_line":"                self._delete_rule(target[\u0027host\u0027], target[\u0027port\u0027],"},{"line_number":636,"context_line":"                    target[\u0027user\u0027], target[\u0027password\u0027], target[\u0027path\u0027],"},{"line_number":637,"context_line":"                    pm_job.id)"},{"line_number":638,"context_line":"            raise e"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    def get_vnf_instances(self, context, pm_job):"}],"source_content_type":"text/x-python","patch_set":11,"id":"ba3e560e_be650d55","line":637,"range":{"start_line":633,"start_character":12,"end_line":637,"end_character":30},"in_reply_to":"10a1994c_bcbc5b7e","updated":"2022-12-15 04:30:23.000000000","message":"Done","commit_id":"16bd173822a2bff9eafc1227fb462c98916ccfbd"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"3ab23357bee4bf34e25ee017b92d7a326510b20a","unresolved":true,"context_lines":[{"line_number":630,"context_line":"                self.reload_prom_server(context, uri)"},{"line_number":631,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":632,"context_line":"                paramiko.SSHException) as e:"},{"line_number":633,"context_line":"            # delete rule files if error."},{"line_number":634,"context_line":"            for target in target_list:"},{"line_number":635,"context_line":"                self._delete_rule(target[\u0027host\u0027], target[\u0027port\u0027],"},{"line_number":636,"context_line":"                    target[\u0027user\u0027], target[\u0027password\u0027], target[\u0027path\u0027],"},{"line_number":637,"context_line":"                    pm_job.id)"},{"line_number":638,"context_line":"            raise e"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    def get_vnf_instances(self, context, pm_job):"}],"source_content_type":"text/x-python","patch_set":11,"id":"10a1994c_bcbc5b7e","line":637,"range":{"start_line":633,"start_character":12,"end_line":637,"end_character":30},"in_reply_to":"c22f9c84_e2af8b81","updated":"2022-12-10 06:58:51.000000000","message":"Fixed in PS13.","commit_id":"16bd173822a2bff9eafc1227fb462c98916ccfbd"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"60bfc6c6413f02cd4f46a03458793cfc8e89133b","unresolved":true,"context_lines":[{"line_number":630,"context_line":"                self.reload_prom_server(context, uri)"},{"line_number":631,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":632,"context_line":"                paramiko.SSHException) as e:"},{"line_number":633,"context_line":"            # delete rule files if error."},{"line_number":634,"context_line":"            for target in target_list:"},{"line_number":635,"context_line":"                self._delete_rule(target[\u0027host\u0027], target[\u0027port\u0027],"},{"line_number":636,"context_line":"                    target[\u0027user\u0027], target[\u0027password\u0027], target[\u0027path\u0027],"},{"line_number":637,"context_line":"                    pm_job.id)"},{"line_number":638,"context_line":"            raise e"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    def get_vnf_instances(self, context, pm_job):"}],"source_content_type":"text/x-python","patch_set":11,"id":"207abb4e_675a4c40","line":637,"range":{"start_line":633,"start_character":12,"end_line":637,"end_character":30},"in_reply_to":"dfe6d8a0_bba1d1ec","updated":"2022-12-05 14:11:45.000000000","message":"Fixed in PS12","commit_id":"16bd173822a2bff9eafc1227fb462c98916ccfbd"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f4a4a1af43be19f0b652360c118da56b2a4905e2","unresolved":true,"context_lines":[{"line_number":630,"context_line":"                self.reload_prom_server(context, uri)"},{"line_number":631,"context_line":"        except (sol_ex.PrometheusPluginError, ks_exc.ClientException,"},{"line_number":632,"context_line":"                paramiko.SSHException) as e:"},{"line_number":633,"context_line":"            # delete rule files if error."},{"line_number":634,"context_line":"            for target in target_list:"},{"line_number":635,"context_line":"                self._delete_rule(target[\u0027host\u0027], target[\u0027port\u0027],"},{"line_number":636,"context_line":"                    target[\u0027user\u0027], target[\u0027password\u0027], target[\u0027path\u0027],"},{"line_number":637,"context_line":"                    pm_job.id)"},{"line_number":638,"context_line":"            raise e"},{"line_number":639,"context_line":""},{"line_number":640,"context_line":"    def get_vnf_instances(self, context, pm_job):"}],"source_content_type":"text/x-python","patch_set":11,"id":"104ed241_a697607a","line":637,"range":{"start_line":633,"start_character":12,"end_line":637,"end_character":30},"in_reply_to":"dfe6d8a0_bba1d1ec","updated":"2022-12-09 21:42:03.000000000","message":"IMO, putting this `for` loop into `finally` is not intuitive, it makes developers think PM jobs will be deleted regardless of whether `update_rule` is succeeded or not. Besides that, in my understanding, this clean up code (i.e., `for` loop) should be executed whatever the error is. I\u0027d like to suggest the following code.\nWhat do you think?\n\n```\ntry:\n    ...\nexcept Exception as e:\n    for target in target_list:\n        self._delete_rule(target[\u0027host\u0027], target[\u0027port\u0027],\n            target[\u0027user\u0027], target[\u0027password\u0027], target[\u0027path\u0027],\n            pm_job.id)\n    raise e\n```\n\nOr, if you want to distinguish a cause of errors, you have to output some messages to log when catching them, otherwise specifying types of errors at `except` doesn\u0027t work. In this case, making the clean up code a method would be better.\n\nc.f., https://www.flake8rules.com/rules/E722.html\n\n```\nexcept (sol_ex.PrometheusPluginError, ks_exc.ClientException,\n    paramiko.SSHException) as e:\n    LOG.error(\n    \"Failed to update rules\") # THE MESSAGE IS JUST AN EXAMPLE\n    self._delete_rule(target_list, pm_job.id)\n    raise e            \nexcept Exception as e:\n    self._delete_rule(target_list, pm_job.id)\n    raise e                \n\ndef _delete_rule(self, target_list, id)\n    for target in target_list:\n        self._delete_rule(target[\u0027host\u0027], target[\u0027port\u0027],\n            target[\u0027user\u0027], target[\u0027password\u0027], target[\u0027path\u0027],\n            id)\n```","commit_id":"16bd173822a2bff9eafc1227fb462c98916ccfbd"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"b2bd46e4ba26506f5a2d5990399fd6eecd2e64e0","unresolved":true,"context_lines":[{"line_number":548,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":549,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":550,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":551,"context_line":"        if resp.status_code \u003e\u003d 400:"},{"line_number":552,"context_line":"            raise sol_ex.PrometheusPluginError("},{"line_number":553,"context_line":"                f\"Reloading request to prometheus is failed: \""},{"line_number":554,"context_line":"                f\"{resp.status_code}.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"5fb09364_5125cd6f","line":551,"range":{"start_line":551,"start_character":11,"end_line":551,"end_character":34},"updated":"2022-12-22 04:28:57.000000000","message":"According to the Prometheus HTTP API reference[1],\nI think that it is better to write \"if rule\" per each status code\nor set upper limit(e.g., 503).\n\n[1]https://prometheus.io/docs/prometheus/latest/querying/api/","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"6fc4b01d470671d1c64a3a424a848ad007f7e03d","unresolved":true,"context_lines":[{"line_number":548,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":549,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":550,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":551,"context_line":"        if resp.status_code \u003e\u003d 400:"},{"line_number":552,"context_line":"            raise sol_ex.PrometheusPluginError("},{"line_number":553,"context_line":"                f\"Reloading request to prometheus is failed: \""},{"line_number":554,"context_line":"                f\"{resp.status_code}.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"ae05124d_bd078e05","line":551,"range":{"start_line":551,"start_character":11,"end_line":551,"end_character":34},"in_reply_to":"1dc2e33b_9a9e223c","updated":"2022-12-23 07:51:35.000000000","message":"I\u0027m sorry I must correct above code.\n\n```\n        if resp.status_code \u003e\u003d 400 and resp.status_code \u003c 600:\n            raise sol_ex.PrometheusPluginError(\n                f\"Reloading request to prometheus is failed: \"\n                f\"{resp.status_code}.\")\n        elif resp.status_code \u003e\u003d 600:\n            raise sol_ex.PrometheusPluginError(\n                f\"Reloading request to prometheus is failed: \"\n                f\"{resp.status_code}.\")\n```","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"3cb8fdc6af84212364260998f1053b9a06a92b45","unresolved":false,"context_lines":[{"line_number":548,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":549,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":550,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":551,"context_line":"        if resp.status_code \u003e\u003d 400:"},{"line_number":552,"context_line":"            raise sol_ex.PrometheusPluginError("},{"line_number":553,"context_line":"                f\"Reloading request to prometheus is failed: \""},{"line_number":554,"context_line":"                f\"{resp.status_code}.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"2dfa8b65_38ff68c0","line":551,"range":{"start_line":551,"start_character":11,"end_line":551,"end_character":34},"in_reply_to":"2187f1d4_b174b4c6","updated":"2023-01-12 06:23:23.000000000","message":"Done","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"dc7e194ea284ba89defb5230844da5b72fafca27","unresolved":true,"context_lines":[{"line_number":548,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":549,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":550,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":551,"context_line":"        if resp.status_code \u003e\u003d 400:"},{"line_number":552,"context_line":"            raise sol_ex.PrometheusPluginError("},{"line_number":553,"context_line":"                f\"Reloading request to prometheus is failed: \""},{"line_number":554,"context_line":"                f\"{resp.status_code}.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"a61251b2_deea7e74","line":551,"range":{"start_line":551,"start_character":11,"end_line":551,"end_character":34},"in_reply_to":"2e3d878b_2aea680c","updated":"2022-12-23 06:55:58.000000000","message":"Thank you for your reply. Sorry for my wrong ref, and I understand reload api doesn\u0027t need request body.\n\nIn the current error status (e.g., 4xx/5xx), it may be enough to implement the error check logic like \"\u003e\u003d400\",\nbut for the future, if 6xx or more upper status codes will introduce,\nwe should refactor this implementation.\n\nTherefore, what do you think of the proposal to set the upper limit to 599 (Target:4xx/5xx) due to the above situation?\n\nIf there is no impact, then I will resolve this thread. Thanks.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"8f09c0196cddeb4c195e76710b1d7ad136600fe6","unresolved":true,"context_lines":[{"line_number":548,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":549,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":550,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":551,"context_line":"        if resp.status_code \u003e\u003d 400:"},{"line_number":552,"context_line":"            raise sol_ex.PrometheusPluginError("},{"line_number":553,"context_line":"                f\"Reloading request to prometheus is failed: \""},{"line_number":554,"context_line":"                f\"{resp.status_code}.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"97bfd2e4_5d1e131b","line":551,"range":{"start_line":551,"start_character":11,"end_line":551,"end_character":34},"in_reply_to":"30a0477c_d2d96b70","updated":"2022-12-23 09:43:16.000000000","message":"Asahina-san,\nDo you mean as below? (Even if 6xx is received, it is treated as success.)\n```\n        if resp.status_code \u003e\u003d 400 and resp.status_code \u003c 600:\n            raise sol_ex.PrometheusPluginError(\n                f\"Reloading request to prometheus is failed: \"\n                f\"{resp.status_code}.\")\n```\n\nraise_for_status is inconvinient because caller of this module expects PrometheusPluginError in case of error.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"bad9a76f717417f4df193c1bd90651445c81213b","unresolved":true,"context_lines":[{"line_number":548,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":549,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":550,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":551,"context_line":"        if resp.status_code \u003e\u003d 400:"},{"line_number":552,"context_line":"            raise sol_ex.PrometheusPluginError("},{"line_number":553,"context_line":"                f\"Reloading request to prometheus is failed: \""},{"line_number":554,"context_line":"                f\"{resp.status_code}.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"2e3d878b_2aea680c","line":551,"range":{"start_line":551,"start_character":11,"end_line":551,"end_character":34},"in_reply_to":"5fb09364_5125cd6f","updated":"2022-12-23 06:28:27.000000000","message":"This request is reload api of prometheus, it is not the query api you mentioned.\nIn the query api, below error code is defined and 400 and 422 are related to the request body. However reload api doesn\u0027t need request body. I think it is enough to consider 503 error code.\n\n400 Bad Request\n422 Unprocessable Entity\n503 Service Unavailable\n\nI don\u0027t think setting upper limit is good idea because http client may generate it\u0027s own error code other than above. (e.g when network unreachable or dns down)","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"df67e22d976c0d6aaf4b48140525ec56cd22c6dd","unresolved":true,"context_lines":[{"line_number":548,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":549,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":550,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":551,"context_line":"        if resp.status_code \u003e\u003d 400:"},{"line_number":552,"context_line":"            raise sol_ex.PrometheusPluginError("},{"line_number":553,"context_line":"                f\"Reloading request to prometheus is failed: \""},{"line_number":554,"context_line":"                f\"{resp.status_code}.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"30a0477c_d2d96b70","line":551,"range":{"start_line":551,"start_character":11,"end_line":551,"end_character":34},"in_reply_to":"860e564e_fe6c259d","updated":"2022-12-23 08:48:18.000000000","message":"\u003e  the number of digits\n\n-\u003e the number of digits printed \n\nsorry.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"28efeb0d8b7e34d909419e5772588f8d1da488b3","unresolved":true,"context_lines":[{"line_number":548,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":549,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":550,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":551,"context_line":"        if resp.status_code \u003e\u003d 400:"},{"line_number":552,"context_line":"            raise sol_ex.PrometheusPluginError("},{"line_number":553,"context_line":"                f\"Reloading request to prometheus is failed: \""},{"line_number":554,"context_line":"                f\"{resp.status_code}.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"c0ab3baf_46f3341e","line":551,"range":{"start_line":551,"start_character":11,"end_line":551,"end_character":34},"in_reply_to":"97bfd2e4_5d1e131b","updated":"2022-12-26 05:35:21.000000000","message":"I didn\u0027t mean raising an exception from `raise_for_status`.\n\nMy points are:\n- Indicate status codes we expect explicitly (even through the other library like `requests.raise_for_status`)\n- Use existing libraries/methods as possible (avoid reinventing the wheel)\n\nFor 6xx or above, it must not be returned (unless the Prometheus is compromised), so we can ignore such cases basically. I just hesitate to print it, just in case.\n\nThe first idea that came to my mind is like this.\n\n```\n        try:\n            resp, _ \u003d self.client.do_request(\n                reload_uri, \"PUT\", context\u003dcontext)\n            resp.raise_for_status()\n        except HTTPError as e:\n            raise sol_ex.PrometheusPluginError(\n                f\"Reloading request to prometheus is failed: \"\n                f\"{resp.status_code}.\")\n        except Exception as e:\n            raise sol_ex.PrometheusPluginError(\n                f\"Reloading request to prometheus is failed\") from e\n```\n\nPlease kindly tell me, if I\u0027m missing something.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"6280082a5bb2904eefd7152fb85b693674f72ba6","unresolved":true,"context_lines":[{"line_number":548,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":549,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":550,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":551,"context_line":"        if resp.status_code \u003e\u003d 400:"},{"line_number":552,"context_line":"            raise sol_ex.PrometheusPluginError("},{"line_number":553,"context_line":"                f\"Reloading request to prometheus is failed: \""},{"line_number":554,"context_line":"                f\"{resp.status_code}.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"1dc2e33b_9a9e223c","line":551,"range":{"start_line":551,"start_character":11,"end_line":551,"end_character":34},"in_reply_to":"a61251b2_deea7e74","updated":"2022-12-23 07:40:33.000000000","message":"I think introducing 6xx is impossible because\nit should be huge impact among all internet services.\n\nEven if 6xx is received for some reason,\nit should not be treated as success now.\nBecause 6xx is not defined in http protocol,  \n(https://www.ietf.org/rfc/rfc2616.txt section 6.1.1)\n\nIf upper limit is applied. That would be as below code.\nHowever, I feel this is redundant.\n```\n        if resp.status_code \u003e\u003d 400 and resp.status_code \u003c 600:\n            raise sol_ex.PrometheusPluginError(\n                f\"Reloading request to prometheus is failed: \"\n                f\"{resp.status_code}.\")\n        else:\n            raise sol_ex.PrometheusPluginError(\n                f\"Reloading request to prometheus is failed: \"\n                f\"{resp.status_code}.\")\n```","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"738ffff54d8afb3dbc4494fcb331f61ea031b98f","unresolved":true,"context_lines":[{"line_number":548,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":549,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":550,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":551,"context_line":"        if resp.status_code \u003e\u003d 400:"},{"line_number":552,"context_line":"            raise sol_ex.PrometheusPluginError("},{"line_number":553,"context_line":"                f\"Reloading request to prometheus is failed: \""},{"line_number":554,"context_line":"                f\"{resp.status_code}.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"860e564e_fe6c259d","line":551,"range":{"start_line":551,"start_character":11,"end_line":551,"end_character":34},"in_reply_to":"ae05124d_bd078e05","updated":"2022-12-23 08:36:17.000000000","message":"\u003e However, I feel this is redundant. \n\nI think it\u0027s not redundant. The code should show what we assume as a status code clearly and it even doesn\u0027t reduce the readability. Also, if we leave this line as is, the number of digits is not limited that is not good habit in terms of security.\n\nAside from that, isn\u0027t it possible to use `raise_for_status` [1] in the requests library? BTW, look at the code of this library [2], you can find the range of status codes is clearly written.\n\n[1] https://requests.readthedocs.io/en/latest/user/quickstart/#response-status-codes\n[2] https://github.com/psf/requests/blob/main/requests/models.py#L994-L1018","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"86b7359ea66598db77789e23cce3b0e0a0efb29c","unresolved":true,"context_lines":[{"line_number":548,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":549,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":550,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":551,"context_line":"        if resp.status_code \u003e\u003d 400:"},{"line_number":552,"context_line":"            raise sol_ex.PrometheusPluginError("},{"line_number":553,"context_line":"                f\"Reloading request to prometheus is failed: \""},{"line_number":554,"context_line":"                f\"{resp.status_code}.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"d7dc603c_c3739ebc","line":551,"range":{"start_line":551,"start_character":11,"end_line":551,"end_character":34},"in_reply_to":"c0ab3baf_46f3341e","updated":"2022-12-27 22:39:00.000000000","message":"Tacker uses keystoneauth1 library as http client. requests library is not directly used. That means raise_for_status() can\u0027t be used.\n\nhttps://docs.openstack.org/keystoneauth/latest/api/keystoneauth1.session.html\n\nThis document says that keystoneauth1 does error handling and only ClientException can be raised. In tacker, ClientException is already handled in the caller of the reload_prom_server(). so, the point is how it check status code. In PS14, I clarified the range of the status code.","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f3108b762d529f1ce60be6a4943fde26f4a68889","unresolved":true,"context_lines":[{"line_number":548,"context_line":"    def reload_prom_server(self, context, reload_uri):"},{"line_number":549,"context_line":"        resp, _ \u003d self.client.do_request("},{"line_number":550,"context_line":"            reload_uri, \"PUT\", context\u003dcontext)"},{"line_number":551,"context_line":"        if resp.status_code \u003e\u003d 400:"},{"line_number":552,"context_line":"            raise sol_ex.PrometheusPluginError("},{"line_number":553,"context_line":"                f\"Reloading request to prometheus is failed: \""},{"line_number":554,"context_line":"                f\"{resp.status_code}.\")"}],"source_content_type":"text/x-python","patch_set":13,"id":"2187f1d4_b174b4c6","line":551,"range":{"start_line":551,"start_character":11,"end_line":551,"end_character":34},"in_reply_to":"d7dc603c_c3739ebc","updated":"2023-01-04 03:43:28.000000000","message":"\u003e requests library is not directly used.\n\nI think it\u0027s true for the requests library but isn\u0027t true for the Response (please see below), but as you said the point is how to check the status code. I think it\u0027s ok for +1.\n\n```\nIn [9]: from keystoneauth1.session import Session\n\nIn [10]: sess \u003d Session()\n\nIn [12]: resp \u003d sess.request(\u0027https://www.google.com\u0027, \u0027GET\u0027, authenticated\u003dFalse, verify\u003dFalse)\n\nIn [12]: resp.raise_for_status()\n\nIn [13]: type(resp)\nOut[13]: requests.models.Response\n```","commit_id":"524c1181941b9342790f5850076c476209a4ad7a"}],"tacker/sol_refactored/controller/vnfpm_v2.py":[{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"9bf39965fe6bc684ca6b1a7fe178f0bc6d3cf0bd","unresolved":true,"context_lines":[{"line_number":197,"context_line":"        try:"},{"line_number":198,"context_line":"            self.plugin.create_job(context\u003dcontext, pm_job\u003dpm_job)"},{"line_number":199,"context_line":"        except sol_ex.PrometheusPluginError as e:"},{"line_number":200,"context_line":"            LOG.error(\"%s\", e.args[0])"},{"line_number":201,"context_line":"            raise sol_ex.PrometheusSettingFailed from e"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        pm_job.create(context)"}],"source_content_type":"text/x-python","patch_set":10,"id":"b964c918_91982d19","line":200,"updated":"2022-11-30 12:22:08.000000000","message":"It is better to describe why error occurs in the log message.\nCould you add the error reasons to LOG.error?\n(i.e.) \"Failed to create PM job.\"","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":34712,"name":"Yuta Kazato","display_name":"Yuta Kazato","email":"yuta.kazato.nw@hco.ntt.co.jp","username":"kazatoy-ntt"},"change_message_id":"24d829298920b35acd19822be8a57d8fccbd9825","unresolved":false,"context_lines":[{"line_number":197,"context_line":"        try:"},{"line_number":198,"context_line":"            self.plugin.create_job(context\u003dcontext, pm_job\u003dpm_job)"},{"line_number":199,"context_line":"        except sol_ex.PrometheusPluginError as e:"},{"line_number":200,"context_line":"            LOG.error(\"%s\", e.args[0])"},{"line_number":201,"context_line":"            raise sol_ex.PrometheusSettingFailed from e"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        pm_job.create(context)"}],"source_content_type":"text/x-python","patch_set":10,"id":"88b6e844_24695e5b","line":200,"in_reply_to":"b5f2c34f_f2adc19d","updated":"2022-12-15 00:57:58.000000000","message":"Ack","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"60bfc6c6413f02cd4f46a03458793cfc8e89133b","unresolved":true,"context_lines":[{"line_number":197,"context_line":"        try:"},{"line_number":198,"context_line":"            self.plugin.create_job(context\u003dcontext, pm_job\u003dpm_job)"},{"line_number":199,"context_line":"        except sol_ex.PrometheusPluginError as e:"},{"line_number":200,"context_line":"            LOG.error(\"%s\", e.args[0])"},{"line_number":201,"context_line":"            raise sol_ex.PrometheusSettingFailed from e"},{"line_number":202,"context_line":""},{"line_number":203,"context_line":"        pm_job.create(context)"}],"source_content_type":"text/x-python","patch_set":10,"id":"b5f2c34f_f2adc19d","line":200,"in_reply_to":"b964c918_91982d19","updated":"2022-12-05 14:11:45.000000000","message":"Fixed in PS12.","commit_id":"07b7eab7791b41a992fa1bb4474c5f5dbcbef2db"}]}
