)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"5e38ee5c2645c4c195e4ed78c4445af6942e56dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"9338c4f0_38837a24","updated":"2022-09-05 23:12:22.000000000","message":"Thank you for the review.","commit_id":"e769f1326495f05f736adef2d7daf32ecb61fc79"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"01fdc4751c5f253fca9edd210262900a1e9bcd8f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"2a40785d_8712a533","updated":"2022-09-07 06:45:16.000000000","message":"LGTM","commit_id":"e812bf0887508b23c9a898115e98f4a33cff9953"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"ac5eb03eef61ab141bf71c130f8931507ebd913e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"36a463aa_1c489035","updated":"2022-09-07 07:12:20.000000000","message":"LGTM","commit_id":"e812bf0887508b23c9a898115e98f4a33cff9953"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"43b30da77460ce43388e5f94fafd7190f913e0e5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"a9586d3f_f9246985","updated":"2022-09-07 01:54:40.000000000","message":"LGTM","commit_id":"e812bf0887508b23c9a898115e98f4a33cff9953"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"778e799cf88ac7ff3a4501e4f00bf7486e2eaf3a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"08b614bd_e32110c5","updated":"2022-09-07 06:15:05.000000000","message":"Thank you for the review.","commit_id":"e812bf0887508b23c9a898115e98f4a33cff9953"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"a598e6c8f2e92b0988b50708b4f2e48e3c5869bb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c6f1fa54_4ca560b4","updated":"2022-09-11 22:51:03.000000000","message":"Thank you for the review.","commit_id":"e812bf0887508b23c9a898115e98f4a33cff9953"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"7a6062ae07c5e82a5b64b1415f96322622747ace","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"49ea618b_884b5182","updated":"2022-09-07 05:20:15.000000000","message":"Thanks for your patch, I have a question about notification reverse order.\nPlease kindly find my comment.","commit_id":"e812bf0887508b23c9a898115e98f4a33cff9953"}],"tacker/sol_refactored/common/config.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"4258e18d971a4eb1bf98c8cba1a163a845e58a14","unresolved":true,"context_lines":[{"line_number":48,"context_line":"                      \u0027for VNF LCM operation occurrences.\u0027)),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027notify_connect_retries\u0027,"},{"line_number":50,"context_line":"               default\u003d0,  # 0 means no retry"},{"line_number":51,"context_line":"               help\u003d_(\u0027Number of retries that should be attempted for \u0027"},{"line_number":52,"context_line":"                      \u0027connection error when sending a notification. \u0027"},{"line_number":53,"context_line":"                      \u0027Period between retries is exponential starting \u0027"},{"line_number":54,"context_line":"                      \u00270.5 seconds up to a maximum of 60 seconds.\u0027)),"}],"source_content_type":"text/x-python","patch_set":2,"id":"d4795d60_1d5f9ba5","line":51,"range":{"start_line":51,"start_character":20,"end_line":51,"end_character":22},"updated":"2022-09-10 21:14:35.000000000","message":"Please import i18n to activate `_()` as we mentioned 😄","commit_id":"e812bf0887508b23c9a898115e98f4a33cff9953"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"a598e6c8f2e92b0988b50708b4f2e48e3c5869bb","unresolved":true,"context_lines":[{"line_number":48,"context_line":"                      \u0027for VNF LCM operation occurrences.\u0027)),"},{"line_number":49,"context_line":"    cfg.IntOpt(\u0027notify_connect_retries\u0027,"},{"line_number":50,"context_line":"               default\u003d0,  # 0 means no retry"},{"line_number":51,"context_line":"               help\u003d_(\u0027Number of retries that should be attempted for \u0027"},{"line_number":52,"context_line":"                      \u0027connection error when sending a notification. \u0027"},{"line_number":53,"context_line":"                      \u0027Period between retries is exponential starting \u0027"},{"line_number":54,"context_line":"                      \u00270.5 seconds up to a maximum of 60 seconds.\u0027)),"}],"source_content_type":"text/x-python","patch_set":2,"id":"6fbefe0b_3b8c6a04","line":51,"range":{"start_line":51,"start_character":20,"end_line":51,"end_character":22},"in_reply_to":"d4795d60_1d5f9ba5","updated":"2022-09-11 22:51:03.000000000","message":"I see. I will add.","commit_id":"e812bf0887508b23c9a898115e98f4a33cff9953"}],"tacker/sol_refactored/common/subscription_utils.py":[{"author":{"_account_id":31668,"deleted":true},"change_message_id":"b72a5f2df03c6cbec81a453b47104edbdd338f40","unresolved":true,"context_lines":[{"line_number":76,"context_line":"@async_call"},{"line_number":77,"context_line":"def send_notification(subsc, notif_data):"},{"line_number":78,"context_line":"    auth_handle \u003d _get_notification_auth_handle(subsc)"},{"line_number":79,"context_line":"    client \u003d http_client.HttpClient(auth_handle,"},{"line_number":80,"context_line":"        version\u003dapi_version.CURRENT_VERSION)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    url \u003d subsc.callbackUri"}],"source_content_type":"text/x-python","patch_set":1,"id":"86650173_544ded40","line":79,"updated":"2022-09-05 07:03:34.000000000","message":"Why not set \"connect_retries\" in HttpClient\u0027s init in this case?\nhttps://opendev.org/openstack/tacker/src/branch/stable/yoga/tacker/sol_refactored/common/http_client.py#L43-L45\n\nIn what cases is the connect_retries setting in the above init supposed to be used?","commit_id":"e769f1326495f05f736adef2d7daf32ecb61fc79"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"5e38ee5c2645c4c195e4ed78c4445af6942e56dd","unresolved":true,"context_lines":[{"line_number":76,"context_line":"@async_call"},{"line_number":77,"context_line":"def send_notification(subsc, notif_data):"},{"line_number":78,"context_line":"    auth_handle \u003d _get_notification_auth_handle(subsc)"},{"line_number":79,"context_line":"    client \u003d http_client.HttpClient(auth_handle,"},{"line_number":80,"context_line":"        version\u003dapi_version.CURRENT_VERSION)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    url \u003d subsc.callbackUri"}],"source_content_type":"text/x-python","patch_set":1,"id":"b41704f4_65fef5da","line":79,"in_reply_to":"86650173_544ded40","updated":"2022-09-05 23:12:22.000000000","message":"There is no string reason that connect_retries is set in do_request. I think it is natural that connect_retries is set in HttpClient init. I will fix.","commit_id":"e769f1326495f05f736adef2d7daf32ecb61fc79"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"43b30da77460ce43388e5f94fafd7190f913e0e5","unresolved":false,"context_lines":[{"line_number":76,"context_line":"@async_call"},{"line_number":77,"context_line":"def send_notification(subsc, notif_data):"},{"line_number":78,"context_line":"    auth_handle \u003d _get_notification_auth_handle(subsc)"},{"line_number":79,"context_line":"    client \u003d http_client.HttpClient(auth_handle,"},{"line_number":80,"context_line":"        version\u003dapi_version.CURRENT_VERSION)"},{"line_number":81,"context_line":""},{"line_number":82,"context_line":"    url \u003d subsc.callbackUri"}],"source_content_type":"text/x-python","patch_set":1,"id":"d295704f_268689ad","line":79,"in_reply_to":"b41704f4_65fef5da","updated":"2022-09-07 01:54:40.000000000","message":"Done","commit_id":"e769f1326495f05f736adef2d7daf32ecb61fc79"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"b72a5f2df03c6cbec81a453b47104edbdd338f40","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"def test_notification(subsc):"},{"line_number":96,"context_line":"    auth_handle \u003d _get_notification_auth_handle(subsc)"},{"line_number":97,"context_line":"    client \u003d http_client.HttpClient(auth_handle,"},{"line_number":98,"context_line":"        version\u003dapi_version.CURRENT_VERSION,"},{"line_number":99,"context_line":"        timeout\u003dTEST_NOTIFICATION_TIMEOUT)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"f329ada8_f8a779b2","line":97,"updated":"2022-09-05 07:03:34.000000000","message":"For test_notification, retry is unnecessary?","commit_id":"e769f1326495f05f736adef2d7daf32ecb61fc79"},{"author":{"_account_id":31668,"deleted":true},"change_message_id":"43b30da77460ce43388e5f94fafd7190f913e0e5","unresolved":false,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"def test_notification(subsc):"},{"line_number":96,"context_line":"    auth_handle \u003d _get_notification_auth_handle(subsc)"},{"line_number":97,"context_line":"    client \u003d http_client.HttpClient(auth_handle,"},{"line_number":98,"context_line":"        version\u003dapi_version.CURRENT_VERSION,"},{"line_number":99,"context_line":"        timeout\u003dTEST_NOTIFICATION_TIMEOUT)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"f531e7f1_e92acb7e","line":97,"in_reply_to":"8059abf9_5659a823","updated":"2022-09-07 01:54:40.000000000","message":"Thank you for your explanation. I understand.","commit_id":"e769f1326495f05f736adef2d7daf32ecb61fc79"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"5e38ee5c2645c4c195e4ed78c4445af6942e56dd","unresolved":true,"context_lines":[{"line_number":94,"context_line":""},{"line_number":95,"context_line":"def test_notification(subsc):"},{"line_number":96,"context_line":"    auth_handle \u003d _get_notification_auth_handle(subsc)"},{"line_number":97,"context_line":"    client \u003d http_client.HttpClient(auth_handle,"},{"line_number":98,"context_line":"        version\u003dapi_version.CURRENT_VERSION,"},{"line_number":99,"context_line":"        timeout\u003dTEST_NOTIFICATION_TIMEOUT)"},{"line_number":100,"context_line":""}],"source_content_type":"text/x-python","patch_set":1,"id":"8059abf9_5659a823","line":97,"in_reply_to":"f329ada8_f8a779b2","updated":"2022-09-05 23:12:22.000000000","message":"unnecessary. test_notification is called synchronously from API. A user understands the error immediately, and it is not so good to keep waiting.\nOn the other hand, send_notification is called asynchronously.","commit_id":"e769f1326495f05f736adef2d7daf32ecb61fc79"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"7a6062ae07c5e82a5b64b1415f96322622747ace","unresolved":true,"context_lines":[{"line_number":73,"context_line":"    return inner"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"@async_call"},{"line_number":77,"context_line":"def send_notification(subsc, notif_data):"},{"line_number":78,"context_line":"    auth_handle \u003d _get_notification_auth_handle(subsc)"},{"line_number":79,"context_line":"    connect_retries \u003d (CONF.v2_vnfm.notify_connect_retries"}],"source_content_type":"text/x-python","patch_set":2,"id":"be34a735_64ed77bc","line":76,"range":{"start_line":76,"start_character":0,"end_line":76,"end_character":11},"updated":"2022-09-07 05:20:15.000000000","message":"Just a question,\nThis send_notification() method is called as async_call, so I am worried that the following reverse order may occur.\n\n1. Send notify(STARTING)         \u003d\u003e Connection/Send Failed, and Retry\n2. Send notify(PROCESSING)       \u003d\u003e Success\n3. Send notify(STARTING) (Retry) \u003d\u003e Success\n\nI think it will be fine if it doesn\u0027t happen or if there is no problem even if it happens.","commit_id":"e812bf0887508b23c9a898115e98f4a33cff9953"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"ac5eb03eef61ab141bf71c130f8931507ebd913e","unresolved":false,"context_lines":[{"line_number":73,"context_line":"    return inner"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"@async_call"},{"line_number":77,"context_line":"def send_notification(subsc, notif_data):"},{"line_number":78,"context_line":"    auth_handle \u003d _get_notification_auth_handle(subsc)"},{"line_number":79,"context_line":"    connect_retries \u003d (CONF.v2_vnfm.notify_connect_retries"}],"source_content_type":"text/x-python","patch_set":2,"id":"70d871d6_57d3cf6c","line":76,"range":{"start_line":76,"start_character":0,"end_line":76,"end_character":11},"in_reply_to":"32138de0_96780818","updated":"2022-09-07 07:12:20.000000000","message":"Thanks for your answer.\nThe reverse notification order can happen, so the receiver should care order by looking data in the notification (e.g. creation time). I understand.","commit_id":"e812bf0887508b23c9a898115e98f4a33cff9953"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"778e799cf88ac7ff3a4501e4f00bf7486e2eaf3a","unresolved":true,"context_lines":[{"line_number":73,"context_line":"    return inner"},{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"@async_call"},{"line_number":77,"context_line":"def send_notification(subsc, notif_data):"},{"line_number":78,"context_line":"    auth_handle \u003d _get_notification_auth_handle(subsc)"},{"line_number":79,"context_line":"    connect_retries \u003d (CONF.v2_vnfm.notify_connect_retries"}],"source_content_type":"text/x-python","patch_set":2,"id":"32138de0_96780818","line":76,"range":{"start_line":76,"start_character":0,"end_line":76,"end_character":11},"in_reply_to":"be34a735_64ed77bc","updated":"2022-09-07 06:15:05.000000000","message":"It may happen. Note that there is not the guarantee of the arrival order originally even if STARTING is sent first. So I think the receipt side should care originally.","commit_id":"e812bf0887508b23c9a898115e98f4a33cff9953"}]}
