)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"9324f273cb469cc12c0a1689f09338affe3771c3","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"7bb9dbf8_2e6f95c7","updated":"2022-09-02 07:19:35.000000000","message":"recheck","commit_id":"b835e5d767e822bbce0e2786fe4220862b2cfe41"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"ae0d18a4d46c734d41c88599c157418569fd7a8b","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":3,"id":"bacd9944_8e8e694d","updated":"2022-09-02 07:01:17.000000000","message":"recheck","commit_id":"b835e5d767e822bbce0e2786fe4220862b2cfe41"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"48f8a09b51bd0c328421a0d1e6fa8e1f25c2e799","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"9d906227_39904e37","in_reply_to":"7bb9dbf8_2e6f95c7","updated":"2022-09-02 07:38:04.000000000","message":"Done","commit_id":"b835e5d767e822bbce0e2786fe4220862b2cfe41"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"32f818653dbe57798bd7984cb57811b7ab062c44","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":3,"id":"8935b218_22ef0feb","in_reply_to":"bacd9944_8e8e694d","updated":"2022-09-02 07:02:49.000000000","message":"Done","commit_id":"b835e5d767e822bbce0e2786fe4220862b2cfe41"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"392d198550256c67ea571fb0129dca4850ac2b75","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"58812db4_0805785c","updated":"2022-09-07 10:42:22.000000000","message":"recheck","commit_id":"0aa68f68057f8e059db217867f530556f4a83e93"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"643ab777d9761eafb6a6f58b0f5c1cf4a5899363","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c43ee5ce_06145979","updated":"2022-09-07 06:43:48.000000000","message":"recheck","commit_id":"0aa68f68057f8e059db217867f530556f4a83e93"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"a8ff5f91b42b706777f70e33c71c1152eb636178","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"07f0b0d9_d6d3a911","in_reply_to":"58812db4_0805785c","updated":"2022-09-07 14:08:45.000000000","message":"Done","commit_id":"0aa68f68057f8e059db217867f530556f4a83e93"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"c3605086e8e0993ce717e2f56632e96c20ac48fd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"982beed0_c8665ac4","in_reply_to":"c43ee5ce_06145979","updated":"2022-09-07 10:10:36.000000000","message":"Done","commit_id":"0aa68f68057f8e059db217867f530556f4a83e93"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d84612cdb734e02ae4eccbfa23af735e10400e5f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"364c9335_2bdcaedd","updated":"2022-09-07 20:50:21.000000000","message":"recheck","commit_id":"957ce18e5e8d00620583a5a3d50a0ba660573f6e"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"2fe675e136eebeb522cbbf2b947468d5f8250c2e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"647c4b2a_4c9e6ae0","updated":"2022-09-07 17:17:00.000000000","message":"recheck","commit_id":"957ce18e5e8d00620583a5a3d50a0ba660573f6e"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"a9e7c2a8cb5af6ddb1b1c8fc8478fd2b1b61f873","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"d011c268_d332a236","updated":"2022-09-07 23:58:16.000000000","message":"recheck","commit_id":"957ce18e5e8d00620583a5a3d50a0ba660573f6e"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"70248e7431c888dddb8c66f59ec6bdd987733588","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"183b9f4d_342ba8ca","updated":"2022-09-09 08:17:15.000000000","message":"recheck","commit_id":"6213592e229135a69d6dea545a0c39aaee4748f3"},{"author":{"_account_id":32581,"name":"Hirofumi Noguchi","email":"hirofumi.noguchi.rs@hco.ntt.co.jp","username":"hirofumi-noguchi"},"change_message_id":"4182d8b1488bde0e613d803f5c8c6a07f2243f6c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"015a9551_66660d57","updated":"2022-09-12 02:17:29.000000000","message":"Thank you for the patch.\nPlease kindly check my comments.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"b0f269331ccd685501188d4dbcff4cb9dcb27023","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":14,"id":"2983a805_bd3cadad","updated":"2022-09-09 14:44:36.000000000","message":"recheck","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"c9c4d38a_7419be93","updated":"2022-09-12 07:14:36.000000000","message":"Thank you for your patch. Please kindly see my comments.","commit_id":"6bcc2ef1dc0f0458d4d8cad7488b7e554573f508"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"93967b3c630e22f3d3776e813a41f2845f1551d7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"3632ee23_21c8eeba","updated":"2022-09-13 14:20:46.000000000","message":"Sorry for late review, please kindly find my comments.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"5bd60fd4_af7da5cb","updated":"2022-09-12 16:50:19.000000000","message":"Thank you for the comments.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"32abfaf824c691727bff50c59d0a70b1aee27c6e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"1b654e59_a1bc5808","updated":"2022-09-12 16:51:12.000000000","message":"recheck","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"aaf96a771521857f77b3741c46eb125f7dd67a1a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"c139cdee_48a1afa7","updated":"2022-09-14 12:06:11.000000000","message":"Thank you for the comment.","commit_id":"da14614bd2027cc1d64bcf14b9b33d02d1562293"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"1df94e4b68eaf0d537b995019c5cf2eb563905a6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"1d212be1_a9981806","updated":"2022-09-14 13:20:02.000000000","message":"recheck","commit_id":"da14614bd2027cc1d64bcf14b9b33d02d1562293"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"fcabcf40a29589310bafc23710b2290a92f3caed","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":17,"id":"5606199f_4ffe68e3","updated":"2022-09-14 16:31:12.000000000","message":"recheck","commit_id":"da14614bd2027cc1d64bcf14b9b33d02d1562293"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"68185ba9_3613c1c6","updated":"2022-09-15 11:16:30.000000000","message":"Thank you for the comments.","commit_id":"9bbaea163ef60b9bc0bcf9756f025093965fe740"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"a1b7e1ffd227641dd3c0c257bfbd57ba07f40677","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":24,"id":"8e67473b_79c8a337","updated":"2022-09-16 04:35:30.000000000","message":"Thank you for the comments.","commit_id":"b5e7e57893d7ae92da9df9932b41f46b271ed9f1"}],"tacker/sol_refactored/api/policies/vnflcm_v2.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"9b515213c7cec88907633fa6f7b3fe1db8c29bbc","unresolved":true,"context_lines":[{"line_number":238,"context_line":"    ),"},{"line_number":239,"context_line":"]"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"SERVER_NOTIFICATION_POLICY_NAME \u003d \\"},{"line_number":242,"context_line":"    \u0027tacker_server_notification_api:server_notification:{}\u0027"},{"line_number":243,"context_line":"SERVER_NOTIFICATION_PATH \u003d CONF.server_notification.uri_path_prefix"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"c5e17839_bdf1c387","line":241,"updated":"2022-09-15 05:15:42.000000000","message":"It\u0027s better to move this definition to L24.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":false,"context_lines":[{"line_number":238,"context_line":"    ),"},{"line_number":239,"context_line":"]"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"SERVER_NOTIFICATION_POLICY_NAME \u003d \\"},{"line_number":242,"context_line":"    \u0027tacker_server_notification_api:server_notification:{}\u0027"},{"line_number":243,"context_line":"SERVER_NOTIFICATION_PATH \u003d CONF.server_notification.uri_path_prefix"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"e8255193_82df0165","line":241,"in_reply_to":"0bff4b6a_9bf30fbc","updated":"2022-09-16 00:53:52.000000000","message":"Done","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":238,"context_line":"    ),"},{"line_number":239,"context_line":"]"},{"line_number":240,"context_line":""},{"line_number":241,"context_line":"SERVER_NOTIFICATION_POLICY_NAME \u003d \\"},{"line_number":242,"context_line":"    \u0027tacker_server_notification_api:server_notification:{}\u0027"},{"line_number":243,"context_line":"SERVER_NOTIFICATION_PATH \u003d CONF.server_notification.uri_path_prefix"},{"line_number":244,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"0bff4b6a_9bf30fbc","line":241,"in_reply_to":"c5e17839_bdf1c387","updated":"2022-09-15 11:16:30.000000000","message":"Fixed at patchset19.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"9b515213c7cec88907633fa6f7b3fe1db8c29bbc","unresolved":true,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"SERVER_NOTIFICATION_POLICY_NAME \u003d \\"},{"line_number":242,"context_line":"    \u0027tacker_server_notification_api:server_notification:{}\u0027"},{"line_number":243,"context_line":"SERVER_NOTIFICATION_PATH \u003d CONF.server_notification.uri_path_prefix"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"sn_rules \u003d ["},{"line_number":246,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":18,"id":"aa14d801_8a0c6786","line":243,"updated":"2022-09-15 05:15:42.000000000","message":"It\u0027s better to move this definition to L34.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":false,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"SERVER_NOTIFICATION_POLICY_NAME \u003d \\"},{"line_number":242,"context_line":"    \u0027tacker_server_notification_api:server_notification:{}\u0027"},{"line_number":243,"context_line":"SERVER_NOTIFICATION_PATH \u003d CONF.server_notification.uri_path_prefix"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"sn_rules \u003d ["},{"line_number":246,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":18,"id":"e9342cd8_942391bb","line":243,"in_reply_to":"5987f5b9_41e58063","updated":"2022-09-16 00:53:52.000000000","message":"Done","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":240,"context_line":""},{"line_number":241,"context_line":"SERVER_NOTIFICATION_POLICY_NAME \u003d \\"},{"line_number":242,"context_line":"    \u0027tacker_server_notification_api:server_notification:{}\u0027"},{"line_number":243,"context_line":"SERVER_NOTIFICATION_PATH \u003d CONF.server_notification.uri_path_prefix"},{"line_number":244,"context_line":""},{"line_number":245,"context_line":"sn_rules \u003d ["},{"line_number":246,"context_line":"    policy.DocumentedRuleDefault("}],"source_content_type":"text/x-python","patch_set":18,"id":"5987f5b9_41e58063","line":243,"in_reply_to":"aa14d801_8a0c6786","updated":"2022-09-15 11:16:30.000000000","message":"Fixed at patchset19.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"}],"tacker/sol_refactored/api/schemas/server_notification_schemas.py":[{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"93967b3c630e22f3d3776e813a41f2845f1551d7","unresolved":true,"context_lines":[{"line_number":1,"context_line":"from tacker.sol_refactored.api.schemas import common_types"},{"line_number":2,"context_line":"# Copyright (C) 2022 Fujitsu"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":16,"id":"a63511a1_aa8e0fcf","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":58},"updated":"2022-09-13 14:20:46.000000000","message":"Could you move to under license header?","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"ddfb9c1f9bcc69e647173aa49cfbc6418d682707","unresolved":true,"context_lines":[{"line_number":1,"context_line":"from tacker.sol_refactored.api.schemas import common_types"},{"line_number":2,"context_line":"# Copyright (C) 2022 Fujitsu"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":16,"id":"1074b222_b04be49c","line":1,"updated":"2022-09-14 18:14:37.000000000","message":"It should be under the license description.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":1,"context_line":"from tacker.sol_refactored.api.schemas import common_types"},{"line_number":2,"context_line":"# Copyright (C) 2022 Fujitsu"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":16,"id":"60ae2f0f_4d53f591","line":1,"in_reply_to":"1074b222_b04be49c","updated":"2022-09-15 11:16:30.000000000","message":"It was already fixed at patchset17.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"aaf96a771521857f77b3741c46eb125f7dd67a1a","unresolved":true,"context_lines":[{"line_number":1,"context_line":"from tacker.sol_refactored.api.schemas import common_types"},{"line_number":2,"context_line":"# Copyright (C) 2022 Fujitsu"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":16,"id":"e30394ff_110dd03f","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":58},"in_reply_to":"a63511a1_aa8e0fcf","updated":"2022-09-14 12:06:11.000000000","message":"Fixed at patchset 17.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"a7ad932918be5cc2726a456b2a82dba010c52e07","unresolved":false,"context_lines":[{"line_number":1,"context_line":"from tacker.sol_refactored.api.schemas import common_types"},{"line_number":2,"context_line":"# Copyright (C) 2022 Fujitsu"},{"line_number":3,"context_line":"# All Rights Reserved."},{"line_number":4,"context_line":"#"}],"source_content_type":"text/x-python","patch_set":16,"id":"0e34024a_6903c358","line":1,"range":{"start_line":1,"start_character":0,"end_line":1,"end_character":58},"in_reply_to":"e30394ff_110dd03f","updated":"2022-09-16 01:21:34.000000000","message":"Ack","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"}],"tacker/sol_refactored/api/server_notification_router.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"3965514351783f98e814f10c70bee83f75e3b86a","unresolved":true,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tacker.sol_refactored.api.policies import vnflcm_v2"},{"line_number":17,"context_line":"from tacker.sol_refactored.api import server_notification_wsgi as fn_wsgi"},{"line_number":18,"context_line":"from tacker.sol_refactored.controller import server_notification_controller"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"55a378f5_b16fe72a","line":17,"range":{"start_line":17,"start_character":66,"end_line":17,"end_character":73},"updated":"2022-09-15 07:55:03.000000000","message":"Nit: sn_wsgi","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tacker.sol_refactored.api.policies import vnflcm_v2"},{"line_number":17,"context_line":"from tacker.sol_refactored.api import server_notification_wsgi as fn_wsgi"},{"line_number":18,"context_line":"from tacker.sol_refactored.controller import server_notification_controller"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"ec490236_79f5b5fb","line":17,"range":{"start_line":17,"start_character":66,"end_line":17,"end_character":73},"in_reply_to":"55a378f5_b16fe72a","updated":"2022-09-15 11:16:30.000000000","message":"Fixed at patchset19.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":false,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tacker.sol_refactored.api.policies import vnflcm_v2"},{"line_number":17,"context_line":"from tacker.sol_refactored.api import server_notification_wsgi as fn_wsgi"},{"line_number":18,"context_line":"from tacker.sol_refactored.controller import server_notification_controller"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":18,"id":"f1287f9b_9de92b2e","line":17,"range":{"start_line":17,"start_character":66,"end_line":17,"end_character":73},"in_reply_to":"ec490236_79f5b5fb","updated":"2022-09-16 00:53:52.000000000","message":"Done","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"}],"tacker/sol_refactored/api/server_notification_validator.py":[{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":22,"context_line":"from tacker.sol_refactored.common import exceptions as sol_ex"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ServerNotificationSchemaValidator(validators._SchemaValidator):"},{"line_number":26,"context_line":"    def validate(self, *args, **kwargs):"},{"line_number":27,"context_line":"        try:"},{"line_number":28,"context_line":"            super(ServerNotificationSchemaValidator, self).validate("}],"source_content_type":"text/x-python","patch_set":14,"id":"3a01c845_e37d9f11","line":25,"updated":"2022-09-12 07:14:36.000000000","message":"`validators._SchemaValidator` is protected class, thus it shouldn\u0027t be referred from other modules.\nHowever, this refactoring is out of scope of this patch, so could you write TODO comment at this line?\n\n```\nTODO: `validators._SchemaValidator` is protected class, thus it shouldn\u0027t be\n      referred from other modules. This refactoring will be done in other\n      patches in the future.\n```","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":22,"context_line":"from tacker.sol_refactored.common import exceptions as sol_ex"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ServerNotificationSchemaValidator(validators._SchemaValidator):"},{"line_number":26,"context_line":"    def validate(self, *args, **kwargs):"},{"line_number":27,"context_line":"        try:"},{"line_number":28,"context_line":"            super(ServerNotificationSchemaValidator, self).validate("}],"source_content_type":"text/x-python","patch_set":14,"id":"65bf26b8_6f22d24b","line":25,"in_reply_to":"3a01c845_e37d9f11","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":22,"context_line":"from tacker.sol_refactored.common import exceptions as sol_ex"},{"line_number":23,"context_line":""},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"class ServerNotificationSchemaValidator(validators._SchemaValidator):"},{"line_number":26,"context_line":"    def validate(self, *args, **kwargs):"},{"line_number":27,"context_line":"        try:"},{"line_number":28,"context_line":"            super(ServerNotificationSchemaValidator, self).validate("}],"source_content_type":"text/x-python","patch_set":14,"id":"4cded50b_b3b42db3","line":25,"in_reply_to":"65bf26b8_6f22d24b","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"}],"tacker/sol_refactored/api/server_notification_wsgi.py":[{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":24,"context_line":"class ServerNotificationResponse(sol_wsgi.SolResponse):"},{"line_number":25,"context_line":"    allowed_headers \u003d [\u0027content_type\u0027]"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __init__(self, status, body, **kwargs):"},{"line_number":28,"context_line":"        self.status \u003d status"},{"line_number":29,"context_line":"        self.body \u003d body"},{"line_number":30,"context_line":"        self.headers \u003d {}"}],"source_content_type":"text/x-python","patch_set":14,"id":"97606ccf_127d48cc","line":27,"updated":"2022-09-12 07:14:36.000000000","message":"Is calling `__init__()` of super class unnecessary? \n(Initialization of SolResponse sets version and accept-ranges headers.)","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":24,"context_line":"class ServerNotificationResponse(sol_wsgi.SolResponse):"},{"line_number":25,"context_line":"    allowed_headers \u003d [\u0027content_type\u0027]"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __init__(self, status, body, **kwargs):"},{"line_number":28,"context_line":"        self.status \u003d status"},{"line_number":29,"context_line":"        self.body \u003d body"},{"line_number":30,"context_line":"        self.headers \u003d {}"}],"source_content_type":"text/x-python","patch_set":14,"id":"270d30f5_1c890c72","line":27,"in_reply_to":"0f04fa78_cceb28c5","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":24,"context_line":"class ServerNotificationResponse(sol_wsgi.SolResponse):"},{"line_number":25,"context_line":"    allowed_headers \u003d [\u0027content_type\u0027]"},{"line_number":26,"context_line":""},{"line_number":27,"context_line":"    def __init__(self, status, body, **kwargs):"},{"line_number":28,"context_line":"        self.status \u003d status"},{"line_number":29,"context_line":"        self.body \u003d body"},{"line_number":30,"context_line":"        self.headers \u003d {}"}],"source_content_type":"text/x-python","patch_set":14,"id":"0f04fa78_cceb28c5","line":27,"in_reply_to":"97606ccf_127d48cc","updated":"2022-09-12 16:50:19.000000000","message":"ServerNotificationResponse is almost same class as SolResponse other than that it uses original header content. So ServerNotificationResponse does not call __init__() of SolResponse class","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":60,"context_line":"            self._check_policy(request, action)"},{"line_number":61,"context_line":"            result \u003d self._dispatch(request, action, args)"},{"line_number":62,"context_line":"            response \u003d result.serialize(accept)"},{"line_number":63,"context_line":"        except Exception as ex:"},{"line_number":64,"context_line":"            result \u003d ServerNotificationErrorResponse(ex, request)"},{"line_number":65,"context_line":"            try:"},{"line_number":66,"context_line":"                response \u003d result.serialize(\u0027application/problem+json\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"ab67cf3a_47ad8614","line":63,"updated":"2022-09-12 07:14:36.000000000","message":"Please specify exceptions that will be raised in the above try clause. I think we only should handle exceptions that relate to SOL exceptions at this except clause, so the below seems to be better:\n\n```\n        except sol_ex.SolException:\n```","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":60,"context_line":"            self._check_policy(request, action)"},{"line_number":61,"context_line":"            result \u003d self._dispatch(request, action, args)"},{"line_number":62,"context_line":"            response \u003d result.serialize(accept)"},{"line_number":63,"context_line":"        except Exception as ex:"},{"line_number":64,"context_line":"            result \u003d ServerNotificationErrorResponse(ex, request)"},{"line_number":65,"context_line":"            try:"},{"line_number":66,"context_line":"                response \u003d result.serialize(\u0027application/problem+json\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"ed5f181e_322d3bc3","line":63,"in_reply_to":"87c8a63b_dd0b6a3f","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":60,"context_line":"            self._check_policy(request, action)"},{"line_number":61,"context_line":"            result \u003d self._dispatch(request, action, args)"},{"line_number":62,"context_line":"            response \u003d result.serialize(accept)"},{"line_number":63,"context_line":"        except Exception as ex:"},{"line_number":64,"context_line":"            result \u003d ServerNotificationErrorResponse(ex, request)"},{"line_number":65,"context_line":"            try:"},{"line_number":66,"context_line":"                response \u003d result.serialize(\u0027application/problem+json\u0027)"}],"source_content_type":"text/x-python","patch_set":14,"id":"87c8a63b_dd0b6a3f","line":63,"in_reply_to":"ab67cf3a_47ad8614","updated":"2022-09-12 16:50:19.000000000","message":"ServerNotificationResource class is almost same as SolResource class other than that it does not check version header. For the consistency with __call__() method of SolResource, would you please leave it as it is?","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":64,"context_line":"            result \u003d ServerNotificationErrorResponse(ex, request)"},{"line_number":65,"context_line":"            try:"},{"line_number":66,"context_line":"                response \u003d result.serialize(\u0027application/problem+json\u0027)"},{"line_number":67,"context_line":"            except Exception:"},{"line_number":68,"context_line":"                LOG.exception(\"Unknown error\")"},{"line_number":69,"context_line":"                return webob.exc.HTTPBadRequest(explanation\u003d\"Unknown error\")"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"4b765eb6_2d6ad7e1","line":67,"updated":"2022-09-12 07:14:36.000000000","message":"ditto","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":64,"context_line":"            result \u003d ServerNotificationErrorResponse(ex, request)"},{"line_number":65,"context_line":"            try:"},{"line_number":66,"context_line":"                response \u003d result.serialize(\u0027application/problem+json\u0027)"},{"line_number":67,"context_line":"            except Exception:"},{"line_number":68,"context_line":"                LOG.exception(\"Unknown error\")"},{"line_number":69,"context_line":"                return webob.exc.HTTPBadRequest(explanation\u003d\"Unknown error\")"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"29554ab7_9f80b640","line":67,"in_reply_to":"165ff665_79a2a246","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":64,"context_line":"            result \u003d ServerNotificationErrorResponse(ex, request)"},{"line_number":65,"context_line":"            try:"},{"line_number":66,"context_line":"                response \u003d result.serialize(\u0027application/problem+json\u0027)"},{"line_number":67,"context_line":"            except Exception:"},{"line_number":68,"context_line":"                LOG.exception(\"Unknown error\")"},{"line_number":69,"context_line":"                return webob.exc.HTTPBadRequest(explanation\u003d\"Unknown error\")"},{"line_number":70,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"165ff665_79a2a246","line":67,"in_reply_to":"4b765eb6_2d6ad7e1","updated":"2022-09-12 16:50:19.000000000","message":"same as #63","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"}],"tacker/sol_refactored/common/config.py":[{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":96,"context_line":"SERVER_NOTIFICATION_OPTS \u003d ["},{"line_number":97,"context_line":"    cfg.BoolOpt(\u0027server_notification\u0027,"},{"line_number":98,"context_line":"                default\u003dFalse,"},{"line_number":99,"context_line":"                help\u003d_(\u0027Enable server notification autohealing\u0027)),"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    cfg.StrOpt(\u0027uri_path_prefix\u0027,"},{"line_number":102,"context_line":"               default\u003d\u0027/server_notification\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"1664e277_70b6574d","line":99,"updated":"2022-09-12 07:14:36.000000000","message":"`_` is undefined symbol. Please add import statement at the top of this source.\n\n```\nfrom tacker._i18n import _\n```","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":96,"context_line":"SERVER_NOTIFICATION_OPTS \u003d ["},{"line_number":97,"context_line":"    cfg.BoolOpt(\u0027server_notification\u0027,"},{"line_number":98,"context_line":"                default\u003dFalse,"},{"line_number":99,"context_line":"                help\u003d_(\u0027Enable server notification autohealing\u0027)),"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    cfg.StrOpt(\u0027uri_path_prefix\u0027,"},{"line_number":102,"context_line":"               default\u003d\u0027/server_notification\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"d877b2d2_39115078","line":99,"in_reply_to":"1664e277_70b6574d","updated":"2022-09-12 16:50:19.000000000","message":"It is fixed in another patch. (commit 8c7e2867c06f1e4854995aa7c4911d42efad9caa Enable retries when sending notifications)","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":96,"context_line":"SERVER_NOTIFICATION_OPTS \u003d ["},{"line_number":97,"context_line":"    cfg.BoolOpt(\u0027server_notification\u0027,"},{"line_number":98,"context_line":"                default\u003dFalse,"},{"line_number":99,"context_line":"                help\u003d_(\u0027Enable server notification autohealing\u0027)),"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    cfg.StrOpt(\u0027uri_path_prefix\u0027,"},{"line_number":102,"context_line":"               default\u003d\u0027/server_notification\u0027,"}],"source_content_type":"text/x-python","patch_set":14,"id":"b045a3e0_cf042912","line":99,"in_reply_to":"d877b2d2_39115078","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":102,"context_line":"               default\u003d\u0027/server_notification\u0027,"},{"line_number":103,"context_line":"               help\u003d_(\u0027Uri path prefix string for server notification. \u0027"},{"line_number":104,"context_line":"                      \u0027When changing this configuration, \u0027"},{"line_number":105,"context_line":"                      \u0027server_notification description in api-pasete.ini \u0027"},{"line_number":106,"context_line":"                      \u0027must be changed to the same value.\u0027)),"},{"line_number":107,"context_line":"    cfg.IntOpt(\u0027timer_interval\u0027,"},{"line_number":108,"context_line":"               default\u003d20,"}],"source_content_type":"text/x-python","patch_set":14,"id":"3baac168_480058ff","line":105,"range":{"start_line":105,"start_character":62,"end_line":105,"end_character":68},"updated":"2022-09-12 07:14:36.000000000","message":"nits: paste","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":102,"context_line":"               default\u003d\u0027/server_notification\u0027,"},{"line_number":103,"context_line":"               help\u003d_(\u0027Uri path prefix string for server notification. \u0027"},{"line_number":104,"context_line":"                      \u0027When changing this configuration, \u0027"},{"line_number":105,"context_line":"                      \u0027server_notification description in api-pasete.ini \u0027"},{"line_number":106,"context_line":"                      \u0027must be changed to the same value.\u0027)),"},{"line_number":107,"context_line":"    cfg.IntOpt(\u0027timer_interval\u0027,"},{"line_number":108,"context_line":"               default\u003d20,"}],"source_content_type":"text/x-python","patch_set":14,"id":"cfe22162_617e586f","line":105,"range":{"start_line":105,"start_character":62,"end_line":105,"end_character":68},"in_reply_to":"3baac168_480058ff","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":102,"context_line":"               default\u003d\u0027/server_notification\u0027,"},{"line_number":103,"context_line":"               help\u003d_(\u0027Uri path prefix string for server notification. \u0027"},{"line_number":104,"context_line":"                      \u0027When changing this configuration, \u0027"},{"line_number":105,"context_line":"                      \u0027server_notification description in api-pasete.ini \u0027"},{"line_number":106,"context_line":"                      \u0027must be changed to the same value.\u0027)),"},{"line_number":107,"context_line":"    cfg.IntOpt(\u0027timer_interval\u0027,"},{"line_number":108,"context_line":"               default\u003d20,"}],"source_content_type":"text/x-python","patch_set":14,"id":"992de0e2_39d2be51","line":105,"range":{"start_line":105,"start_character":62,"end_line":105,"end_character":68},"in_reply_to":"cfe22162_617e586f","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"}],"tacker/sol_refactored/common/exceptions.py":[{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"# server_notification"},{"line_number":362,"context_line":"class ServerNotificationNotEnabled(SolHttpError404):"},{"line_number":363,"context_line":"    message \u003d _(\"ServerNotification API is not enabled.\")"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"class ServerNotificationValidationError(SolValidationError):"}],"source_content_type":"text/x-python","patch_set":14,"id":"a467a9d7_417dceed","line":363,"updated":"2022-09-12 07:14:36.000000000","message":"`_` is undefined symbol. Please add import statement at the top of this source.\n\n```\nfrom tacker._i18n import _\n```","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"# server_notification"},{"line_number":362,"context_line":"class ServerNotificationNotEnabled(SolHttpError404):"},{"line_number":363,"context_line":"    message \u003d _(\"ServerNotification API is not enabled.\")"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"class ServerNotificationValidationError(SolValidationError):"}],"source_content_type":"text/x-python","patch_set":14,"id":"64d5e96d_93f6f2dc","line":363,"in_reply_to":"68b26063_41426714","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":360,"context_line":""},{"line_number":361,"context_line":"# server_notification"},{"line_number":362,"context_line":"class ServerNotificationNotEnabled(SolHttpError404):"},{"line_number":363,"context_line":"    message \u003d _(\"ServerNotification API is not enabled.\")"},{"line_number":364,"context_line":""},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"class ServerNotificationValidationError(SolValidationError):"}],"source_content_type":"text/x-python","patch_set":14,"id":"68b26063_41426714","line":363,"in_reply_to":"a467a9d7_417dceed","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"}],"tacker/sol_refactored/common/http_client.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"9b515213c7cec88907633fa6f7b3fe1db8c29bbc","unresolved":true,"context_lines":[{"line_number":94,"context_line":"    def _decode_body(self, resp):"},{"line_number":95,"context_line":"        if resp.status_code \u003d\u003d 204:  # no content"},{"line_number":96,"context_line":"            return"},{"line_number":97,"context_line":"        content_type \u003d (resp.headers[\u0027Content-Type\u0027]"},{"line_number":98,"context_line":"                        if \u0027Content-Type\u0027 in resp.headers else \u0027\u0027)"},{"line_number":99,"context_line":"        if content_type \u003d\u003d \u0027application/zip\u0027:"},{"line_number":100,"context_line":"            return resp.content"},{"line_number":101,"context_line":"        if content_type \u003d\u003d \u0027text/plain\u0027:"}],"source_content_type":"text/x-python","patch_set":18,"id":"07b2d3ea_d22eea3d","line":98,"range":{"start_line":97,"start_character":8,"end_line":98,"end_character":66},"updated":"2022-09-15 05:15:42.000000000","message":"Can you refactor as below?\n---\ncontent_type \u003d resp.headers.get(\u0027Content-Type\u0027, \u0027\u0027)","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":94,"context_line":"    def _decode_body(self, resp):"},{"line_number":95,"context_line":"        if resp.status_code \u003d\u003d 204:  # no content"},{"line_number":96,"context_line":"            return"},{"line_number":97,"context_line":"        content_type \u003d (resp.headers[\u0027Content-Type\u0027]"},{"line_number":98,"context_line":"                        if \u0027Content-Type\u0027 in resp.headers else \u0027\u0027)"},{"line_number":99,"context_line":"        if content_type \u003d\u003d \u0027application/zip\u0027:"},{"line_number":100,"context_line":"            return resp.content"},{"line_number":101,"context_line":"        if content_type \u003d\u003d \u0027text/plain\u0027:"}],"source_content_type":"text/x-python","patch_set":18,"id":"83601aa3_582375ad","line":98,"range":{"start_line":97,"start_character":8,"end_line":98,"end_character":66},"in_reply_to":"07b2d3ea_d22eea3d","updated":"2022-09-15 11:16:30.000000000","message":"Fixed at patchset19.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":false,"context_lines":[{"line_number":94,"context_line":"    def _decode_body(self, resp):"},{"line_number":95,"context_line":"        if resp.status_code \u003d\u003d 204:  # no content"},{"line_number":96,"context_line":"            return"},{"line_number":97,"context_line":"        content_type \u003d (resp.headers[\u0027Content-Type\u0027]"},{"line_number":98,"context_line":"                        if \u0027Content-Type\u0027 in resp.headers else \u0027\u0027)"},{"line_number":99,"context_line":"        if content_type \u003d\u003d \u0027application/zip\u0027:"},{"line_number":100,"context_line":"            return resp.content"},{"line_number":101,"context_line":"        if content_type \u003d\u003d \u0027text/plain\u0027:"}],"source_content_type":"text/x-python","patch_set":18,"id":"4e82fdb6_f08c38bc","line":98,"range":{"start_line":97,"start_character":8,"end_line":98,"end_character":66},"in_reply_to":"83601aa3_582375ad","updated":"2022-09-16 00:53:52.000000000","message":"Done","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"}],"tacker/sol_refactored/common/server_notification.py":[{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":98,"context_line":"        return vnfc_ids"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @validator.schema(server_notification_schemas.ServerNotification)"},{"line_number":101,"context_line":"    def notify(self, request, vnf_instance_id, server_id, body):"},{"line_number":102,"context_line":"        # server_id does not need to use because"},{"line_number":103,"context_line":"        # it is enough to use alarm_id."},{"line_number":104,"context_line":"        context \u003d request.context"},{"line_number":105,"context_line":"        vnfcids \u003d self.get_vnfc_instance_id("},{"line_number":106,"context_line":"            context, vnf_instance_id, body[\u0027notification\u0027][\u0027alarm_id\u0027],"}],"source_content_type":"text/x-python","patch_set":14,"id":"bfd67f19_2786e0c6","line":103,"range":{"start_line":101,"start_character":0,"end_line":103,"end_character":39},"updated":"2022-09-12 07:14:36.000000000","message":"How about removing it from arguments of this method?","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":98,"context_line":"        return vnfc_ids"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @validator.schema(server_notification_schemas.ServerNotification)"},{"line_number":101,"context_line":"    def notify(self, request, vnf_instance_id, server_id, body):"},{"line_number":102,"context_line":"        # server_id does not need to use because"},{"line_number":103,"context_line":"        # it is enough to use alarm_id."},{"line_number":104,"context_line":"        context \u003d request.context"},{"line_number":105,"context_line":"        vnfcids \u003d self.get_vnfc_instance_id("},{"line_number":106,"context_line":"            context, vnf_instance_id, body[\u0027notification\u0027][\u0027alarm_id\u0027],"}],"source_content_type":"text/x-python","patch_set":14,"id":"dea3c536_1ff5aff1","line":103,"range":{"start_line":101,"start_character":0,"end_line":103,"end_character":39},"in_reply_to":"bfd67f19_2786e0c6","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":98,"context_line":"        return vnfc_ids"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @validator.schema(server_notification_schemas.ServerNotification)"},{"line_number":101,"context_line":"    def notify(self, request, vnf_instance_id, server_id, body):"},{"line_number":102,"context_line":"        # server_id does not need to use because"},{"line_number":103,"context_line":"        # it is enough to use alarm_id."},{"line_number":104,"context_line":"        context \u003d request.context"},{"line_number":105,"context_line":"        vnfcids \u003d self.get_vnfc_instance_id("},{"line_number":106,"context_line":"            context, vnf_instance_id, body[\u0027notification\u0027][\u0027alarm_id\u0027],"}],"source_content_type":"text/x-python","patch_set":14,"id":"8a1bb305_8e7ddbb4","line":103,"range":{"start_line":101,"start_character":0,"end_line":103,"end_character":39},"in_reply_to":"dea3c536_1ff5aff1","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"3965514351783f98e814f10c70bee83f75e3b86a","unresolved":true,"context_lines":[{"line_number":16,"context_line":"from tacker.sol_refactored.api.schemas import server_notification_schemas"},{"line_number":17,"context_line":"from tacker.sol_refactored.api import server_notification_validator\\"},{"line_number":18,"context_line":"    as validator"},{"line_number":19,"context_line":"from tacker.sol_refactored.api import server_notification_wsgi as fn_wsgi"},{"line_number":20,"context_line":"from tacker.sol_refactored.common import config as cfg"},{"line_number":21,"context_line":"from tacker.sol_refactored.common import exceptions as sol_ex"},{"line_number":22,"context_line":"from tacker.sol_refactored.common import monitoring_plugin_base as mon_base"}],"source_content_type":"text/x-python","patch_set":18,"id":"53690baa_bc85f4f7","line":19,"range":{"start_line":19,"start_character":66,"end_line":19,"end_character":73},"updated":"2022-09-15 07:55:03.000000000","message":"Nit: sn_wsgi","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":false,"context_lines":[{"line_number":16,"context_line":"from tacker.sol_refactored.api.schemas import server_notification_schemas"},{"line_number":17,"context_line":"from tacker.sol_refactored.api import server_notification_validator\\"},{"line_number":18,"context_line":"    as validator"},{"line_number":19,"context_line":"from tacker.sol_refactored.api import server_notification_wsgi as fn_wsgi"},{"line_number":20,"context_line":"from tacker.sol_refactored.common import config as cfg"},{"line_number":21,"context_line":"from tacker.sol_refactored.common import exceptions as sol_ex"},{"line_number":22,"context_line":"from tacker.sol_refactored.common import monitoring_plugin_base as mon_base"}],"source_content_type":"text/x-python","patch_set":18,"id":"6abe80ea_1920e2f7","line":19,"range":{"start_line":19,"start_character":66,"end_line":19,"end_character":73},"in_reply_to":"097c4e60_5e2bd8d7","updated":"2022-09-16 00:53:52.000000000","message":"Done","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":16,"context_line":"from tacker.sol_refactored.api.schemas import server_notification_schemas"},{"line_number":17,"context_line":"from tacker.sol_refactored.api import server_notification_validator\\"},{"line_number":18,"context_line":"    as validator"},{"line_number":19,"context_line":"from tacker.sol_refactored.api import server_notification_wsgi as fn_wsgi"},{"line_number":20,"context_line":"from tacker.sol_refactored.common import config as cfg"},{"line_number":21,"context_line":"from tacker.sol_refactored.common import exceptions as sol_ex"},{"line_number":22,"context_line":"from tacker.sol_refactored.common import monitoring_plugin_base as mon_base"}],"source_content_type":"text/x-python","patch_set":18,"id":"097c4e60_5e2bd8d7","line":19,"range":{"start_line":19,"start_character":66,"end_line":19,"end_character":73},"in_reply_to":"53690baa_bc85f4f7","updated":"2022-09-15 11:16:30.000000000","message":"Fixed at patchset19.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"3965514351783f98e814f10c70bee83f75e3b86a","unresolved":true,"context_lines":[{"line_number":97,"context_line":"                detail\u003d\"target vnfc not found.\")"},{"line_number":98,"context_line":"        return vnfc_ids"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @validator.schema(server_notification_schemas.ServerNotification)"},{"line_number":101,"context_line":"    def notify(self, request, vnf_instance_id, body):"},{"line_number":102,"context_line":"        context \u003d request.context"},{"line_number":103,"context_line":"        vnfcids \u003d self.get_vnfc_instance_id("}],"source_content_type":"text/x-python","patch_set":18,"id":"9cee1351_2e960f60","line":100,"updated":"2022-09-15 07:55:03.000000000","message":"Shouldn\u0027t validation be done in the controller?\nOtherwise, I don\u0027t think you can return an error response when validation fails.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":97,"context_line":"                detail\u003d\"target vnfc not found.\")"},{"line_number":98,"context_line":"        return vnfc_ids"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @validator.schema(server_notification_schemas.ServerNotification)"},{"line_number":101,"context_line":"    def notify(self, request, vnf_instance_id, body):"},{"line_number":102,"context_line":"        context \u003d request.context"},{"line_number":103,"context_line":"        vnfcids \u003d self.get_vnfc_instance_id("}],"source_content_type":"text/x-python","patch_set":18,"id":"8de0504f_0e4a9701","line":100,"in_reply_to":"5fa6b079_c3fec76e","updated":"2022-09-15 11:16:30.000000000","message":"ServerNotification class inherit MonitoringPlugin class (tacker/sol_refactored/common/monitoring_plugin_base.py). MonitoringPlugin class is intended that vendors can replace it with their own MonitoringPlugin class. That may have their own schema. so controller does not have validator and ServerNotification have its own validator.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":false,"context_lines":[{"line_number":97,"context_line":"                detail\u003d\"target vnfc not found.\")"},{"line_number":98,"context_line":"        return vnfc_ids"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @validator.schema(server_notification_schemas.ServerNotification)"},{"line_number":101,"context_line":"    def notify(self, request, vnf_instance_id, body):"},{"line_number":102,"context_line":"        context \u003d request.context"},{"line_number":103,"context_line":"        vnfcids \u003d self.get_vnfc_instance_id("}],"source_content_type":"text/x-python","patch_set":18,"id":"7a33a974_e23fb43c","line":100,"in_reply_to":"8de0504f_0e4a9701","updated":"2022-09-16 00:53:52.000000000","message":"Thank you for the answer. I see.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"1175474516cfe2202ddc49508cfe7373a20dba98","unresolved":true,"context_lines":[{"line_number":97,"context_line":"                detail\u003d\"target vnfc not found.\")"},{"line_number":98,"context_line":"        return vnfc_ids"},{"line_number":99,"context_line":""},{"line_number":100,"context_line":"    @validator.schema(server_notification_schemas.ServerNotification)"},{"line_number":101,"context_line":"    def notify(self, request, vnf_instance_id, body):"},{"line_number":102,"context_line":"        context \u003d request.context"},{"line_number":103,"context_line":"        vnfcids \u003d self.get_vnfc_instance_id("}],"source_content_type":"text/x-python","patch_set":18,"id":"5fa6b079_c3fec76e","line":100,"in_reply_to":"9cee1351_2e960f60","updated":"2022-09-15 08:10:41.000000000","message":"I\u0027m sorry, my comment above was incorrect.\nBut I have another comment.\nIMO, it would be better to execute these processes in the cotroller class, what do you think?","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"}],"tacker/sol_refactored/conductor/conductor_rpc_v2.py":[{"author":{"_account_id":32581,"name":"Hirofumi Noguchi","email":"hirofumi.noguchi.rs@hco.ntt.co.jp","username":"hirofumi-noguchi"},"change_message_id":"4182d8b1488bde0e613d803f5c8c6a07f2243f6c","unresolved":true,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def server_notification_remove_timer(self, context, vnf_instance_id):"},{"line_number":69,"context_line":"        self.server_notification_cast("},{"line_number":70,"context_line":"            context, \u0027server_notification_notify\u0027,"},{"line_number":71,"context_line":"            vnf_instance_id\u003dvnf_instance_id)"}],"source_content_type":"text/x-python","patch_set":14,"id":"d5f5d7b6_475f5833","line":70,"updated":"2022-09-12 02:17:29.000000000","message":"Isn\u0027t the method here \u0027server_notification_remove_timer\u0027?\nIs the following correct?\n\n    def server_notification_remove_timer(self, context, vnf_instance_id):\n        self.server_notification_cast(\n            context, \u0027server_notification_remove_timer\u0027,\n            vnf_instance_id\u003dvnf_instance_id)","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":32581,"name":"Hirofumi Noguchi","email":"hirofumi.noguchi.rs@hco.ntt.co.jp","username":"hirofumi-noguchi"},"change_message_id":"2196b179876f3614b5d8b587fa451ca71a6f4949","unresolved":false,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def server_notification_remove_timer(self, context, vnf_instance_id):"},{"line_number":69,"context_line":"        self.server_notification_cast("},{"line_number":70,"context_line":"            context, \u0027server_notification_notify\u0027,"},{"line_number":71,"context_line":"            vnf_instance_id\u003dvnf_instance_id)"}],"source_content_type":"text/x-python","patch_set":14,"id":"014fb8a5_65b1ef8e","line":70,"in_reply_to":"20c82959_f8a8dc9d","updated":"2022-09-14 12:26:23.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":67,"context_line":""},{"line_number":68,"context_line":"    def server_notification_remove_timer(self, context, vnf_instance_id):"},{"line_number":69,"context_line":"        self.server_notification_cast("},{"line_number":70,"context_line":"            context, \u0027server_notification_notify\u0027,"},{"line_number":71,"context_line":"            vnf_instance_id\u003dvnf_instance_id)"}],"source_content_type":"text/x-python","patch_set":14,"id":"20c82959_f8a8dc9d","line":70,"in_reply_to":"d5f5d7b6_475f5833","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"}],"tacker/sol_refactored/conductor/server_notification_driver.py":[{"author":{"_account_id":32581,"name":"Hirofumi Noguchi","email":"hirofumi.noguchi.rs@hco.ntt.co.jp","username":"hirofumi-noguchi"},"change_message_id":"4182d8b1488bde0e613d803f5c8c6a07f2243f6c","unresolved":true,"context_lines":[{"line_number":40,"context_line":"        with self.lock:"},{"line_number":41,"context_line":"            if not self.expired:"},{"line_number":42,"context_line":"                self._cancel()"},{"line_number":43,"context_line":"                self.expired \u003d True"},{"line_number":44,"context_line":"                _expired \u003d True"},{"line_number":45,"context_line":"        if _expired:"},{"line_number":46,"context_line":"            self.expiration_handler("}],"source_content_type":"text/x-python","patch_set":14,"id":"f0c9cfa4_8ed4fbd5","line":43,"updated":"2022-09-12 02:17:29.000000000","message":"This line and #L56 are duplicates.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":32581,"name":"Hirofumi Noguchi","email":"hirofumi.noguchi.rs@hco.ntt.co.jp","username":"hirofumi-noguchi"},"change_message_id":"4182d8b1488bde0e613d803f5c8c6a07f2243f6c","unresolved":true,"context_lines":[{"line_number":40,"context_line":"        with self.lock:"},{"line_number":41,"context_line":"            if not self.expired:"},{"line_number":42,"context_line":"                self._cancel()"},{"line_number":43,"context_line":"                self.expired \u003d True"},{"line_number":44,"context_line":"                _expired \u003d True"},{"line_number":45,"context_line":"        if _expired:"},{"line_number":46,"context_line":"            self.expiration_handler("}],"source_content_type":"text/x-python","patch_set":14,"id":"7c68f57d_dcd491a5","line":43,"updated":"2022-09-12 02:17:29.000000000","message":"This process is duplicates #L56.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":32581,"name":"Hirofumi Noguchi","email":"hirofumi.noguchi.rs@hco.ntt.co.jp","username":"hirofumi-noguchi"},"change_message_id":"2196b179876f3614b5d8b587fa451ca71a6f4949","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        with self.lock:"},{"line_number":41,"context_line":"            if not self.expired:"},{"line_number":42,"context_line":"                self._cancel()"},{"line_number":43,"context_line":"                self.expired \u003d True"},{"line_number":44,"context_line":"                _expired \u003d True"},{"line_number":45,"context_line":"        if _expired:"},{"line_number":46,"context_line":"            self.expiration_handler("}],"source_content_type":"text/x-python","patch_set":14,"id":"da55d36b_fee690ed","line":43,"in_reply_to":"2f41b055_e91849ab","updated":"2022-09-14 12:26:23.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":40,"context_line":"        with self.lock:"},{"line_number":41,"context_line":"            if not self.expired:"},{"line_number":42,"context_line":"                self._cancel()"},{"line_number":43,"context_line":"                self.expired \u003d True"},{"line_number":44,"context_line":"                _expired \u003d True"},{"line_number":45,"context_line":"        if _expired:"},{"line_number":46,"context_line":"            self.expiration_handler("}],"source_content_type":"text/x-python","patch_set":14,"id":"ec9127c4_53f7a200","line":43,"in_reply_to":"7c68f57d_dcd491a5","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":32581,"name":"Hirofumi Noguchi","email":"hirofumi.noguchi.rs@hco.ntt.co.jp","username":"hirofumi-noguchi"},"change_message_id":"2196b179876f3614b5d8b587fa451ca71a6f4949","unresolved":false,"context_lines":[{"line_number":40,"context_line":"        with self.lock:"},{"line_number":41,"context_line":"            if not self.expired:"},{"line_number":42,"context_line":"                self._cancel()"},{"line_number":43,"context_line":"                self.expired \u003d True"},{"line_number":44,"context_line":"                _expired \u003d True"},{"line_number":45,"context_line":"        if _expired:"},{"line_number":46,"context_line":"            self.expiration_handler("}],"source_content_type":"text/x-python","patch_set":14,"id":"b5ae748d_da930b22","line":43,"in_reply_to":"ec9127c4_53f7a200","updated":"2022-09-14 12:26:23.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":40,"context_line":"        with self.lock:"},{"line_number":41,"context_line":"            if not self.expired:"},{"line_number":42,"context_line":"                self._cancel()"},{"line_number":43,"context_line":"                self.expired \u003d True"},{"line_number":44,"context_line":"                _expired \u003d True"},{"line_number":45,"context_line":"        if _expired:"},{"line_number":46,"context_line":"            self.expiration_handler("}],"source_content_type":"text/x-python","patch_set":14,"id":"2f41b055_e91849ab","line":43,"in_reply_to":"f0c9cfa4_8ed4fbd5","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":42,"context_line":"                self._cancel()"},{"line_number":43,"context_line":"                self.expired \u003d True"},{"line_number":44,"context_line":"                _expired \u003d True"},{"line_number":45,"context_line":"        if _expired:"},{"line_number":46,"context_line":"            self.expiration_handler("},{"line_number":47,"context_line":"                self.vnf_instance_id, list(set(self.queue)))"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"f2143742_469d4b74","line":45,"updated":"2022-09-12 07:14:36.000000000","message":"Is local variable `_expired` necessary? It seems referring `self.expired` is enough for this branch.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":42,"context_line":"                self._cancel()"},{"line_number":43,"context_line":"                self.expired \u003d True"},{"line_number":44,"context_line":"                _expired \u003d True"},{"line_number":45,"context_line":"        if _expired:"},{"line_number":46,"context_line":"            self.expiration_handler("},{"line_number":47,"context_line":"                self.vnf_instance_id, list(set(self.queue)))"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"8615dc26_8442c55f","line":45,"in_reply_to":"bb9a8dd5_06cc34f3","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":42,"context_line":"                self._cancel()"},{"line_number":43,"context_line":"                self.expired \u003d True"},{"line_number":44,"context_line":"                _expired \u003d True"},{"line_number":45,"context_line":"        if _expired:"},{"line_number":46,"context_line":"            self.expiration_handler("},{"line_number":47,"context_line":"                self.vnf_instance_id, list(set(self.queue)))"},{"line_number":48,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"bb9a8dd5_06cc34f3","line":45,"in_reply_to":"f2143742_469d4b74","updated":"2022-09-12 16:50:19.000000000","message":"_expired is needed because self.expired must be changed in critical section(\"with self.lock\") and subsequent process of expiration_handler must be processed outside of critical section.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"93967b3c630e22f3d3776e813a41f2845f1551d7","unresolved":true,"context_lines":[{"line_number":113,"context_line":"        heal_req \u003d objects.HealVnfRequest(vnfcInstanceId\u003dvnfc_instance_ids)"},{"line_number":114,"context_line":"        LOG.debug(\"server_notification auto healing is processed: %s.\","},{"line_number":115,"context_line":"                  vnf_instance_id)"},{"line_number":116,"context_line":"        url \u003d CONF.v2_vnfm.endpoint + \\"},{"line_number":117,"context_line":"            \u0027/vnflcm/v2/vnf_instances/\u0027 + vnf_instance_id + \u0027/heal\u0027"},{"line_number":118,"context_line":"        resp, body \u003d self.client.do_request("},{"line_number":119,"context_line":"            url, \"POST\", body\u003dheal_req.to_dict(), version\u003d\"2.0.0\")"},{"line_number":120,"context_line":"        if resp.status_code !\u003d 202:"}],"source_content_type":"text/x-python","patch_set":16,"id":"e351881b_66714729","line":117,"range":{"start_line":116,"start_character":14,"end_line":117,"end_character":67},"updated":"2022-09-13 14:20:46.000000000","message":"Could you use f-string or format to concatenate strings?","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"aaf96a771521857f77b3741c46eb125f7dd67a1a","unresolved":true,"context_lines":[{"line_number":113,"context_line":"        heal_req \u003d objects.HealVnfRequest(vnfcInstanceId\u003dvnfc_instance_ids)"},{"line_number":114,"context_line":"        LOG.debug(\"server_notification auto healing is processed: %s.\","},{"line_number":115,"context_line":"                  vnf_instance_id)"},{"line_number":116,"context_line":"        url \u003d CONF.v2_vnfm.endpoint + \\"},{"line_number":117,"context_line":"            \u0027/vnflcm/v2/vnf_instances/\u0027 + vnf_instance_id + \u0027/heal\u0027"},{"line_number":118,"context_line":"        resp, body \u003d self.client.do_request("},{"line_number":119,"context_line":"            url, \"POST\", body\u003dheal_req.to_dict(), version\u003d\"2.0.0\")"},{"line_number":120,"context_line":"        if resp.status_code !\u003d 202:"}],"source_content_type":"text/x-python","patch_set":16,"id":"e5e3cc7d_a0a5d094","line":117,"range":{"start_line":116,"start_character":14,"end_line":117,"end_character":67},"in_reply_to":"e351881b_66714729","updated":"2022-09-14 12:06:11.000000000","message":"Fixed at patchset 17.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"a7ad932918be5cc2726a456b2a82dba010c52e07","unresolved":false,"context_lines":[{"line_number":113,"context_line":"        heal_req \u003d objects.HealVnfRequest(vnfcInstanceId\u003dvnfc_instance_ids)"},{"line_number":114,"context_line":"        LOG.debug(\"server_notification auto healing is processed: %s.\","},{"line_number":115,"context_line":"                  vnf_instance_id)"},{"line_number":116,"context_line":"        url \u003d CONF.v2_vnfm.endpoint + \\"},{"line_number":117,"context_line":"            \u0027/vnflcm/v2/vnf_instances/\u0027 + vnf_instance_id + \u0027/heal\u0027"},{"line_number":118,"context_line":"        resp, body \u003d self.client.do_request("},{"line_number":119,"context_line":"            url, \"POST\", body\u003dheal_req.to_dict(), version\u003d\"2.0.0\")"},{"line_number":120,"context_line":"        if resp.status_code !\u003d 202:"}],"source_content_type":"text/x-python","patch_set":16,"id":"94e27cbd_4aba7f49","line":117,"range":{"start_line":116,"start_character":14,"end_line":117,"end_character":67},"in_reply_to":"e5e3cc7d_a0a5d094","updated":"2022-09-16 01:21:34.000000000","message":"Ack","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"3965514351783f98e814f10c70bee83f75e3b86a","unresolved":true,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def request_heal(self, vnf_instance_id, vnfc_instance_ids):"},{"line_number":113,"context_line":"        heal_req \u003d objects.HealVnfRequest(vnfcInstanceId\u003dvnfc_instance_ids)"},{"line_number":114,"context_line":"        LOG.debug(\"server_notification auto healing is processed: %s.\","},{"line_number":115,"context_line":"                  vnf_instance_id)"},{"line_number":116,"context_line":"        ep \u003d CONF.v2_vnfm.endpoint"},{"line_number":117,"context_line":"        url \u003d f\u0027{ep}/vnflcm/v2/vnf_instances/{vnf_instance_id}/heal\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"f796f514_55b448d9","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":17},"updated":"2022-09-15 07:55:03.000000000","message":"\"info\" is better because it\u0027s triggger message of auto-healing.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":false,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def request_heal(self, vnf_instance_id, vnfc_instance_ids):"},{"line_number":113,"context_line":"        heal_req \u003d objects.HealVnfRequest(vnfcInstanceId\u003dvnfc_instance_ids)"},{"line_number":114,"context_line":"        LOG.debug(\"server_notification auto healing is processed: %s.\","},{"line_number":115,"context_line":"                  vnf_instance_id)"},{"line_number":116,"context_line":"        ep \u003d CONF.v2_vnfm.endpoint"},{"line_number":117,"context_line":"        url \u003d f\u0027{ep}/vnflcm/v2/vnf_instances/{vnf_instance_id}/heal\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"af5afb2e_30323649","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":17},"in_reply_to":"916b078a_17570baf","updated":"2022-09-16 00:53:52.000000000","message":"Done","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":111,"context_line":""},{"line_number":112,"context_line":"    def request_heal(self, vnf_instance_id, vnfc_instance_ids):"},{"line_number":113,"context_line":"        heal_req \u003d objects.HealVnfRequest(vnfcInstanceId\u003dvnfc_instance_ids)"},{"line_number":114,"context_line":"        LOG.debug(\"server_notification auto healing is processed: %s.\","},{"line_number":115,"context_line":"                  vnf_instance_id)"},{"line_number":116,"context_line":"        ep \u003d CONF.v2_vnfm.endpoint"},{"line_number":117,"context_line":"        url \u003d f\u0027{ep}/vnflcm/v2/vnf_instances/{vnf_instance_id}/heal\u0027"}],"source_content_type":"text/x-python","patch_set":18,"id":"916b078a_17570baf","line":114,"range":{"start_line":114,"start_character":12,"end_line":114,"end_character":17},"in_reply_to":"f796f514_55b448d9","updated":"2022-09-15 11:16:30.000000000","message":"Fixed at patchset19.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"}],"tacker/sol_refactored/conductor/vnflcm_driver_v2.py":[{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":130,"context_line":"                    _inst \u003d objects.VnfInstanceV2.from_dict("},{"line_number":131,"context_line":"                        output[\u0027vnf_instance\u0027])"},{"line_number":132,"context_line":"                    inst.__dict__.update(_inst.__dict__)"},{"line_number":133,"context_line":"            except EOFError:"},{"line_number":134,"context_line":"                pass"},{"line_number":135,"context_line":"            except pickle.UnpicklingError:"},{"line_number":136,"context_line":"                pass"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        LOG.debug(\"execute %s of %s success.\", operation, script)"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"84e4da81_eabc9c5c","line":136,"range":{"start_line":133,"start_character":0,"end_line":136,"end_character":20},"updated":"2022-09-12 07:14:36.000000000","message":"Passing in except clause should be avoided, because it will mask what kind of exception has been occurred in the traceback.\nPlease consider adding some error handling here. I think logging will be needed at least.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":130,"context_line":"                    _inst \u003d objects.VnfInstanceV2.from_dict("},{"line_number":131,"context_line":"                        output[\u0027vnf_instance\u0027])"},{"line_number":132,"context_line":"                    inst.__dict__.update(_inst.__dict__)"},{"line_number":133,"context_line":"            except EOFError:"},{"line_number":134,"context_line":"                pass"},{"line_number":135,"context_line":"            except pickle.UnpicklingError:"},{"line_number":136,"context_line":"                pass"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        LOG.debug(\"execute %s of %s success.\", operation, script)"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"8a945a20_917a0758","line":136,"range":{"start_line":133,"start_character":0,"end_line":136,"end_character":20},"in_reply_to":"84e4da81_eabc9c5c","updated":"2022-09-12 16:50:19.000000000","message":"Exceptions here can be raised in normal case. That means mgmt driver script just dont need to send back pickle object to tacker. so please leave it as it is.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":130,"context_line":"                    _inst \u003d objects.VnfInstanceV2.from_dict("},{"line_number":131,"context_line":"                        output[\u0027vnf_instance\u0027])"},{"line_number":132,"context_line":"                    inst.__dict__.update(_inst.__dict__)"},{"line_number":133,"context_line":"            except EOFError:"},{"line_number":134,"context_line":"                pass"},{"line_number":135,"context_line":"            except pickle.UnpicklingError:"},{"line_number":136,"context_line":"                pass"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"        LOG.debug(\"execute %s of %s success.\", operation, script)"},{"line_number":139,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"ae44049a_cc0bfbe4","line":136,"range":{"start_line":133,"start_character":0,"end_line":136,"end_character":20},"in_reply_to":"8a945a20_917a0758","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"93967b3c630e22f3d3776e813a41f2845f1551d7","unresolved":true,"context_lines":[{"line_number":124,"context_line":"            raise sol_ex.MgmtDriverExecutionFailed(sol_detail\u003dmsg)"},{"line_number":125,"context_line":"        else:"},{"line_number":126,"context_line":"            try:"},{"line_number":127,"context_line":"                b \u003d out.stdout"},{"line_number":128,"context_line":"                output \u003d pickle.loads(b)"},{"line_number":129,"context_line":"                if isinstance(output, dict) and \u0027vnf_instance\u0027 in output:"},{"line_number":130,"context_line":"                    _inst \u003d objects.VnfInstanceV2.from_dict("}],"source_content_type":"text/x-python","patch_set":16,"id":"1f564ba5_fc5120a9","line":127,"range":{"start_line":127,"start_character":16,"end_line":127,"end_character":17},"updated":"2022-09-13 14:20:46.000000000","message":"What does `b` mean?\nCould you change the variable name to something meaningful if possible?","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"aaf96a771521857f77b3741c46eb125f7dd67a1a","unresolved":true,"context_lines":[{"line_number":124,"context_line":"            raise sol_ex.MgmtDriverExecutionFailed(sol_detail\u003dmsg)"},{"line_number":125,"context_line":"        else:"},{"line_number":126,"context_line":"            try:"},{"line_number":127,"context_line":"                b \u003d out.stdout"},{"line_number":128,"context_line":"                output \u003d pickle.loads(b)"},{"line_number":129,"context_line":"                if isinstance(output, dict) and \u0027vnf_instance\u0027 in output:"},{"line_number":130,"context_line":"                    _inst \u003d objects.VnfInstanceV2.from_dict("}],"source_content_type":"text/x-python","patch_set":16,"id":"2b69daef_204b46f2","line":127,"range":{"start_line":127,"start_character":16,"end_line":127,"end_character":17},"in_reply_to":"1f564ba5_fc5120a9","updated":"2022-09-14 12:06:11.000000000","message":"Fixed at patchset 17.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"a7ad932918be5cc2726a456b2a82dba010c52e07","unresolved":false,"context_lines":[{"line_number":124,"context_line":"            raise sol_ex.MgmtDriverExecutionFailed(sol_detail\u003dmsg)"},{"line_number":125,"context_line":"        else:"},{"line_number":126,"context_line":"            try:"},{"line_number":127,"context_line":"                b \u003d out.stdout"},{"line_number":128,"context_line":"                output \u003d pickle.loads(b)"},{"line_number":129,"context_line":"                if isinstance(output, dict) and \u0027vnf_instance\u0027 in output:"},{"line_number":130,"context_line":"                    _inst \u003d objects.VnfInstanceV2.from_dict("}],"source_content_type":"text/x-python","patch_set":16,"id":"376db79a_2abbcdae","line":127,"range":{"start_line":127,"start_character":16,"end_line":127,"end_character":17},"in_reply_to":"2b69daef_204b46f2","updated":"2022-09-16 01:21:34.000000000","message":"Ack","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"}],"tacker/sol_refactored/controller/server_notification.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"eac12bbe168821a6e3e7baec4e03c2c02be7e41e","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    def notify(self, request, vnf_instance_id, server_id, body):"},{"line_number":26,"context_line":"        if not CONF.server_notification.server_notification:"},{"line_number":27,"context_line":"            raise sol_ex.ServerNotificationNotEnabled()"},{"line_number":28,"context_line":"        cls \u003d mon_base.get_class(\u0027server_notification\u0027)"},{"line_number":29,"context_line":"        mon_base.MonitoringPlugin.get_instance(cls).alert("},{"line_number":30,"context_line":"            request\u003drequest, vnf_instance_id\u003dvnf_instance_id,"},{"line_number":31,"context_line":"            server_id\u003dserver_id, body\u003dbody)"}],"source_content_type":"text/x-python","patch_set":23,"id":"cf2c7979_187ebdd4","line":28,"range":{"start_line":28,"start_character":8,"end_line":28,"end_character":55},"updated":"2022-09-16 02:07:03.000000000","message":"I have a comment about the plugin structure.\nWith the current design, adding a plugin requires code modification, so I think usability is not good.\nSpecifically, when adding a new plugin, I think it is necessary to modify the name specified here.\nIn addition, it\u0027s necessary to add a new module and class informaition to module_and_class in \"monitoring_plugin_base.py\".\nIn order to avoid these, is it possible to specify the module and class in the config and to load from there?","commit_id":"b9b64e46c77fbdb0116097fc77bccaae7f85d29b"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"a1b7e1ffd227641dd3c0c257bfbd57ba07f40677","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    def notify(self, request, vnf_instance_id, server_id, body):"},{"line_number":26,"context_line":"        if not CONF.server_notification.server_notification:"},{"line_number":27,"context_line":"            raise sol_ex.ServerNotificationNotEnabled()"},{"line_number":28,"context_line":"        cls \u003d mon_base.get_class(\u0027server_notification\u0027)"},{"line_number":29,"context_line":"        mon_base.MonitoringPlugin.get_instance(cls).alert("},{"line_number":30,"context_line":"            request\u003drequest, vnf_instance_id\u003dvnf_instance_id,"},{"line_number":31,"context_line":"            server_id\u003dserver_id, body\u003dbody)"}],"source_content_type":"text/x-python","patch_set":23,"id":"8b4587d9_2dcd75a5","line":28,"range":{"start_line":28,"start_character":8,"end_line":28,"end_character":55},"in_reply_to":"5dd42ca5_cdf9d59c","updated":"2022-09-16 04:35:30.000000000","message":"This structure is used by not only this function, but also prometheus_plugin (https://review.opendev.org/c/openstack/tacker/+/854348), we need inclusive improvement. I think it is better to do it as another patch.","commit_id":"b9b64e46c77fbdb0116097fc77bccaae7f85d29b"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"10cb52d1fb83c8b10c2c11083862f9f94168c4d5","unresolved":false,"context_lines":[{"line_number":25,"context_line":"    def notify(self, request, vnf_instance_id, server_id, body):"},{"line_number":26,"context_line":"        if not CONF.server_notification.server_notification:"},{"line_number":27,"context_line":"            raise sol_ex.ServerNotificationNotEnabled()"},{"line_number":28,"context_line":"        cls \u003d mon_base.get_class(\u0027server_notification\u0027)"},{"line_number":29,"context_line":"        mon_base.MonitoringPlugin.get_instance(cls).alert("},{"line_number":30,"context_line":"            request\u003drequest, vnf_instance_id\u003dvnf_instance_id,"},{"line_number":31,"context_line":"            server_id\u003dserver_id, body\u003dbody)"}],"source_content_type":"text/x-python","patch_set":23,"id":"4c3c6571_019abd2c","line":28,"range":{"start_line":28,"start_character":8,"end_line":28,"end_character":55},"in_reply_to":"8b4587d9_2dcd75a5","updated":"2022-09-16 04:57:40.000000000","message":"Thank you for the answer. You need not to fix in this patch.","commit_id":"b9b64e46c77fbdb0116097fc77bccaae7f85d29b"},{"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":"16925d307fc1c0ef46226f91c4e28ec353133f16","unresolved":true,"context_lines":[{"line_number":25,"context_line":"    def notify(self, request, vnf_instance_id, server_id, body):"},{"line_number":26,"context_line":"        if not CONF.server_notification.server_notification:"},{"line_number":27,"context_line":"            raise sol_ex.ServerNotificationNotEnabled()"},{"line_number":28,"context_line":"        cls \u003d mon_base.get_class(\u0027server_notification\u0027)"},{"line_number":29,"context_line":"        mon_base.MonitoringPlugin.get_instance(cls).alert("},{"line_number":30,"context_line":"            request\u003drequest, vnf_instance_id\u003dvnf_instance_id,"},{"line_number":31,"context_line":"            server_id\u003dserver_id, body\u003dbody)"}],"source_content_type":"text/x-python","patch_set":23,"id":"5dd42ca5_cdf9d59c","line":28,"range":{"start_line":28,"start_character":8,"end_line":28,"end_character":55},"in_reply_to":"cf2c7979_187ebdd4","updated":"2022-09-16 02:54:05.000000000","message":"Thank you for your comment! I agree with Hiroo.\nIt should be adding a plugin without code modification and with the config is better.\n\nHowever, IMO, This feature patch is important for our project, so my alternative is to improve them as a future plan. What do you think?","commit_id":"b9b64e46c77fbdb0116097fc77bccaae7f85d29b"}],"tacker/sol_refactored/controller/server_notification_controller.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"3965514351783f98e814f10c70bee83f75e3b86a","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2022 Fujitsu"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":18,"id":"314ea0b1_1fd259d3","line":1,"updated":"2022-09-15 07:55:03.000000000","message":"The file name is better to rename \"server_notification.py\".","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2022 Fujitsu"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":18,"id":"3f2c2a6b_5d0d7d3c","line":1,"in_reply_to":"314ea0b1_1fd259d3","updated":"2022-09-15 11:16:30.000000000","message":"Fixed at patchset19.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2022 Fujitsu"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":18,"id":"1d575ba7_ef80b5a6","line":1,"in_reply_to":"3f2c2a6b_5d0d7d3c","updated":"2022-09-16 00:53:52.000000000","message":"Done","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"3965514351783f98e814f10c70bee83f75e3b86a","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tacker.sol_refactored.api import server_notification_wsgi as fn_wsgi"},{"line_number":17,"context_line":"from tacker.sol_refactored.common import config as cfg"},{"line_number":18,"context_line":"from tacker.sol_refactored.common import exceptions as sol_ex"},{"line_number":19,"context_line":"from tacker.sol_refactored.common import monitoring_plugin_base as mon_base"}],"source_content_type":"text/x-python","patch_set":18,"id":"8b62c897_cc4ef3e4","line":16,"range":{"start_line":16,"start_character":66,"end_line":16,"end_character":73},"updated":"2022-09-15 07:55:03.000000000","message":"Nit: sn_wsgi","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":false,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tacker.sol_refactored.api import server_notification_wsgi as fn_wsgi"},{"line_number":17,"context_line":"from tacker.sol_refactored.common import config as cfg"},{"line_number":18,"context_line":"from tacker.sol_refactored.common import exceptions as sol_ex"},{"line_number":19,"context_line":"from tacker.sol_refactored.common import monitoring_plugin_base as mon_base"}],"source_content_type":"text/x-python","patch_set":18,"id":"b99d38ec_8636fd30","line":16,"range":{"start_line":16,"start_character":66,"end_line":16,"end_character":73},"in_reply_to":"233f4bc7_8e9d768f","updated":"2022-09-16 00:53:52.000000000","message":"Done","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from tacker.sol_refactored.api import server_notification_wsgi as fn_wsgi"},{"line_number":17,"context_line":"from tacker.sol_refactored.common import config as cfg"},{"line_number":18,"context_line":"from tacker.sol_refactored.common import exceptions as sol_ex"},{"line_number":19,"context_line":"from tacker.sol_refactored.common import monitoring_plugin_base as mon_base"}],"source_content_type":"text/x-python","patch_set":18,"id":"233f4bc7_8e9d768f","line":16,"range":{"start_line":16,"start_character":66,"end_line":16,"end_character":73},"in_reply_to":"8b62c897_cc4ef3e4","updated":"2022-09-15 11:16:30.000000000","message":"Fixed at patchset19.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"}],"tacker/sol_refactored/mgmt_drivers/server_notification.py":[{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":62,"context_line":"                LOG.debug("},{"line_number":63,"context_line":"                    \"server_notification unregistration is processed: %d.\","},{"line_number":64,"context_line":"                    resp.status_code)"},{"line_number":65,"context_line":"        except Exception as e:"},{"line_number":66,"context_line":"            # Even if unregistration is failed for a single alarm_id,"},{"line_number":67,"context_line":"            # Unregistration should be done for remaining alarm_ids."},{"line_number":68,"context_line":"            LOG.error(str(e))"}],"source_content_type":"text/x-python","patch_set":14,"id":"08dae163_4ddf4cf0","line":65,"updated":"2022-09-12 07:14:36.000000000","message":"Please specify what kind of exceptions should be trapped at except clause.\nIt seems the below try clause contains `self.client.do_request()`, which may return `sol_ex.SolException` in its process.\n(Moreover, `do_request` may also return JSONDecodeError and TypeError, but it may be returned due to malformed JSON in response body, thus it should be handled in other ways.)","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":62,"context_line":"                LOG.debug("},{"line_number":63,"context_line":"                    \"server_notification unregistration is processed: %d.\","},{"line_number":64,"context_line":"                    resp.status_code)"},{"line_number":65,"context_line":"        except Exception as e:"},{"line_number":66,"context_line":"            # Even if unregistration is failed for a single alarm_id,"},{"line_number":67,"context_line":"            # Unregistration should be done for remaining alarm_ids."},{"line_number":68,"context_line":"            LOG.error(str(e))"}],"source_content_type":"text/x-python","patch_set":14,"id":"4938e1a6_6399a74e","line":65,"in_reply_to":"08dae163_4ddf4cf0","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":62,"context_line":"                LOG.debug("},{"line_number":63,"context_line":"                    \"server_notification unregistration is processed: %d.\","},{"line_number":64,"context_line":"                    resp.status_code)"},{"line_number":65,"context_line":"        except Exception as e:"},{"line_number":66,"context_line":"            # Even if unregistration is failed for a single alarm_id,"},{"line_number":67,"context_line":"            # Unregistration should be done for remaining alarm_ids."},{"line_number":68,"context_line":"            LOG.error(str(e))"}],"source_content_type":"text/x-python","patch_set":14,"id":"ad654ec1_24b567d8","line":65,"in_reply_to":"4938e1a6_6399a74e","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":112,"context_line":"            raise Exception("},{"line_number":113,"context_line":"                f\"server_notification registration is \""},{"line_number":114,"context_line":"                f\"failed: {resp.status_code}.\")"},{"line_number":115,"context_line":"        else:"},{"line_number":116,"context_line":"            if \u0027metadata\u0027 not in vnfc_resource:"},{"line_number":117,"context_line":"                vnfc_resource[\u0027metadata\u0027] \u003d {}"},{"line_number":118,"context_line":"            vnfc_resource[\u0027metadata\u0027][\u0027alarmId\u0027] \u003d res_body[\u0027alarm_id\u0027]"},{"line_number":119,"context_line":"            LOG.debug("},{"line_number":120,"context_line":"                \"server_notification registration is processed: %d. \""},{"line_number":121,"context_line":"                \"alarm_id: %s\", resp.status_code, res_body[\u0027alarm_id\u0027])"},{"line_number":122,"context_line":"            return {\u0027alarmId\u0027: res_body[\u0027alarm_id\u0027], \u0027serverId\u0027: server_id}"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def request_register(self):"},{"line_number":125,"context_line":"        rsc_list \u003d []"}],"source_content_type":"text/x-python","patch_set":14,"id":"bfbdd74a_42231f8c","line":122,"range":{"start_line":115,"start_character":0,"end_line":122,"end_character":75},"updated":"2022-09-12 07:14:36.000000000","message":"This else clause is redundant, because the above if clause raises exception. Please remove else statement, and decrease the indentation of the below statements.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":112,"context_line":"            raise Exception("},{"line_number":113,"context_line":"                f\"server_notification registration is \""},{"line_number":114,"context_line":"                f\"failed: {resp.status_code}.\")"},{"line_number":115,"context_line":"        else:"},{"line_number":116,"context_line":"            if \u0027metadata\u0027 not in vnfc_resource:"},{"line_number":117,"context_line":"                vnfc_resource[\u0027metadata\u0027] \u003d {}"},{"line_number":118,"context_line":"            vnfc_resource[\u0027metadata\u0027][\u0027alarmId\u0027] \u003d res_body[\u0027alarm_id\u0027]"},{"line_number":119,"context_line":"            LOG.debug("},{"line_number":120,"context_line":"                \"server_notification registration is processed: %d. \""},{"line_number":121,"context_line":"                \"alarm_id: %s\", resp.status_code, res_body[\u0027alarm_id\u0027])"},{"line_number":122,"context_line":"            return {\u0027alarmId\u0027: res_body[\u0027alarm_id\u0027], \u0027serverId\u0027: server_id}"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def request_register(self):"},{"line_number":125,"context_line":"        rsc_list \u003d []"}],"source_content_type":"text/x-python","patch_set":14,"id":"c67dbc1a_015d5cd7","line":122,"range":{"start_line":115,"start_character":0,"end_line":122,"end_character":75},"in_reply_to":"2ab744e5_1e2254f0","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":112,"context_line":"            raise Exception("},{"line_number":113,"context_line":"                f\"server_notification registration is \""},{"line_number":114,"context_line":"                f\"failed: {resp.status_code}.\")"},{"line_number":115,"context_line":"        else:"},{"line_number":116,"context_line":"            if \u0027metadata\u0027 not in vnfc_resource:"},{"line_number":117,"context_line":"                vnfc_resource[\u0027metadata\u0027] \u003d {}"},{"line_number":118,"context_line":"            vnfc_resource[\u0027metadata\u0027][\u0027alarmId\u0027] \u003d res_body[\u0027alarm_id\u0027]"},{"line_number":119,"context_line":"            LOG.debug("},{"line_number":120,"context_line":"                \"server_notification registration is processed: %d. \""},{"line_number":121,"context_line":"                \"alarm_id: %s\", resp.status_code, res_body[\u0027alarm_id\u0027])"},{"line_number":122,"context_line":"            return {\u0027alarmId\u0027: res_body[\u0027alarm_id\u0027], \u0027serverId\u0027: server_id}"},{"line_number":123,"context_line":""},{"line_number":124,"context_line":"    def request_register(self):"},{"line_number":125,"context_line":"        rsc_list \u003d []"}],"source_content_type":"text/x-python","patch_set":14,"id":"2ab744e5_1e2254f0","line":122,"range":{"start_line":115,"start_character":0,"end_line":122,"end_character":75},"in_reply_to":"bfbdd74a_42231f8c","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":132,"context_line":"                except Exception as e:"},{"line_number":133,"context_line":"                    LOG.error(str(e))"},{"line_number":134,"context_line":"                    self.request_register_cancel(rsc_list)"},{"line_number":135,"context_line":"                    raise Exception("},{"line_number":136,"context_line":"                        \"ServerNotification registration is failed.\")"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def get_params(self):"},{"line_number":139,"context_line":"        server_notifier_uri \u003d None"}],"source_content_type":"text/x-python","patch_set":14,"id":"559c9450_7d751bf8","line":136,"range":{"start_line":135,"start_character":0,"end_line":136,"end_character":69},"updated":"2022-09-12 07:14:36.000000000","message":"- Please use `raise...from` keywords for the improvement of traceback log.\n\n  ```\n  raise Exception(...) from e\n  ```\n\n- I think we should define a specific exception class for those kind of errors.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":132,"context_line":"                except Exception as e:"},{"line_number":133,"context_line":"                    LOG.error(str(e))"},{"line_number":134,"context_line":"                    self.request_register_cancel(rsc_list)"},{"line_number":135,"context_line":"                    raise Exception("},{"line_number":136,"context_line":"                        \"ServerNotification registration is failed.\")"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def get_params(self):"},{"line_number":139,"context_line":"        server_notifier_uri \u003d None"}],"source_content_type":"text/x-python","patch_set":14,"id":"e3226591_0bf1c327","line":136,"range":{"start_line":135,"start_character":0,"end_line":136,"end_character":69},"in_reply_to":"559c9450_7d751bf8","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"aaf96a771521857f77b3741c46eb125f7dd67a1a","unresolved":true,"context_lines":[{"line_number":132,"context_line":"                except Exception as e:"},{"line_number":133,"context_line":"                    LOG.error(str(e))"},{"line_number":134,"context_line":"                    self.request_register_cancel(rsc_list)"},{"line_number":135,"context_line":"                    raise Exception("},{"line_number":136,"context_line":"                        \"ServerNotification registration is failed.\")"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def get_params(self):"},{"line_number":139,"context_line":"        server_notifier_uri \u003d None"}],"source_content_type":"text/x-python","patch_set":14,"id":"265774cb_34180f5c","line":136,"range":{"start_line":135,"start_character":0,"end_line":136,"end_character":69},"in_reply_to":"ca7a47e9_1bdeb294","updated":"2022-09-14 12:06:11.000000000","message":"Fixed at patchset 17.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"93967b3c630e22f3d3776e813a41f2845f1551d7","unresolved":true,"context_lines":[{"line_number":132,"context_line":"                except Exception as e:"},{"line_number":133,"context_line":"                    LOG.error(str(e))"},{"line_number":134,"context_line":"                    self.request_register_cancel(rsc_list)"},{"line_number":135,"context_line":"                    raise Exception("},{"line_number":136,"context_line":"                        \"ServerNotification registration is failed.\")"},{"line_number":137,"context_line":""},{"line_number":138,"context_line":"    def get_params(self):"},{"line_number":139,"context_line":"        server_notifier_uri \u003d None"}],"source_content_type":"text/x-python","patch_set":14,"id":"ca7a47e9_1bdeb294","line":136,"range":{"start_line":135,"start_character":0,"end_line":136,"end_character":69},"in_reply_to":"e3226591_0bf1c327","updated":"2022-09-13 14:20:46.000000000","message":"\u003e I think we should define a specific exception class for those kind of errors.\n\nCould you react to above comment?","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        if server_notifier_uri and fault_id and tenant:"},{"line_number":164,"context_line":"            return (server_notifier_uri, fault_id, tenant)"},{"line_number":165,"context_line":"        else:"},{"line_number":166,"context_line":"            return (None, None, None)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def terminate_start(self):"},{"line_number":169,"context_line":"        LOG.info(\"terminate_start\")"}],"source_content_type":"text/x-python","patch_set":14,"id":"af6c382c_0773c3fa","line":166,"range":{"start_line":165,"start_character":0,"end_line":166,"end_character":37},"updated":"2022-09-12 07:14:36.000000000","message":"This else clause is redundant, because the above if clause has return statement. Please remove else statement, and decrease the indentation of the below statement.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        if server_notifier_uri and fault_id and tenant:"},{"line_number":164,"context_line":"            return (server_notifier_uri, fault_id, tenant)"},{"line_number":165,"context_line":"        else:"},{"line_number":166,"context_line":"            return (None, None, None)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def terminate_start(self):"},{"line_number":169,"context_line":"        LOG.info(\"terminate_start\")"}],"source_content_type":"text/x-python","patch_set":14,"id":"bdb404ad_b4752613","line":166,"range":{"start_line":165,"start_character":0,"end_line":166,"end_character":37},"in_reply_to":"542baed9_d540cd4b","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":162,"context_line":""},{"line_number":163,"context_line":"        if server_notifier_uri and fault_id and tenant:"},{"line_number":164,"context_line":"            return (server_notifier_uri, fault_id, tenant)"},{"line_number":165,"context_line":"        else:"},{"line_number":166,"context_line":"            return (None, None, None)"},{"line_number":167,"context_line":""},{"line_number":168,"context_line":"    def terminate_start(self):"},{"line_number":169,"context_line":"        LOG.info(\"terminate_start\")"}],"source_content_type":"text/x-python","patch_set":14,"id":"542baed9_d540cd4b","line":166,"range":{"start_line":165,"start_character":0,"end_line":166,"end_character":37},"in_reply_to":"af6c382c_0773c3fa","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def instantiate_start(self):"},{"line_number":221,"context_line":"        LOG.info(\"instantiate_start\")"},{"line_number":222,"context_line":"        return None"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    def terminate_end(self):"},{"line_number":225,"context_line":"        LOG.info(\"terminate_end\")"}],"source_content_type":"text/x-python","patch_set":14,"id":"1521ad2e_2a2db1c7","line":222,"updated":"2022-09-12 07:14:36.000000000","message":"This is redundant, you can safely remove this return statement.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def instantiate_start(self):"},{"line_number":221,"context_line":"        LOG.info(\"instantiate_start\")"},{"line_number":222,"context_line":"        return None"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    def terminate_end(self):"},{"line_number":225,"context_line":"        LOG.info(\"terminate_end\")"}],"source_content_type":"text/x-python","patch_set":14,"id":"bbcd2726_f5cfaf85","line":222,"in_reply_to":"1521ad2e_2a2db1c7","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":219,"context_line":""},{"line_number":220,"context_line":"    def instantiate_start(self):"},{"line_number":221,"context_line":"        LOG.info(\"instantiate_start\")"},{"line_number":222,"context_line":"        return None"},{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    def terminate_end(self):"},{"line_number":225,"context_line":"        LOG.info(\"terminate_end\")"}],"source_content_type":"text/x-python","patch_set":14,"id":"a67cbaee_57c1a089","line":222,"in_reply_to":"bbcd2726_f5cfaf85","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7f5a7daa95e9f608b6549e56aaf2538ccce7e570","unresolved":true,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    def terminate_end(self):"},{"line_number":225,"context_line":"        LOG.info(\"terminate_end\")"},{"line_number":226,"context_line":"        return None"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":14,"id":"0b9a8110_9f39ef08","line":226,"updated":"2022-09-12 07:14:36.000000000","message":"ditto","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"6443049848f40595a6ff43abccc7c5df8735ded7","unresolved":false,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    def terminate_end(self):"},{"line_number":225,"context_line":"        LOG.info(\"terminate_end\")"},{"line_number":226,"context_line":"        return None"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":14,"id":"8adc6a1d_9dca10b4","line":226,"in_reply_to":"07409158_1a591baa","updated":"2022-09-14 05:36:58.000000000","message":"Done","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"54d843ed921ae2e6a79ca341d6cbdfa6e91bcbdc","unresolved":true,"context_lines":[{"line_number":223,"context_line":""},{"line_number":224,"context_line":"    def terminate_end(self):"},{"line_number":225,"context_line":"        LOG.info(\"terminate_end\")"},{"line_number":226,"context_line":"        return None"},{"line_number":227,"context_line":""},{"line_number":228,"context_line":""},{"line_number":229,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":14,"id":"07409158_1a591baa","line":226,"in_reply_to":"0b9a8110_9f39ef08","updated":"2022-09-12 16:50:19.000000000","message":"Fixed at patchset 12.","commit_id":"4d62d653c23d7da0d489b028acbbf245a8e3839a"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"93967b3c630e22f3d3776e813a41f2845f1551d7","unresolved":true,"context_lines":[{"line_number":110,"context_line":"        resp, res_body \u003d self.client.do_request("},{"line_number":111,"context_line":"            url, \"POST\", body\u003dreq_body)"},{"line_number":112,"context_line":"        if resp.status_code \u003e\u003d 400 or \u0027alarm_id\u0027 not in res_body:"},{"line_number":113,"context_line":"            raise Exception("},{"line_number":114,"context_line":"                f\"server_notification registration is \""},{"line_number":115,"context_line":"                f\"failed: {resp.status_code}.\")"},{"line_number":116,"context_line":"        if \u0027metadata\u0027 not in vnfc_resource:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5230c135_a71ed252","line":113,"range":{"start_line":113,"start_character":18,"end_line":113,"end_character":27},"updated":"2022-09-13 14:20:46.000000000","message":"same comment as Ueno-san\u0027s comment.\n\n\u003e I think we should define a specific exception class for those kind of errors.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"a7ad932918be5cc2726a456b2a82dba010c52e07","unresolved":false,"context_lines":[{"line_number":110,"context_line":"        resp, res_body \u003d self.client.do_request("},{"line_number":111,"context_line":"            url, \"POST\", body\u003dreq_body)"},{"line_number":112,"context_line":"        if resp.status_code \u003e\u003d 400 or \u0027alarm_id\u0027 not in res_body:"},{"line_number":113,"context_line":"            raise Exception("},{"line_number":114,"context_line":"                f\"server_notification registration is \""},{"line_number":115,"context_line":"                f\"failed: {resp.status_code}.\")"},{"line_number":116,"context_line":"        if \u0027metadata\u0027 not in vnfc_resource:"}],"source_content_type":"text/x-python","patch_set":16,"id":"3d3344aa_10a92ea8","line":113,"range":{"start_line":113,"start_character":18,"end_line":113,"end_character":27},"in_reply_to":"283d66c5_262ce820","updated":"2022-09-16 01:21:34.000000000","message":"Ack","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"aaf96a771521857f77b3741c46eb125f7dd67a1a","unresolved":true,"context_lines":[{"line_number":110,"context_line":"        resp, res_body \u003d self.client.do_request("},{"line_number":111,"context_line":"            url, \"POST\", body\u003dreq_body)"},{"line_number":112,"context_line":"        if resp.status_code \u003e\u003d 400 or \u0027alarm_id\u0027 not in res_body:"},{"line_number":113,"context_line":"            raise Exception("},{"line_number":114,"context_line":"                f\"server_notification registration is \""},{"line_number":115,"context_line":"                f\"failed: {resp.status_code}.\")"},{"line_number":116,"context_line":"        if \u0027metadata\u0027 not in vnfc_resource:"}],"source_content_type":"text/x-python","patch_set":16,"id":"283d66c5_262ce820","line":113,"range":{"start_line":113,"start_character":18,"end_line":113,"end_character":27},"in_reply_to":"5230c135_a71ed252","updated":"2022-09-14 12:06:11.000000000","message":"Fixed at patchset 17.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"93967b3c630e22f3d3776e813a41f2845f1551d7","unresolved":true,"context_lines":[{"line_number":111,"context_line":"            url, \"POST\", body\u003dreq_body)"},{"line_number":112,"context_line":"        if resp.status_code \u003e\u003d 400 or \u0027alarm_id\u0027 not in res_body:"},{"line_number":113,"context_line":"            raise Exception("},{"line_number":114,"context_line":"                f\"server_notification registration is \""},{"line_number":115,"context_line":"                f\"failed: {resp.status_code}.\")"},{"line_number":116,"context_line":"        if \u0027metadata\u0027 not in vnfc_resource:"},{"line_number":117,"context_line":"            vnfc_resource[\u0027metadata\u0027] \u003d {}"}],"source_content_type":"text/x-python","patch_set":16,"id":"d8340f8c_bddf7406","line":114,"range":{"start_line":114,"start_character":16,"end_line":114,"end_character":17},"updated":"2022-09-13 14:20:46.000000000","message":"nit: `f` is not necessary here.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"a7ad932918be5cc2726a456b2a82dba010c52e07","unresolved":false,"context_lines":[{"line_number":111,"context_line":"            url, \"POST\", body\u003dreq_body)"},{"line_number":112,"context_line":"        if resp.status_code \u003e\u003d 400 or \u0027alarm_id\u0027 not in res_body:"},{"line_number":113,"context_line":"            raise Exception("},{"line_number":114,"context_line":"                f\"server_notification registration is \""},{"line_number":115,"context_line":"                f\"failed: {resp.status_code}.\")"},{"line_number":116,"context_line":"        if \u0027metadata\u0027 not in vnfc_resource:"},{"line_number":117,"context_line":"            vnfc_resource[\u0027metadata\u0027] \u003d {}"}],"source_content_type":"text/x-python","patch_set":16,"id":"fae73261_0e7be149","line":114,"range":{"start_line":114,"start_character":16,"end_line":114,"end_character":17},"in_reply_to":"84e486fa_e5d059ce","updated":"2022-09-16 01:21:34.000000000","message":"Ack","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"aaf96a771521857f77b3741c46eb125f7dd67a1a","unresolved":true,"context_lines":[{"line_number":111,"context_line":"            url, \"POST\", body\u003dreq_body)"},{"line_number":112,"context_line":"        if resp.status_code \u003e\u003d 400 or \u0027alarm_id\u0027 not in res_body:"},{"line_number":113,"context_line":"            raise Exception("},{"line_number":114,"context_line":"                f\"server_notification registration is \""},{"line_number":115,"context_line":"                f\"failed: {resp.status_code}.\")"},{"line_number":116,"context_line":"        if \u0027metadata\u0027 not in vnfc_resource:"},{"line_number":117,"context_line":"            vnfc_resource[\u0027metadata\u0027] \u003d {}"}],"source_content_type":"text/x-python","patch_set":16,"id":"84e486fa_e5d059ce","line":114,"range":{"start_line":114,"start_character":16,"end_line":114,"end_character":17},"in_reply_to":"d8340f8c_bddf7406","updated":"2022-09-14 12:06:11.000000000","message":"Fixed at patchset 17.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"93967b3c630e22f3d3776e813a41f2845f1551d7","unresolved":true,"context_lines":[{"line_number":165,"context_line":"        return (None, None, None)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def terminate_start(self):"},{"line_number":168,"context_line":"        LOG.info(\"terminate_start\")"},{"line_number":169,"context_line":"        at_least_one_id_unregistered \u003d self.request_unregister()"},{"line_number":170,"context_line":"        if at_least_one_id_unregistered:"},{"line_number":171,"context_line":"            self.request_remove_timer(self.inst[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"0cdc427d_81638248","line":168,"range":{"start_line":168,"start_character":8,"end_line":168,"end_character":35},"updated":"2022-09-13 14:20:46.000000000","message":"Why do you add `LOG.info` to only instantiate_start and terminate_start/end?\nHow about you delete it if you don\u0027t need it, or add to other method if you need it?","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"aaf96a771521857f77b3741c46eb125f7dd67a1a","unresolved":true,"context_lines":[{"line_number":165,"context_line":"        return (None, None, None)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def terminate_start(self):"},{"line_number":168,"context_line":"        LOG.info(\"terminate_start\")"},{"line_number":169,"context_line":"        at_least_one_id_unregistered \u003d self.request_unregister()"},{"line_number":170,"context_line":"        if at_least_one_id_unregistered:"},{"line_number":171,"context_line":"            self.request_remove_timer(self.inst[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"973cc427_d7df8953","line":168,"range":{"start_line":168,"start_character":8,"end_line":168,"end_character":35},"in_reply_to":"0cdc427d_81638248","updated":"2022-09-14 12:06:11.000000000","message":"Fixed at patchset 17.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"a7ad932918be5cc2726a456b2a82dba010c52e07","unresolved":false,"context_lines":[{"line_number":165,"context_line":"        return (None, None, None)"},{"line_number":166,"context_line":""},{"line_number":167,"context_line":"    def terminate_start(self):"},{"line_number":168,"context_line":"        LOG.info(\"terminate_start\")"},{"line_number":169,"context_line":"        at_least_one_id_unregistered \u003d self.request_unregister()"},{"line_number":170,"context_line":"        if at_least_one_id_unregistered:"},{"line_number":171,"context_line":"            self.request_remove_timer(self.inst[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":16,"id":"43527999_2767bf3c","line":168,"range":{"start_line":168,"start_character":8,"end_line":168,"end_character":35},"in_reply_to":"973cc427_d7df8953","updated":"2022-09-16 01:21:34.000000000","message":"Ack","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"93967b3c630e22f3d3776e813a41f2845f1551d7","unresolved":true,"context_lines":[{"line_number":217,"context_line":"        return self.make_output_dict()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def instantiate_start(self):"},{"line_number":220,"context_line":"        LOG.info(\"instantiate_start\")"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def terminate_end(self):"},{"line_number":223,"context_line":"        LOG.info(\"terminate_end\")"}],"source_content_type":"text/x-python","patch_set":16,"id":"6712c39d_0f6f0343","line":220,"range":{"start_line":220,"start_character":8,"end_line":220,"end_character":37},"updated":"2022-09-13 14:20:46.000000000","message":"ditto.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"a7ad932918be5cc2726a456b2a82dba010c52e07","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        return self.make_output_dict()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def instantiate_start(self):"},{"line_number":220,"context_line":"        LOG.info(\"instantiate_start\")"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def terminate_end(self):"},{"line_number":223,"context_line":"        LOG.info(\"terminate_end\")"}],"source_content_type":"text/x-python","patch_set":16,"id":"c68baf51_905bf80e","line":220,"range":{"start_line":220,"start_character":8,"end_line":220,"end_character":37},"in_reply_to":"50525cf9_cee76172","updated":"2022-09-16 01:21:34.000000000","message":"Ack","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"aaf96a771521857f77b3741c46eb125f7dd67a1a","unresolved":true,"context_lines":[{"line_number":217,"context_line":"        return self.make_output_dict()"},{"line_number":218,"context_line":""},{"line_number":219,"context_line":"    def instantiate_start(self):"},{"line_number":220,"context_line":"        LOG.info(\"instantiate_start\")"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def terminate_end(self):"},{"line_number":223,"context_line":"        LOG.info(\"terminate_end\")"}],"source_content_type":"text/x-python","patch_set":16,"id":"50525cf9_cee76172","line":220,"range":{"start_line":220,"start_character":8,"end_line":220,"end_character":37},"in_reply_to":"6712c39d_0f6f0343","updated":"2022-09-14 12:06:11.000000000","message":"Fixed at patchset 17.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"93967b3c630e22f3d3776e813a41f2845f1551d7","unresolved":true,"context_lines":[{"line_number":220,"context_line":"        LOG.info(\"instantiate_start\")"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def terminate_end(self):"},{"line_number":223,"context_line":"        LOG.info(\"terminate_end\")"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":16,"id":"d1a193af_b79f9711","line":223,"range":{"start_line":223,"start_character":8,"end_line":223,"end_character":33},"updated":"2022-09-13 14:20:46.000000000","message":"ditto.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"a7ad932918be5cc2726a456b2a82dba010c52e07","unresolved":false,"context_lines":[{"line_number":220,"context_line":"        LOG.info(\"instantiate_start\")"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def terminate_end(self):"},{"line_number":223,"context_line":"        LOG.info(\"terminate_end\")"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":16,"id":"eb50b072_2e49bf1d","line":223,"range":{"start_line":223,"start_character":8,"end_line":223,"end_character":33},"in_reply_to":"cf2014ab_703ddba1","updated":"2022-09-16 01:21:34.000000000","message":"Ack","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"aaf96a771521857f77b3741c46eb125f7dd67a1a","unresolved":true,"context_lines":[{"line_number":220,"context_line":"        LOG.info(\"instantiate_start\")"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"    def terminate_end(self):"},{"line_number":223,"context_line":"        LOG.info(\"terminate_end\")"},{"line_number":224,"context_line":""},{"line_number":225,"context_line":""},{"line_number":226,"context_line":"def main():"}],"source_content_type":"text/x-python","patch_set":16,"id":"cf2014ab_703ddba1","line":223,"range":{"start_line":223,"start_character":8,"end_line":223,"end_character":33},"in_reply_to":"d1a193af_b79f9711","updated":"2022-09-14 12:06:11.000000000","message":"Fixed at patchset 17.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"}],"tacker/tests/functional/common/fake_server.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"9b515213c7cec88907633fa6f7b3fe1db8c29bbc","unresolved":true,"context_lines":[{"line_number":73,"context_line":"                if \u0027/token\u0027 in self.path or \u0027v2\u0027 in self.path or ("},{"line_number":74,"context_line":"                        isinstance(mock_body, dict) and"},{"line_number":75,"context_line":"                        \u0027v2\u0027 in mock_body.get(\u0027_links\u0027, {}).get("},{"line_number":76,"context_line":"                        \u0027vnfLcmOpOcc\u0027, {}).get(\u0027href\u0027, {})):"},{"line_number":77,"context_line":"                    pass"},{"line_number":78,"context_line":"                else:"},{"line_number":79,"context_line":"                    mock_headers[\u0027Content-Length\u0027] \u003d str(len("}],"source_content_type":"text/x-python","patch_set":18,"id":"73ce8c6a_2017a5be","line":76,"updated":"2022-09-15 05:15:42.000000000","message":"Is this fix needed?","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":73,"context_line":"                if \u0027/token\u0027 in self.path or \u0027v2\u0027 in self.path or ("},{"line_number":74,"context_line":"                        isinstance(mock_body, dict) and"},{"line_number":75,"context_line":"                        \u0027v2\u0027 in mock_body.get(\u0027_links\u0027, {}).get("},{"line_number":76,"context_line":"                        \u0027vnfLcmOpOcc\u0027, {}).get(\u0027href\u0027, {})):"},{"line_number":77,"context_line":"                    pass"},{"line_number":78,"context_line":"                else:"},{"line_number":79,"context_line":"                    mock_headers[\u0027Content-Length\u0027] \u003d str(len("}],"source_content_type":"text/x-python","patch_set":18,"id":"c883076e_780da6b9","line":76,"in_reply_to":"73ce8c6a_2017a5be","updated":"2022-09-15 11:16:30.000000000","message":"It was redundant. removed at patchset19.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":false,"context_lines":[{"line_number":73,"context_line":"                if \u0027/token\u0027 in self.path or \u0027v2\u0027 in self.path or ("},{"line_number":74,"context_line":"                        isinstance(mock_body, dict) and"},{"line_number":75,"context_line":"                        \u0027v2\u0027 in mock_body.get(\u0027_links\u0027, {}).get("},{"line_number":76,"context_line":"                        \u0027vnfLcmOpOcc\u0027, {}).get(\u0027href\u0027, {})):"},{"line_number":77,"context_line":"                    pass"},{"line_number":78,"context_line":"                else:"},{"line_number":79,"context_line":"                    mock_headers[\u0027Content-Length\u0027] \u003d str(len("}],"source_content_type":"text/x-python","patch_set":18,"id":"0d122837_a408b58b","line":76,"in_reply_to":"c883076e_780da6b9","updated":"2022-09-16 00:53:52.000000000","message":"Done","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"}],"tacker/tests/functional/sol_v2/test_server_notification.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"512f1ae1489ee095d8958217fa59fafcdd912c9a","unresolved":true,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # 3. ServerNotifier-Notify"},{"line_number":223,"context_line":"        for i in range(repeat):"},{"line_number":224,"context_line":"            fault_notification_param \u003d paramgen.server_notification(alarm_id)"},{"line_number":225,"context_line":"            resp, body \u003d self.server_notification("},{"line_number":226,"context_line":"                inst_id, \u0027server_id\u0027, fault_notification_param)"},{"line_number":227,"context_line":"            print(str(resp.status_code))"}],"source_content_type":"text/x-python","patch_set":18,"id":"7e9a2f2b_ec31c29d","line":224,"updated":"2022-09-15 09:19:21.000000000","message":"In this test the \"alarm_id\" is always the same even if the notification is run multiple times.\nIsn\u0027t it better to set a different \"alarm_id\" when testing packing?","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"10cb52d1fb83c8b10c2c11083862f9f94168c4d5","unresolved":false,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # 3. ServerNotifier-Notify"},{"line_number":223,"context_line":"        for i in range(repeat):"},{"line_number":224,"context_line":"            fault_notification_param \u003d paramgen.server_notification(alarm_id)"},{"line_number":225,"context_line":"            resp, body \u003d self.server_notification("},{"line_number":226,"context_line":"                inst_id, \u0027server_id\u0027, fault_notification_param)"},{"line_number":227,"context_line":"            print(str(resp.status_code))"}],"source_content_type":"text/x-python","patch_set":18,"id":"c675c11b_d8d49691","line":224,"in_reply_to":"399f5fa7_3eb4c839","updated":"2022-09-16 04:57:40.000000000","message":"I see.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":true,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # 3. ServerNotifier-Notify"},{"line_number":223,"context_line":"        for i in range(repeat):"},{"line_number":224,"context_line":"            fault_notification_param \u003d paramgen.server_notification(alarm_id)"},{"line_number":225,"context_line":"            resp, body \u003d self.server_notification("},{"line_number":226,"context_line":"                inst_id, \u0027server_id\u0027, fault_notification_param)"},{"line_number":227,"context_line":"            print(str(resp.status_code))"}],"source_content_type":"text/x-python","patch_set":18,"id":"d90b12ad_e0be1083","line":224,"in_reply_to":"6af4e026_0807330b","updated":"2022-09-16 00:53:52.000000000","message":"Thanks for the fix.\nBut the alarm_id set in the request always seems to be \"alarm_id_0\".\nIs this intentional?","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # 3. ServerNotifier-Notify"},{"line_number":223,"context_line":"        for i in range(repeat):"},{"line_number":224,"context_line":"            fault_notification_param \u003d paramgen.server_notification(alarm_id)"},{"line_number":225,"context_line":"            resp, body \u003d self.server_notification("},{"line_number":226,"context_line":"                inst_id, \u0027server_id\u0027, fault_notification_param)"},{"line_number":227,"context_line":"            print(str(resp.status_code))"}],"source_content_type":"text/x-python","patch_set":18,"id":"6af4e026_0807330b","line":224,"in_reply_to":"7e9a2f2b_ec31c29d","updated":"2022-09-15 11:16:30.000000000","message":"Fixed at patchset19.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"a1b7e1ffd227641dd3c0c257bfbd57ba07f40677","unresolved":true,"context_lines":[{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # 3. ServerNotifier-Notify"},{"line_number":223,"context_line":"        for i in range(repeat):"},{"line_number":224,"context_line":"            fault_notification_param \u003d paramgen.server_notification(alarm_id)"},{"line_number":225,"context_line":"            resp, body \u003d self.server_notification("},{"line_number":226,"context_line":"                inst_id, \u0027server_id\u0027, fault_notification_param)"},{"line_number":227,"context_line":"            print(str(resp.status_code))"}],"source_content_type":"text/x-python","patch_set":18,"id":"399f5fa7_3eb4c839","line":224,"in_reply_to":"d90b12ad_e0be1083","updated":"2022-09-16 04:35:30.000000000","message":"I found test condition of different alarm_id is complex, because actual value of alarm_id is generated in mgmt driver script, not in testcase. So please let it be a limited test for now.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"512f1ae1489ee095d8958217fa59fafcdd912c9a","unresolved":true,"context_lines":[{"line_number":224,"context_line":"            fault_notification_param \u003d paramgen.server_notification(alarm_id)"},{"line_number":225,"context_line":"            resp, body \u003d self.server_notification("},{"line_number":226,"context_line":"                inst_id, \u0027server_id\u0027, fault_notification_param)"},{"line_number":227,"context_line":"            print(str(resp.status_code))"},{"line_number":228,"context_line":"            print(str(body))"},{"line_number":229,"context_line":"            self.assertTrue(resp.status_code \u003d\u003d 204 or resp.status_code \u003d\u003d 404)"},{"line_number":230,"context_line":"            time.sleep(1)"},{"line_number":231,"context_line":"        time.sleep(60)"}],"source_content_type":"text/x-python","patch_set":18,"id":"0587290a_ecee0464","line":228,"range":{"start_line":227,"start_character":12,"end_line":228,"end_character":28},"updated":"2022-09-15 09:19:21.000000000","message":"Do you need these outputs?","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":224,"context_line":"            fault_notification_param \u003d paramgen.server_notification(alarm_id)"},{"line_number":225,"context_line":"            resp, body \u003d self.server_notification("},{"line_number":226,"context_line":"                inst_id, \u0027server_id\u0027, fault_notification_param)"},{"line_number":227,"context_line":"            print(str(resp.status_code))"},{"line_number":228,"context_line":"            print(str(body))"},{"line_number":229,"context_line":"            self.assertTrue(resp.status_code \u003d\u003d 204 or resp.status_code \u003d\u003d 404)"},{"line_number":230,"context_line":"            time.sleep(1)"},{"line_number":231,"context_line":"        time.sleep(60)"}],"source_content_type":"text/x-python","patch_set":18,"id":"58534293_d2518f7c","line":228,"range":{"start_line":227,"start_character":12,"end_line":228,"end_character":28},"in_reply_to":"0587290a_ecee0464","updated":"2022-09-15 11:16:30.000000000","message":"Fixed at patchset19.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":false,"context_lines":[{"line_number":224,"context_line":"            fault_notification_param \u003d paramgen.server_notification(alarm_id)"},{"line_number":225,"context_line":"            resp, body \u003d self.server_notification("},{"line_number":226,"context_line":"                inst_id, \u0027server_id\u0027, fault_notification_param)"},{"line_number":227,"context_line":"            print(str(resp.status_code))"},{"line_number":228,"context_line":"            print(str(body))"},{"line_number":229,"context_line":"            self.assertTrue(resp.status_code \u003d\u003d 204 or resp.status_code \u003d\u003d 404)"},{"line_number":230,"context_line":"            time.sleep(1)"},{"line_number":231,"context_line":"        time.sleep(60)"}],"source_content_type":"text/x-python","patch_set":18,"id":"63f2ca2c_0ad5b7f8","line":228,"range":{"start_line":227,"start_character":12,"end_line":228,"end_character":28},"in_reply_to":"58534293_d2518f7c","updated":"2022-09-16 00:53:52.000000000","message":"Done","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"512f1ae1489ee095d8958217fa59fafcdd912c9a","unresolved":true,"context_lines":[{"line_number":228,"context_line":"            print(str(body))"},{"line_number":229,"context_line":"            self.assertTrue(resp.status_code \u003d\u003d 204 or resp.status_code \u003d\u003d 404)"},{"line_number":230,"context_line":"            time.sleep(1)"},{"line_number":231,"context_line":"        time.sleep(60)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        # 4. LCM-Heal"},{"line_number":234,"context_line":"        nested_stacks \u003d self.heat_client.get_resources(stack_name)"}],"source_content_type":"text/x-python","patch_set":18,"id":"fca20f30_106df9ca","line":231,"range":{"start_line":231,"start_character":19,"end_line":231,"end_character":21},"updated":"2022-09-15 09:19:21.000000000","message":"What is the reason for 60 seconds?","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"a1b7e1ffd227641dd3c0c257bfbd57ba07f40677","unresolved":true,"context_lines":[{"line_number":228,"context_line":"            print(str(body))"},{"line_number":229,"context_line":"            self.assertTrue(resp.status_code \u003d\u003d 204 or resp.status_code \u003d\u003d 404)"},{"line_number":230,"context_line":"            time.sleep(1)"},{"line_number":231,"context_line":"        time.sleep(60)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        # 4. LCM-Heal"},{"line_number":234,"context_line":"        nested_stacks \u003d self.heat_client.get_resources(stack_name)"}],"source_content_type":"text/x-python","patch_set":18,"id":"3f9c9fde_65f1c0ef","line":231,"range":{"start_line":231,"start_character":19,"end_line":231,"end_character":21},"in_reply_to":"285e2bc7_164ee915","updated":"2022-09-16 04:35:30.000000000","message":"Queueing timer interval is 20 sec by default, I assume it may be excesses timer at most 1 time. And then healing process will be done in almost 10 sec. So totally almost 60 sec is enough.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"10cb52d1fb83c8b10c2c11083862f9f94168c4d5","unresolved":true,"context_lines":[{"line_number":228,"context_line":"            print(str(body))"},{"line_number":229,"context_line":"            self.assertTrue(resp.status_code \u003d\u003d 204 or resp.status_code \u003d\u003d 404)"},{"line_number":230,"context_line":"            time.sleep(1)"},{"line_number":231,"context_line":"        time.sleep(60)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        # 4. LCM-Heal"},{"line_number":234,"context_line":"        nested_stacks \u003d self.heat_client.get_resources(stack_name)"}],"source_content_type":"text/x-python","patch_set":18,"id":"b2e34398_3e2b7add","line":231,"range":{"start_line":231,"start_character":19,"end_line":231,"end_character":21},"in_reply_to":"3f9c9fde_65f1c0ef","updated":"2022-09-16 04:57:40.000000000","message":"I\u0027m sorry, I intended it would be better to add a comment on this test-case for the reasons you explain me.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"386fdec0d33bb5c74d48156b7c6882816e0d8e29","unresolved":false,"context_lines":[{"line_number":228,"context_line":"            print(str(body))"},{"line_number":229,"context_line":"            self.assertTrue(resp.status_code \u003d\u003d 204 or resp.status_code \u003d\u003d 404)"},{"line_number":230,"context_line":"            time.sleep(1)"},{"line_number":231,"context_line":"        time.sleep(60)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        # 4. LCM-Heal"},{"line_number":234,"context_line":"        nested_stacks \u003d self.heat_client.get_resources(stack_name)"}],"source_content_type":"text/x-python","patch_set":18,"id":"23f77c46_82fba2b2","line":231,"range":{"start_line":231,"start_character":19,"end_line":231,"end_character":21},"in_reply_to":"b2e34398_3e2b7add","updated":"2022-09-16 07:26:09.000000000","message":"Thank you for the fix. I confirmed.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":true,"context_lines":[{"line_number":228,"context_line":"            print(str(body))"},{"line_number":229,"context_line":"            self.assertTrue(resp.status_code \u003d\u003d 204 or resp.status_code \u003d\u003d 404)"},{"line_number":230,"context_line":"            time.sleep(1)"},{"line_number":231,"context_line":"        time.sleep(60)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        # 4. LCM-Heal"},{"line_number":234,"context_line":"        nested_stacks \u003d self.heat_client.get_resources(stack_name)"}],"source_content_type":"text/x-python","patch_set":18,"id":"285e2bc7_164ee915","line":231,"range":{"start_line":231,"start_character":19,"end_line":231,"end_character":21},"in_reply_to":"c060905d_40e3f68b","updated":"2022-09-16 00:53:52.000000000","message":"I see.\nCould you add the reason in a comment?","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":228,"context_line":"            print(str(body))"},{"line_number":229,"context_line":"            self.assertTrue(resp.status_code \u003d\u003d 204 or resp.status_code \u003d\u003d 404)"},{"line_number":230,"context_line":"            time.sleep(1)"},{"line_number":231,"context_line":"        time.sleep(60)"},{"line_number":232,"context_line":""},{"line_number":233,"context_line":"        # 4. LCM-Heal"},{"line_number":234,"context_line":"        nested_stacks \u003d self.heat_client.get_resources(stack_name)"}],"source_content_type":"text/x-python","patch_set":18,"id":"c060905d_40e3f68b","line":231,"range":{"start_line":231,"start_character":19,"end_line":231,"end_character":21},"in_reply_to":"fca20f30_106df9ca","updated":"2022-09-15 11:16:30.000000000","message":"This waits finishing queueing timer and healing process.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"}],"tacker/tests/functional/sol_v2_common/base_v2.py":[{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"93967b3c630e22f3d3776e813a41f2845f1551d7","unresolved":true,"context_lines":[{"line_number":581,"context_line":"        return image_id"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"    def server_notification(self, inst_id, server_id, req_body):"},{"line_number":584,"context_line":"        path \u003d (f\"/server_notification/vnf_instances/\""},{"line_number":585,"context_line":"                f\"{inst_id}/servers/{server_id}/notify\")"},{"line_number":586,"context_line":"        return self.tacker_client.do_request("},{"line_number":587,"context_line":"            path, \"POST\", body\u003dreq_body)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1c5bdc84_89b1e3e8","line":584,"range":{"start_line":584,"start_character":16,"end_line":584,"end_character":17},"updated":"2022-09-13 14:20:46.000000000","message":"nit: `f` is not necessary here.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"a7ad932918be5cc2726a456b2a82dba010c52e07","unresolved":false,"context_lines":[{"line_number":581,"context_line":"        return image_id"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"    def server_notification(self, inst_id, server_id, req_body):"},{"line_number":584,"context_line":"        path \u003d (f\"/server_notification/vnf_instances/\""},{"line_number":585,"context_line":"                f\"{inst_id}/servers/{server_id}/notify\")"},{"line_number":586,"context_line":"        return self.tacker_client.do_request("},{"line_number":587,"context_line":"            path, \"POST\", body\u003dreq_body)"}],"source_content_type":"text/x-python","patch_set":16,"id":"150c7254_26335fa4","line":584,"range":{"start_line":584,"start_character":16,"end_line":584,"end_character":17},"in_reply_to":"1acb6163_d781697b","updated":"2022-09-16 01:21:34.000000000","message":"Ack","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"aaf96a771521857f77b3741c46eb125f7dd67a1a","unresolved":true,"context_lines":[{"line_number":581,"context_line":"        return image_id"},{"line_number":582,"context_line":""},{"line_number":583,"context_line":"    def server_notification(self, inst_id, server_id, req_body):"},{"line_number":584,"context_line":"        path \u003d (f\"/server_notification/vnf_instances/\""},{"line_number":585,"context_line":"                f\"{inst_id}/servers/{server_id}/notify\")"},{"line_number":586,"context_line":"        return self.tacker_client.do_request("},{"line_number":587,"context_line":"            path, \"POST\", body\u003dreq_body)"}],"source_content_type":"text/x-python","patch_set":16,"id":"1acb6163_d781697b","line":584,"range":{"start_line":584,"start_character":16,"end_line":584,"end_character":17},"in_reply_to":"1c5bdc84_89b1e3e8","updated":"2022-09-14 12:06:11.000000000","message":"Fixed at patchset 17.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"}],"tacker/tests/functional/sol_v2_common/paramgen.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"512f1ae1489ee095d8958217fa59fafcdd912c9a","unresolved":true,"context_lines":[{"line_number":1178,"context_line":""},{"line_number":1179,"context_line":"def server_notification(alarm_id):"},{"line_number":1180,"context_line":"    return {"},{"line_number":1181,"context_line":"        \u0027notification\u0027: {"},{"line_number":1182,"context_line":"            \u0027alarm_id\u0027: alarm_id,"},{"line_number":1183,"context_line":"            \u0027fault_id\u0027: \u00271234\u0027,"},{"line_number":1184,"context_line":"            \u0027fault_type\u0027: \u002710\u0027,"},{"line_number":1185,"context_line":"        }"},{"line_number":1186,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":18,"id":"93f3c165_4b1c11c8","line":1185,"range":{"start_line":1181,"start_character":8,"end_line":1185,"end_character":9},"updated":"2022-09-15 09:19:21.000000000","message":"Can you add the \"host_id\" and \"fault_option\" described as cardinality:0..1 in the spec?","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"2a5c05b332ee98c7fc42fc95fe2749d6493ff9ef","unresolved":false,"context_lines":[{"line_number":1178,"context_line":""},{"line_number":1179,"context_line":"def server_notification(alarm_id):"},{"line_number":1180,"context_line":"    return {"},{"line_number":1181,"context_line":"        \u0027notification\u0027: {"},{"line_number":1182,"context_line":"            \u0027alarm_id\u0027: alarm_id,"},{"line_number":1183,"context_line":"            \u0027fault_id\u0027: \u00271234\u0027,"},{"line_number":1184,"context_line":"            \u0027fault_type\u0027: \u002710\u0027,"},{"line_number":1185,"context_line":"        }"},{"line_number":1186,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":18,"id":"ff7c3e1b_df79de51","line":1185,"range":{"start_line":1181,"start_character":8,"end_line":1185,"end_character":9},"in_reply_to":"7f82d719_4190da85","updated":"2022-09-16 00:53:52.000000000","message":"Done","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":1178,"context_line":""},{"line_number":1179,"context_line":"def server_notification(alarm_id):"},{"line_number":1180,"context_line":"    return {"},{"line_number":1181,"context_line":"        \u0027notification\u0027: {"},{"line_number":1182,"context_line":"            \u0027alarm_id\u0027: alarm_id,"},{"line_number":1183,"context_line":"            \u0027fault_id\u0027: \u00271234\u0027,"},{"line_number":1184,"context_line":"            \u0027fault_type\u0027: \u002710\u0027,"},{"line_number":1185,"context_line":"        }"},{"line_number":1186,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":18,"id":"7f82d719_4190da85","line":1185,"range":{"start_line":1181,"start_character":8,"end_line":1185,"end_character":9},"in_reply_to":"93f3c165_4b1c11c8","updated":"2022-09-15 11:16:30.000000000","message":"Fixed at patchset19.","commit_id":"fd19c89260bce43b559f37391f78bda517f39245"}],"tacker/tests/functional/sol_v2_common/samples/server_notification/contents/Scripts/sample_script.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"ddfb9c1f9bcc69e647173aa49cfbc6418d682707","unresolved":true,"context_lines":[{"line_number":40,"context_line":"        self.rpc \u003d conductor_rpc_v2.VnfLcmRpcApiV2()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def make_output_dict(self):"},{"line_number":43,"context_line":"        return {"},{"line_number":44,"context_line":"            \u0027vnf_instance\u0027: self.inst"},{"line_number":45,"context_line":"        }"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def request_remove_timer(self, vnf_instance_id):"},{"line_number":48,"context_line":"        self.rpc.server_notification_remove_timer("}],"source_content_type":"text/x-python","patch_set":16,"id":"4dac606c_fa2ad8c3","line":45,"range":{"start_line":43,"start_character":8,"end_line":45,"end_character":9},"updated":"2022-09-14 18:14:37.000000000","message":"nit: no need to consume three lines, but one line enough.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":40,"context_line":"        self.rpc \u003d conductor_rpc_v2.VnfLcmRpcApiV2()"},{"line_number":41,"context_line":""},{"line_number":42,"context_line":"    def make_output_dict(self):"},{"line_number":43,"context_line":"        return {"},{"line_number":44,"context_line":"            \u0027vnf_instance\u0027: self.inst"},{"line_number":45,"context_line":"        }"},{"line_number":46,"context_line":""},{"line_number":47,"context_line":"    def request_remove_timer(self, vnf_instance_id):"},{"line_number":48,"context_line":"        self.rpc.server_notification_remove_timer("}],"source_content_type":"text/x-python","patch_set":16,"id":"487f1ea8_df5ca132","line":45,"range":{"start_line":43,"start_character":8,"end_line":45,"end_character":9},"in_reply_to":"4dac606c_fa2ad8c3","updated":"2022-09-15 11:16:30.000000000","message":"Fixed at patchset 19.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"}],"tacker/tests/functional/sol_v2_common/test_server_notification.py":[{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"93967b3c630e22f3d3776e813a41f2845f1551d7","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":16,"id":"79753807_2a9e6de8","updated":"2022-09-13 14:20:46.000000000","message":"Just a question.\nWhy this file put under `sol_v2_common` as common?\n`CommonServerNotificationTest` seems to be only using in `tacker/tests/functional/sol_v2/test_vnflcm_basic.py`, will this class be used other test in future?","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"a7ad932918be5cc2726a456b2a82dba010c52e07","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"eadaddd9_12d1e2e8","in_reply_to":"13e98432_a0b92f02","updated":"2022-09-16 01:21:34.000000000","message":"Ack","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"aaf96a771521857f77b3741c46eb125f7dd67a1a","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":16,"id":"13e98432_a0b92f02","in_reply_to":"79753807_2a9e6de8","updated":"2022-09-14 12:06:11.000000000","message":"test_vnflcm_basic.py has been moved to tacker/tests/functional/sol_v2/.\nFixed at patchset 17.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"}],"tacker/tests/unit/sol_refactored/conductor/test_server_notification.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"ddfb9c1f9bcc69e647173aa49cfbc6418d682707","unresolved":true,"context_lines":[{"line_number":25,"context_line":"from tacker.tests.unit.db import base as db_base"},{"line_number":26,"context_line":"from unittest import mock"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"_inst1 \u003d {"},{"line_number":29,"context_line":"    \u0027id\u0027: \u0027test_id\u0027,"},{"line_number":30,"context_line":"    \u0027vnfdId\u0027: \u0027vnfdId\u0027,"},{"line_number":31,"context_line":"    \u0027vnfProvider\u0027: \u0027vnfProvider\u0027,"},{"line_number":32,"context_line":"    \u0027vnfProductName\u0027: \u0027vnfProductName\u0027,"},{"line_number":33,"context_line":"    \u0027vnfSoftwareVersion\u0027: \u0027vnfSoftwareVersion\u0027,"},{"line_number":34,"context_line":"    \u0027vnfdVersion\u0027: \u0027vnfdVersion\u0027,"},{"line_number":35,"context_line":"    \u0027instantiationState\u0027: \u0027NOT_INSTANTIATED\u0027,"},{"line_number":36,"context_line":"    \u0027vimConnectionInfo\u0027: {"},{"line_number":37,"context_line":"        \u0027vim1\u0027: {"},{"line_number":38,"context_line":"            \u0027accessInfo\u0027: {"},{"line_number":39,"context_line":"                \u0027project\u0027: \u0027tenant\u0027"},{"line_number":40,"context_line":"            }"},{"line_number":41,"context_line":"        },"},{"line_number":42,"context_line":"        \u0027vim2\u0027: {"},{"line_number":43,"context_line":"            \u0027accessInfo\u0027: {"},{"line_number":44,"context_line":"            }"},{"line_number":45,"context_line":"        }"},{"line_number":46,"context_line":"    },"},{"line_number":47,"context_line":"    \u0027instantiatedVnfInfo\u0027: {"},{"line_number":48,"context_line":"        \u0027id\u0027: \u0027id\u0027,"},{"line_number":49,"context_line":"        \u0027vduId\u0027: \u0027vduId\u0027,"},{"line_number":50,"context_line":"        \u0027vnfcResourceInfo\u0027: ["},{"line_number":51,"context_line":"            {"},{"line_number":52,"context_line":"                \u0027id\u0027: \u0027id\u0027,"},{"line_number":53,"context_line":"                \u0027vduId\u0027: \u0027vduId\u0027,"},{"line_number":54,"context_line":"                \u0027computeResource\u0027: {"},{"line_number":55,"context_line":"                    \"vimConnectionId\": \"vim_connection_id\","},{"line_number":56,"context_line":"                    \"resourceId\": \"res_id_VDU1_1\","},{"line_number":57,"context_line":"                    \"vimLevelResourceType\": \"OS::Nova::Server\""},{"line_number":58,"context_line":"                },"},{"line_number":59,"context_line":"                \u0027metadata\u0027: {"},{"line_number":60,"context_line":"                }"},{"line_number":61,"context_line":"            }, {"},{"line_number":62,"context_line":"                \u0027id\u0027: \u0027id2\u0027,"},{"line_number":63,"context_line":"                \u0027vduId\u0027: \u0027vduId2\u0027,"},{"line_number":64,"context_line":"                \u0027computeResource\u0027: {"},{"line_number":65,"context_line":"                    \"vimConnectionId\": \"vim_connection_id2\","},{"line_number":66,"context_line":"                    \"resourceId\": \"res_id_VDU1_2\","},{"line_number":67,"context_line":"                    \"vimLevelResourceType\": \"OS::Nova::Server\""},{"line_number":68,"context_line":"                }"},{"line_number":69,"context_line":"            }"},{"line_number":70,"context_line":"        ]"},{"line_number":71,"context_line":"    }"},{"line_number":72,"context_line":"}"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"_inst2 \u003d copy.deepcopy(_inst1)"},{"line_number":75,"context_line":"_inst2[\u0027instantiatedVnfInfo\u0027][\u0027metadata\u0027] \u003d {"},{"line_number":76,"context_line":"    \u0027serverNotifierUri\u0027: \u0027serverNotifierUri\u0027,"},{"line_number":77,"context_line":"    \u0027faultId\u0027: \u0027faultId\u0027"},{"line_number":78,"context_line":"}"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"class TestServerNotification(db_base.SqlTestCase):"}],"source_content_type":"text/x-python","patch_set":16,"id":"0d3dff00_2f5e92a9","line":78,"range":{"start_line":28,"start_character":0,"end_line":78,"end_character":1},"updated":"2022-09-14 18:14:37.000000000","message":"Could I confirm where the variables are used?","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"},{"author":{"_account_id":35016,"name":"Koji Shimizu","email":"shimizu.koji@fujitsu.com","username":"shimizu-koji"},"change_message_id":"d293d40c97d1b28b59b3b38c6c6377c4e492b187","unresolved":true,"context_lines":[{"line_number":25,"context_line":"from tacker.tests.unit.db import base as db_base"},{"line_number":26,"context_line":"from unittest import mock"},{"line_number":27,"context_line":""},{"line_number":28,"context_line":"_inst1 \u003d {"},{"line_number":29,"context_line":"    \u0027id\u0027: \u0027test_id\u0027,"},{"line_number":30,"context_line":"    \u0027vnfdId\u0027: \u0027vnfdId\u0027,"},{"line_number":31,"context_line":"    \u0027vnfProvider\u0027: \u0027vnfProvider\u0027,"},{"line_number":32,"context_line":"    \u0027vnfProductName\u0027: \u0027vnfProductName\u0027,"},{"line_number":33,"context_line":"    \u0027vnfSoftwareVersion\u0027: \u0027vnfSoftwareVersion\u0027,"},{"line_number":34,"context_line":"    \u0027vnfdVersion\u0027: \u0027vnfdVersion\u0027,"},{"line_number":35,"context_line":"    \u0027instantiationState\u0027: \u0027NOT_INSTANTIATED\u0027,"},{"line_number":36,"context_line":"    \u0027vimConnectionInfo\u0027: {"},{"line_number":37,"context_line":"        \u0027vim1\u0027: {"},{"line_number":38,"context_line":"            \u0027accessInfo\u0027: {"},{"line_number":39,"context_line":"                \u0027project\u0027: \u0027tenant\u0027"},{"line_number":40,"context_line":"            }"},{"line_number":41,"context_line":"        },"},{"line_number":42,"context_line":"        \u0027vim2\u0027: {"},{"line_number":43,"context_line":"            \u0027accessInfo\u0027: {"},{"line_number":44,"context_line":"            }"},{"line_number":45,"context_line":"        }"},{"line_number":46,"context_line":"    },"},{"line_number":47,"context_line":"    \u0027instantiatedVnfInfo\u0027: {"},{"line_number":48,"context_line":"        \u0027id\u0027: \u0027id\u0027,"},{"line_number":49,"context_line":"        \u0027vduId\u0027: \u0027vduId\u0027,"},{"line_number":50,"context_line":"        \u0027vnfcResourceInfo\u0027: ["},{"line_number":51,"context_line":"            {"},{"line_number":52,"context_line":"                \u0027id\u0027: \u0027id\u0027,"},{"line_number":53,"context_line":"                \u0027vduId\u0027: \u0027vduId\u0027,"},{"line_number":54,"context_line":"                \u0027computeResource\u0027: {"},{"line_number":55,"context_line":"                    \"vimConnectionId\": \"vim_connection_id\","},{"line_number":56,"context_line":"                    \"resourceId\": \"res_id_VDU1_1\","},{"line_number":57,"context_line":"                    \"vimLevelResourceType\": \"OS::Nova::Server\""},{"line_number":58,"context_line":"                },"},{"line_number":59,"context_line":"                \u0027metadata\u0027: {"},{"line_number":60,"context_line":"                }"},{"line_number":61,"context_line":"            }, {"},{"line_number":62,"context_line":"                \u0027id\u0027: \u0027id2\u0027,"},{"line_number":63,"context_line":"                \u0027vduId\u0027: \u0027vduId2\u0027,"},{"line_number":64,"context_line":"                \u0027computeResource\u0027: {"},{"line_number":65,"context_line":"                    \"vimConnectionId\": \"vim_connection_id2\","},{"line_number":66,"context_line":"                    \"resourceId\": \"res_id_VDU1_2\","},{"line_number":67,"context_line":"                    \"vimLevelResourceType\": \"OS::Nova::Server\""},{"line_number":68,"context_line":"                }"},{"line_number":69,"context_line":"            }"},{"line_number":70,"context_line":"        ]"},{"line_number":71,"context_line":"    }"},{"line_number":72,"context_line":"}"},{"line_number":73,"context_line":""},{"line_number":74,"context_line":"_inst2 \u003d copy.deepcopy(_inst1)"},{"line_number":75,"context_line":"_inst2[\u0027instantiatedVnfInfo\u0027][\u0027metadata\u0027] \u003d {"},{"line_number":76,"context_line":"    \u0027serverNotifierUri\u0027: \u0027serverNotifierUri\u0027,"},{"line_number":77,"context_line":"    \u0027faultId\u0027: \u0027faultId\u0027"},{"line_number":78,"context_line":"}"},{"line_number":79,"context_line":""},{"line_number":80,"context_line":""},{"line_number":81,"context_line":"class TestServerNotification(db_base.SqlTestCase):"}],"source_content_type":"text/x-python","patch_set":16,"id":"caf7e7ed_0864c7e9","line":78,"range":{"start_line":28,"start_character":0,"end_line":78,"end_character":1},"in_reply_to":"0d3dff00_2f5e92a9","updated":"2022-09-15 11:16:30.000000000","message":"It was dead code. removed at patchset19.","commit_id":"5a00447007b6b4a9e9ef80eea0e79ee9af2b9ca2"}]}
