)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"1505383a99ed3e738efac64900824b7617700aea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"1e288220_a32f4002","updated":"2023-02-07 07:06:15.000000000","message":"recheck, k8s delete resource timeout. resource: \"kind\":\"Service\"\"name\": \"curry-svc-vdu001-multiple\"","commit_id":"56b3d89e76368ff965331aba18fa582e25dde758"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"8db2a8fe2369a4d07f3654340292019fd75dada4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"c95b5199_da8eaaaf","updated":"2023-02-15 09:30:08.000000000","message":"Thank you for writing very clear TODO description.\n\nPlease give me a little more time to see the other parts.","commit_id":"3d16f76c2916c089288822e8e8b1fa71ba6dc6ef"},{"author":{"_account_id":35476,"name":"taiki kimura","email":"taiki.kimura@ntt-at.co.jp","username":"tkimura"},"change_message_id":"f5c75339b55c25cc0ae355f4b5178406f7af2f1f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"66850fc8_4627c2a7","updated":"2023-02-22 00:42:24.000000000","message":"Thank you for the patch.\nPlease kindly find my comments.","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"27f2e0d2cafdaf57136898e7b67276b212c35eb6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"09c60646_ffc27ed6","updated":"2023-02-20 14:13:58.000000000","message":"recheck - infra failure in sol/sol-v2/sol-v2-ubuntu-focal jobs","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"b698eeb81cdb8a3517098533dcc10eb37481c0cd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"e47b31b0_fd41690b","updated":"2023-02-20 07:47:23.000000000","message":"recheck, infra failure in sol-kubernetes job","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":32707,"name":"Kenta Fukaya","email":"kenta.fukaya.xv@hco.ntt.co.jp","username":"fukayan"},"change_message_id":"2b4a836f01b1cb8af36899d0cdb580ee684c690c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"e3061be9_05544289","updated":"2023-02-22 08:10:21.000000000","message":"Thank you for the patch.\nPlease check my question.","commit_id":"1c74ff9c930746d9ba2cdd8fb3bc82900e9e4557"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7ebd3c7252f06f1db568cb7948a7ca92a3b69420","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"48c0ecec_f9e2e43b","updated":"2023-02-23 01:22:49.000000000","message":"recheck, infra failure in sol-v2-ubuntu-focal, sol-v2 and sol job","commit_id":"1c74ff9c930746d9ba2cdd8fb3bc82900e9e4557"},{"author":{"_account_id":35476,"name":"taiki kimura","email":"taiki.kimura@ntt-at.co.jp","username":"tkimura"},"change_message_id":"ecd9bcefdedb4aceb043749e66051eee2400c348","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"31bac4dd_52c21042","updated":"2023-02-24 00:21:39.000000000","message":"Thank you for re-work!","commit_id":"471fe6d6ab2c7f0552eca39621d2703e20d4db04"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"dc3fd03c96ff91d8cec45b39919ddc080b9702fe","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"84d01821_066453a8","updated":"2023-02-27 01:10:55.000000000","message":"recheck, failure in sol-v2 and sol-v2-ubuntu-focal job","commit_id":"471fe6d6ab2c7f0552eca39621d2703e20d4db04"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"24ba4bd7da9642ed2af69fbab4cc4a8734e1b93a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":12,"id":"b129a796_7e649231","updated":"2023-02-24 05:25:02.000000000","message":"recheck, failure in sol-v2-az-retry job","commit_id":"471fe6d6ab2c7f0552eca39621d2703e20d4db04"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"69b9e24786832d8e4a82b3b0be781bd9bf7679d6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"87259f48_91e60e4a","updated":"2023-02-28 12:23:14.000000000","message":"Thanks for your patch. Please find few comments.","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"db7d0aa066df65b4dce5dc8aa9c2f851179ebc6f","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"74213994_d41a3df7","updated":"2023-03-01 05:23:06.000000000","message":"recheck, failure in sol-v2-ubuntu-focal job","commit_id":"e7b0341ac86d9423ebcee4c56b2c0f4c461a1e9f"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"e7c80d885e952903751fb72d04de8a19fd5fc1d5","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"48c724fd_4249207f","updated":"2023-03-02 08:33:43.000000000","message":"Thank you for rework and sorry for delayed reply.\n\nPlease find my additional comments.","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"30dd60f6272363147c3ca22bce475e41d831e432","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"8df77480_08b65b74","updated":"2023-03-02 13:32:48.000000000","message":"LGTM, thank you!","commit_id":"96d4ac6353b674ff8b7d9a8e7246b18b8222c8a1"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f46566542a8b4f84bb42a5284983a4c104209569","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"258c5b0d_074a3944","updated":"2023-03-02 13:09:26.000000000","message":"Thank you for your quick reply. \nLGTM.","commit_id":"96d4ac6353b674ff8b7d9a8e7246b18b8222c8a1"}],"releasenotes/notes/support-auto-heal-scale-with-vnfm-2f9a4533b12c96ed.yaml":[{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"69b9e24786832d8e4a82b3b0be781bd9bf7679d6","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    As a VNFM, Tacker can decide whether to perform heal and scale operations"},{"line_number":7,"context_line":"    through the received alarms sent by External Monitoring Tools, without"},{"line_number":8,"context_line":"    NFVO."},{"line_number":9,"context_line":"    At the same time, a user guide is also made to help users understand"},{"line_number":10,"context_line":"    the function."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"bb5795bd_aa6d1ab3","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":23},"updated":"2023-02-28 12:23:14.000000000","message":"Could reframe as \"Added new user guide to help users understand the function\".","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"50760ae3f8a1aade64fc406284cc1466c662b4ca","unresolved":true,"context_lines":[{"line_number":6,"context_line":"    As a VNFM, Tacker can decide whether to perform heal and scale operations"},{"line_number":7,"context_line":"    through the received alarms sent by External Monitoring Tools, without"},{"line_number":8,"context_line":"    NFVO."},{"line_number":9,"context_line":"    At the same time, a user guide is also made to help users understand"},{"line_number":10,"context_line":"    the function."}],"source_content_type":"text/x-yaml","patch_set":16,"id":"0e04b908_9577ed9d","line":9,"range":{"start_line":9,"start_character":4,"end_line":9,"end_character":23},"in_reply_to":"bb5795bd_aa6d1ab3","updated":"2023-03-01 02:39:32.000000000","message":"I fixed it in patchset 17.","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"}],"tacker/sol_refactored/common/prometheus_plugin.py":[{"author":{"_account_id":32707,"name":"Kenta Fukaya","email":"kenta.fukaya.xv@hco.ntt.co.jp","username":"fukayan"},"change_message_id":"2b4a836f01b1cb8af36899d0cdb580ee684c690c","unresolved":true,"context_lines":[{"line_number":972,"context_line":"                continue"},{"line_number":973,"context_line":""},{"line_number":974,"context_line":"            vnf_instance_id \u003d alt[\u0027labels\u0027][\u0027vnf_instance_id\u0027]"},{"line_number":975,"context_line":"            inst \u003d inst_utils.get_inst(context, vnf_instance_id)"},{"line_number":976,"context_line":"            if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:"},{"line_number":977,"context_line":"                continue"},{"line_number":978,"context_line":""},{"line_number":979,"context_line":"            if (not inst.obj_attr_is_set(\u0027vnfConfigurableProperties\u0027) or"}],"source_content_type":"text/x-python","patch_set":9,"id":"132da2fc_34cfb8a0","line":976,"range":{"start_line":975,"start_character":0,"end_line":976,"end_character":57},"updated":"2023-02-22 08:10:21.000000000","message":"If inst_utils.get_inst can\u0027t get instance, for loop is end.\nIs this program working correctly?","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"b0f5a1e2a77588dcfe5b2e02b8d83cd51afe67f3","unresolved":true,"context_lines":[{"line_number":972,"context_line":"                continue"},{"line_number":973,"context_line":""},{"line_number":974,"context_line":"            vnf_instance_id \u003d alt[\u0027labels\u0027][\u0027vnf_instance_id\u0027]"},{"line_number":975,"context_line":"            inst \u003d inst_utils.get_inst(context, vnf_instance_id)"},{"line_number":976,"context_line":"            if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:"},{"line_number":977,"context_line":"                continue"},{"line_number":978,"context_line":""},{"line_number":979,"context_line":"            if (not inst.obj_attr_is_set(\u0027vnfConfigurableProperties\u0027) or"}],"source_content_type":"text/x-python","patch_set":9,"id":"999e5424_acf78e7e","line":976,"range":{"start_line":975,"start_character":0,"end_line":976,"end_character":57},"in_reply_to":"132da2fc_34cfb8a0","updated":"2023-02-23 06:43:53.000000000","message":"I added a catch for `VnfInstanceNotFound` exception.","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"e7c80d885e952903751fb72d04de8a19fd5fc1d5","unresolved":true,"context_lines":[{"line_number":872,"context_line":"            self._alert(kwargs[\u0027request\u0027], body\u003dkwargs[\u0027body\u0027])"},{"line_number":873,"context_line":"        except Exception as e:"},{"line_number":874,"context_line":"            # All exceptions is ignored here and 204 response will always"},{"line_number":875,"context_line":"            # be returned. Because when tacker responds error to alertmanager,"},{"line_number":876,"context_line":"            # alertmanager may repeat the same reports."},{"line_number":877,"context_line":"            LOG.error(\"%s: %s\", e.__class__.__name__, e.args[0])"},{"line_number":878,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"9e441540_7eb4f0b6","line":875,"updated":"2023-03-02 08:33:43.000000000","message":"nits. Maybe this sentence should be the following grammatically.\n\n```\nbe returned because when tacker responds error to altermanager,\n```","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"487af42a695e69ea280059a8fd0d7452c950ebbe","unresolved":true,"context_lines":[{"line_number":872,"context_line":"            self._alert(kwargs[\u0027request\u0027], body\u003dkwargs[\u0027body\u0027])"},{"line_number":873,"context_line":"        except Exception as e:"},{"line_number":874,"context_line":"            # All exceptions is ignored here and 204 response will always"},{"line_number":875,"context_line":"            # be returned. Because when tacker responds error to alertmanager,"},{"line_number":876,"context_line":"            # alertmanager may repeat the same reports."},{"line_number":877,"context_line":"            LOG.error(\"%s: %s\", e.__class__.__name__, e.args[0])"},{"line_number":878,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"e44c470d_0a7d3fa0","line":875,"in_reply_to":"9e441540_7eb4f0b6","updated":"2023-03-02 10:56:22.000000000","message":"I fixed it in patchset 20.","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f46566542a8b4f84bb42a5284983a4c104209569","unresolved":false,"context_lines":[{"line_number":872,"context_line":"            self._alert(kwargs[\u0027request\u0027], body\u003dkwargs[\u0027body\u0027])"},{"line_number":873,"context_line":"        except Exception as e:"},{"line_number":874,"context_line":"            # All exceptions is ignored here and 204 response will always"},{"line_number":875,"context_line":"            # be returned. Because when tacker responds error to alertmanager,"},{"line_number":876,"context_line":"            # alertmanager may repeat the same reports."},{"line_number":877,"context_line":"            LOG.error(\"%s: %s\", e.__class__.__name__, e.args[0])"},{"line_number":878,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"ea28af47_c950b88d","line":875,"in_reply_to":"e44c470d_0a7d3fa0","updated":"2023-03-02 13:09:26.000000000","message":"Done","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"e7c80d885e952903751fb72d04de8a19fd5fc1d5","unresolved":true,"context_lines":[{"line_number":883,"context_line":"    @validator.schema(prometheus_plugin_schemas.AlertMessage)"},{"line_number":884,"context_line":"    def _alert(self, request, body):"},{"line_number":885,"context_line":"        context \u003d request.context"},{"line_number":886,"context_line":"        for alt in body[\u0027alerts\u0027]:"},{"line_number":887,"context_line":"            if alt[\u0027status\u0027] !\u003d \u0027firing\u0027:"},{"line_number":888,"context_line":"                continue"},{"line_number":889,"context_line":"            if alt[\u0027labels\u0027][\u0027receiver_type\u0027] !\u003d \u0027tacker\u0027:"}],"source_content_type":"text/x-python","patch_set":19,"id":"697a7cc0_a752308d","line":886,"updated":"2023-03-02 08:33:43.000000000","message":"The name `alt` is a little bit confusing to me as it\u0027s also an abbreviation of alternative. How about just `alert` `alrt`. Please change the other similar parts as well.\n\nhttp://acronymsandslang.com/abbreviation-for/ALERT.html","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"487af42a695e69ea280059a8fd0d7452c950ebbe","unresolved":true,"context_lines":[{"line_number":883,"context_line":"    @validator.schema(prometheus_plugin_schemas.AlertMessage)"},{"line_number":884,"context_line":"    def _alert(self, request, body):"},{"line_number":885,"context_line":"        context \u003d request.context"},{"line_number":886,"context_line":"        for alt in body[\u0027alerts\u0027]:"},{"line_number":887,"context_line":"            if alt[\u0027status\u0027] !\u003d \u0027firing\u0027:"},{"line_number":888,"context_line":"                continue"},{"line_number":889,"context_line":"            if alt[\u0027labels\u0027][\u0027receiver_type\u0027] !\u003d \u0027tacker\u0027:"}],"source_content_type":"text/x-python","patch_set":19,"id":"96f7da04_9324add6","line":886,"in_reply_to":"697a7cc0_a752308d","updated":"2023-03-02 10:56:22.000000000","message":"I changed them to `alert`.","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f46566542a8b4f84bb42a5284983a4c104209569","unresolved":false,"context_lines":[{"line_number":883,"context_line":"    @validator.schema(prometheus_plugin_schemas.AlertMessage)"},{"line_number":884,"context_line":"    def _alert(self, request, body):"},{"line_number":885,"context_line":"        context \u003d request.context"},{"line_number":886,"context_line":"        for alt in body[\u0027alerts\u0027]:"},{"line_number":887,"context_line":"            if alt[\u0027status\u0027] !\u003d \u0027firing\u0027:"},{"line_number":888,"context_line":"                continue"},{"line_number":889,"context_line":"            if alt[\u0027labels\u0027][\u0027receiver_type\u0027] !\u003d \u0027tacker\u0027:"}],"source_content_type":"text/x-python","patch_set":19,"id":"6153fe7c_a2a1afb4","line":886,"in_reply_to":"96f7da04_9324add6","updated":"2023-03-02 13:09:26.000000000","message":"Done","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"e7c80d885e952903751fb72d04de8a19fd5fc1d5","unresolved":true,"context_lines":[{"line_number":884,"context_line":"    def _alert(self, request, body):"},{"line_number":885,"context_line":"        context \u003d request.context"},{"line_number":886,"context_line":"        for alt in body[\u0027alerts\u0027]:"},{"line_number":887,"context_line":"            if alt[\u0027status\u0027] !\u003d \u0027firing\u0027:"},{"line_number":888,"context_line":"                continue"},{"line_number":889,"context_line":"            if alt[\u0027labels\u0027][\u0027receiver_type\u0027] !\u003d \u0027tacker\u0027:"},{"line_number":890,"context_line":"                continue"},{"line_number":891,"context_line":"            if alt[\u0027labels\u0027][\u0027function_type\u0027] !\u003d \u0027auto_heal\u0027:"},{"line_number":892,"context_line":"                continue"},{"line_number":893,"context_line":""},{"line_number":894,"context_line":"            vnf_instance_id \u003d alt[\u0027labels\u0027][\u0027vnf_instance_id\u0027]"},{"line_number":895,"context_line":"            inst \u003d inst_utils.get_inst(context, vnf_instance_id)"}],"source_content_type":"text/x-python","patch_set":19,"id":"65cd0e94_b170de4d","line":892,"range":{"start_line":887,"start_character":1,"end_line":892,"end_character":24},"updated":"2023-03-02 08:33:43.000000000","message":"it\u0027s okay, but you can also write like follows.\n\n```\n        alerts \u003d (alert for alert in body[\u0027alerts\u0027] if \n                  alert[\u0027status\u0027] \u003d\u003d \u0027firing\u0027 and\n                  alert[\u0027labels\u0027][\u0027receiver_type\u0027] \u003d\u003d \u0027tacker\u0027 and\n                  alert[\u0027labels\u0027][\u0027function_type\u0027] \u003d\u003d \u0027auto_scale\u0027)\n        for alt in alerts:\n            ...\n```\n\nThis is generator expression [1] btw, and therefore no additional computation cost.\n\n[1]: https://stackoverflow.com/questions/47789/generator-expressions-vs-list-comprehensions\n\nor \n\n\n```\n            if (alt[\u0027status\u0027] !\u003d \u0027firing\u0027 or\n                alt[\u0027labels\u0027][\u0027receiver_type\u0027] !\u003d \u0027tacker\u0027 or\n                alt[\u0027labels\u0027][\u0027function_type\u0027] !\u003d \u0027auto_scale\u0027):\n                continue\n```","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f46566542a8b4f84bb42a5284983a4c104209569","unresolved":false,"context_lines":[{"line_number":884,"context_line":"    def _alert(self, request, body):"},{"line_number":885,"context_line":"        context \u003d request.context"},{"line_number":886,"context_line":"        for alt in body[\u0027alerts\u0027]:"},{"line_number":887,"context_line":"            if alt[\u0027status\u0027] !\u003d \u0027firing\u0027:"},{"line_number":888,"context_line":"                continue"},{"line_number":889,"context_line":"            if alt[\u0027labels\u0027][\u0027receiver_type\u0027] !\u003d \u0027tacker\u0027:"},{"line_number":890,"context_line":"                continue"},{"line_number":891,"context_line":"            if alt[\u0027labels\u0027][\u0027function_type\u0027] !\u003d \u0027auto_heal\u0027:"},{"line_number":892,"context_line":"                continue"},{"line_number":893,"context_line":""},{"line_number":894,"context_line":"            vnf_instance_id \u003d alt[\u0027labels\u0027][\u0027vnf_instance_id\u0027]"},{"line_number":895,"context_line":"            inst \u003d inst_utils.get_inst(context, vnf_instance_id)"}],"source_content_type":"text/x-python","patch_set":19,"id":"99bcc3c3_2659fb26","line":892,"range":{"start_line":887,"start_character":1,"end_line":892,"end_character":24},"in_reply_to":"2196d800_052c3ad9","updated":"2023-03-02 13:09:26.000000000","message":"Done","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"487af42a695e69ea280059a8fd0d7452c950ebbe","unresolved":true,"context_lines":[{"line_number":884,"context_line":"    def _alert(self, request, body):"},{"line_number":885,"context_line":"        context \u003d request.context"},{"line_number":886,"context_line":"        for alt in body[\u0027alerts\u0027]:"},{"line_number":887,"context_line":"            if alt[\u0027status\u0027] !\u003d \u0027firing\u0027:"},{"line_number":888,"context_line":"                continue"},{"line_number":889,"context_line":"            if alt[\u0027labels\u0027][\u0027receiver_type\u0027] !\u003d \u0027tacker\u0027:"},{"line_number":890,"context_line":"                continue"},{"line_number":891,"context_line":"            if alt[\u0027labels\u0027][\u0027function_type\u0027] !\u003d \u0027auto_heal\u0027:"},{"line_number":892,"context_line":"                continue"},{"line_number":893,"context_line":""},{"line_number":894,"context_line":"            vnf_instance_id \u003d alt[\u0027labels\u0027][\u0027vnf_instance_id\u0027]"},{"line_number":895,"context_line":"            inst \u003d inst_utils.get_inst(context, vnf_instance_id)"}],"source_content_type":"text/x-python","patch_set":19,"id":"2196d800_052c3ad9","line":892,"range":{"start_line":887,"start_character":1,"end_line":892,"end_character":24},"in_reply_to":"65cd0e94_b170de4d","updated":"2023-03-02 10:56:22.000000000","message":"I fixed it in patchset 20.","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"e7c80d885e952903751fb72d04de8a19fd5fc1d5","unresolved":true,"context_lines":[{"line_number":965,"context_line":"    def _alert(self, request, body):"},{"line_number":966,"context_line":"        context \u003d request.context"},{"line_number":967,"context_line":"        for alt in body[\u0027alerts\u0027]:"},{"line_number":968,"context_line":"            if alt[\u0027status\u0027] !\u003d \u0027firing\u0027:"},{"line_number":969,"context_line":"                continue"},{"line_number":970,"context_line":"            if alt[\u0027labels\u0027][\u0027receiver_type\u0027] !\u003d \u0027tacker\u0027:"},{"line_number":971,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":19,"id":"74f943ee_f99435ab","line":968,"updated":"2023-03-02 08:33:43.000000000","message":"ditto","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"487af42a695e69ea280059a8fd0d7452c950ebbe","unresolved":true,"context_lines":[{"line_number":965,"context_line":"    def _alert(self, request, body):"},{"line_number":966,"context_line":"        context \u003d request.context"},{"line_number":967,"context_line":"        for alt in body[\u0027alerts\u0027]:"},{"line_number":968,"context_line":"            if alt[\u0027status\u0027] !\u003d \u0027firing\u0027:"},{"line_number":969,"context_line":"                continue"},{"line_number":970,"context_line":"            if alt[\u0027labels\u0027][\u0027receiver_type\u0027] !\u003d \u0027tacker\u0027:"},{"line_number":971,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":19,"id":"e1e4bb50_4b7c7b09","line":968,"in_reply_to":"74f943ee_f99435ab","updated":"2023-03-02 10:56:22.000000000","message":"I fixed it in patchset 20.","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f46566542a8b4f84bb42a5284983a4c104209569","unresolved":false,"context_lines":[{"line_number":965,"context_line":"    def _alert(self, request, body):"},{"line_number":966,"context_line":"        context \u003d request.context"},{"line_number":967,"context_line":"        for alt in body[\u0027alerts\u0027]:"},{"line_number":968,"context_line":"            if alt[\u0027status\u0027] !\u003d \u0027firing\u0027:"},{"line_number":969,"context_line":"                continue"},{"line_number":970,"context_line":"            if alt[\u0027labels\u0027][\u0027receiver_type\u0027] !\u003d \u0027tacker\u0027:"},{"line_number":971,"context_line":"                continue"}],"source_content_type":"text/x-python","patch_set":19,"id":"0fe5dc87_bf672628","line":968,"in_reply_to":"e1e4bb50_4b7c7b09","updated":"2023-03-02 13:09:26.000000000","message":"Done","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"e7c80d885e952903751fb72d04de8a19fd5fc1d5","unresolved":true,"context_lines":[{"line_number":977,"context_line":"                inst \u003d inst_utils.get_inst(context, vnf_instance_id)"},{"line_number":978,"context_line":"            except sol_ex.VnfInstanceNotFound:"},{"line_number":979,"context_line":"                continue"},{"line_number":980,"context_line":"            if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:"},{"line_number":981,"context_line":"                continue"},{"line_number":982,"context_line":""},{"line_number":983,"context_line":"            if (not inst.obj_attr_is_set(\u0027vnfConfigurableProperties\u0027) or"},{"line_number":984,"context_line":"                    not inst.vnfConfigurableProperties.get("},{"line_number":985,"context_line":"                        \u0027isAutoscaleEnabled\u0027)):"},{"line_number":986,"context_line":"                continue"},{"line_number":987,"context_line":""},{"line_number":988,"context_line":"            aspect_id \u003d alt[\u0027labels\u0027][\u0027aspect_id\u0027]"},{"line_number":989,"context_line":"            result \u003d {"}],"source_content_type":"text/x-python","patch_set":19,"id":"a2b1f864_30b6cd23","line":986,"range":{"start_line":980,"start_character":0,"end_line":986,"end_character":24},"updated":"2023-03-02 08:33:43.000000000","message":"IMO, combining them into an if single statement seems natural. \n(Only when you look at PrometheusPluginAutoHealing, you can understand why these if statements are separated)","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f46566542a8b4f84bb42a5284983a4c104209569","unresolved":false,"context_lines":[{"line_number":977,"context_line":"                inst \u003d inst_utils.get_inst(context, vnf_instance_id)"},{"line_number":978,"context_line":"            except sol_ex.VnfInstanceNotFound:"},{"line_number":979,"context_line":"                continue"},{"line_number":980,"context_line":"            if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:"},{"line_number":981,"context_line":"                continue"},{"line_number":982,"context_line":""},{"line_number":983,"context_line":"            if (not inst.obj_attr_is_set(\u0027vnfConfigurableProperties\u0027) or"},{"line_number":984,"context_line":"                    not inst.vnfConfigurableProperties.get("},{"line_number":985,"context_line":"                        \u0027isAutoscaleEnabled\u0027)):"},{"line_number":986,"context_line":"                continue"},{"line_number":987,"context_line":""},{"line_number":988,"context_line":"            aspect_id \u003d alt[\u0027labels\u0027][\u0027aspect_id\u0027]"},{"line_number":989,"context_line":"            result \u003d {"}],"source_content_type":"text/x-python","patch_set":19,"id":"f0692eb9_2918dd03","line":986,"range":{"start_line":980,"start_character":0,"end_line":986,"end_character":24},"in_reply_to":"73c0e646_e8606db6","updated":"2023-03-02 13:09:26.000000000","message":"Done","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"487af42a695e69ea280059a8fd0d7452c950ebbe","unresolved":true,"context_lines":[{"line_number":977,"context_line":"                inst \u003d inst_utils.get_inst(context, vnf_instance_id)"},{"line_number":978,"context_line":"            except sol_ex.VnfInstanceNotFound:"},{"line_number":979,"context_line":"                continue"},{"line_number":980,"context_line":"            if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:"},{"line_number":981,"context_line":"                continue"},{"line_number":982,"context_line":""},{"line_number":983,"context_line":"            if (not inst.obj_attr_is_set(\u0027vnfConfigurableProperties\u0027) or"},{"line_number":984,"context_line":"                    not inst.vnfConfigurableProperties.get("},{"line_number":985,"context_line":"                        \u0027isAutoscaleEnabled\u0027)):"},{"line_number":986,"context_line":"                continue"},{"line_number":987,"context_line":""},{"line_number":988,"context_line":"            aspect_id \u003d alt[\u0027labels\u0027][\u0027aspect_id\u0027]"},{"line_number":989,"context_line":"            result \u003d {"}],"source_content_type":"text/x-python","patch_set":19,"id":"73c0e646_e8606db6","line":986,"range":{"start_line":980,"start_character":0,"end_line":986,"end_character":24},"in_reply_to":"a2b1f864_30b6cd23","updated":"2023-03-02 10:56:22.000000000","message":"I fixed it in patchset 20.","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"e7c80d885e952903751fb72d04de8a19fd5fc1d5","unresolved":true,"context_lines":[{"line_number":995,"context_line":"                continue"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"            auto_scale_type \u003d alt[\u0027labels\u0027][\u0027auto_scale_type\u0027]"},{"line_number":998,"context_line":"            self.process_auto_scale("},{"line_number":999,"context_line":"                context, vnf_instance_id, auto_scale_type, aspect_id)"}],"source_content_type":"text/x-python","patch_set":19,"id":"9635158c_d228b0e8","line":998,"updated":"2023-03-02 08:33:43.000000000","message":"Why don\u0027t you write the contents of `process_auto_scale` here directly? This method seems to be only used here.\nIf I\u0027m wrong, please ignore.","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f46566542a8b4f84bb42a5284983a4c104209569","unresolved":false,"context_lines":[{"line_number":995,"context_line":"                continue"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"            auto_scale_type \u003d alt[\u0027labels\u0027][\u0027auto_scale_type\u0027]"},{"line_number":998,"context_line":"            self.process_auto_scale("},{"line_number":999,"context_line":"                context, vnf_instance_id, auto_scale_type, aspect_id)"}],"source_content_type":"text/x-python","patch_set":19,"id":"2f0fbbcd_b2570bfa","line":998,"in_reply_to":"72f0c988_fb78dc92","updated":"2023-03-02 13:09:26.000000000","message":"Done","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"487af42a695e69ea280059a8fd0d7452c950ebbe","unresolved":true,"context_lines":[{"line_number":995,"context_line":"                continue"},{"line_number":996,"context_line":""},{"line_number":997,"context_line":"            auto_scale_type \u003d alt[\u0027labels\u0027][\u0027auto_scale_type\u0027]"},{"line_number":998,"context_line":"            self.process_auto_scale("},{"line_number":999,"context_line":"                context, vnf_instance_id, auto_scale_type, aspect_id)"}],"source_content_type":"text/x-python","patch_set":19,"id":"72f0c988_fb78dc92","line":998,"in_reply_to":"9635158c_d228b0e8","updated":"2023-03-02 10:56:22.000000000","message":"I removed `process_auto_scale` and moved the content here.","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"}],"tacker/sol_refactored/common/vnflcm_utils.py":[{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"782692aca65d6fb8eb76b03a00974c9725001ca5","unresolved":true,"context_lines":[{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"@coordinate.lock_vnf_instance(\u0027{vnf_instance_id}\u0027)\r"},{"line_number":30,"context_line":"def heal(context, vnf_instance_id, body):\r"},{"line_number":31,"context_line":"    inst \u003d inst_utils.get_inst(context, vnf_instance_id)\r"},{"line_number":32,"context_line":"\r"},{"line_number":33,"context_line":"    if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:\r"},{"line_number":34,"context_line":"        raise sol_ex.VnfInstanceIsNotInstantiated(inst_id\u003dvnf_instance_id)\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"84273949_98bfb25d","line":31,"updated":"2023-02-07 08:38:30.000000000","message":"This is a copy and paste from the controller. To be honest, I feel this method is too much to be called util.\nAlso,I wonder if we should duplicate the entire method. What happens here mainly is the validation of a req body. In this sense, what we should make util is the validation part. Then, we can use it from anywhere including controller, notification driver, etc. What do you think?\nFor this idea, we need a consensus and it may take time, the above idea can be a separate patch. In that case please leave TODO.","commit_id":"9b30a045a4445565f80311e83052a8917f271750"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"e7c80d885e952903751fb72d04de8a19fd5fc1d5","unresolved":true,"context_lines":[{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"@coordinate.lock_vnf_instance(\u0027{vnf_instance_id}\u0027)\r"},{"line_number":30,"context_line":"def heal(context, vnf_instance_id, body):\r"},{"line_number":31,"context_line":"    inst \u003d inst_utils.get_inst(context, vnf_instance_id)\r"},{"line_number":32,"context_line":"\r"},{"line_number":33,"context_line":"    if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:\r"},{"line_number":34,"context_line":"        raise sol_ex.VnfInstanceIsNotInstantiated(inst_id\u003dvnf_instance_id)\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"eee4bbe9_606005ce","line":31,"in_reply_to":"1deb9d5b_6f26f035","updated":"2023-03-02 08:33:43.000000000","message":"I found the answer. This should be mixin rather than utils. \n\nYou can just change tacker/sol_refactored/common/vnflcm_utils.py to VnfLcmMixin and inherit it from any places where VNF LCM is necessary. As we don\u0027t have any time left, please leave them as is, and let\u0027s do refactoring in the next release.","commit_id":"9b30a045a4445565f80311e83052a8917f271750"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f46566542a8b4f84bb42a5284983a4c104209569","unresolved":false,"context_lines":[{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"@coordinate.lock_vnf_instance(\u0027{vnf_instance_id}\u0027)\r"},{"line_number":30,"context_line":"def heal(context, vnf_instance_id, body):\r"},{"line_number":31,"context_line":"    inst \u003d inst_utils.get_inst(context, vnf_instance_id)\r"},{"line_number":32,"context_line":"\r"},{"line_number":33,"context_line":"    if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:\r"},{"line_number":34,"context_line":"        raise sol_ex.VnfInstanceIsNotInstantiated(inst_id\u003dvnf_instance_id)\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"02704306_1f498ea4","line":31,"in_reply_to":"79c2f12b_640d8001","updated":"2023-03-02 13:09:26.000000000","message":"Done","commit_id":"9b30a045a4445565f80311e83052a8917f271750"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"13ffcd2df24ea7ebf12027beaad49504755a5eed","unresolved":true,"context_lines":[{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"@coordinate.lock_vnf_instance(\u0027{vnf_instance_id}\u0027)\r"},{"line_number":30,"context_line":"def heal(context, vnf_instance_id, body):\r"},{"line_number":31,"context_line":"    inst \u003d inst_utils.get_inst(context, vnf_instance_id)\r"},{"line_number":32,"context_line":"\r"},{"line_number":33,"context_line":"    if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:\r"},{"line_number":34,"context_line":"        raise sol_ex.VnfInstanceIsNotInstantiated(inst_id\u003dvnf_instance_id)\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"b882f67d_559ffe40","line":31,"in_reply_to":"84273949_98bfb25d","updated":"2023-02-08 02:33:08.000000000","message":"Thank you for your comments. Please let me confirm what you mean.\n\n\u003e This is a copy and paste from the controller. To be honest, I feel this method is too much to be called util.\n\nDo I need to modify the file name of `vnflcm_utils.py` in this patch?\n\n\u003e Also,I wonder if we should duplicate the entire method. What happens here mainly is the validation of a req body. In this sense, what we should make util is the validation part. Then, we can use it from anywhere including controller, notification driver, etc. What do you think?\n\nThe verification of the request body is placed in the util, and then the processing of creating lcmocc and calling start_lcm_op is performed by the controller, notification driver, etc. Is this what it means?\n\n\u003e For this idea, we need a consensus and it may take time, the above idea can be a separate patch. In that case please leave TODO.\n\nI can append this TODO in patchset 7.","commit_id":"9b30a045a4445565f80311e83052a8917f271750"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"e97fc1d984e62532a095a6d3643564b551cd65e9","unresolved":true,"context_lines":[{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"@coordinate.lock_vnf_instance(\u0027{vnf_instance_id}\u0027)\r"},{"line_number":30,"context_line":"def heal(context, vnf_instance_id, body):\r"},{"line_number":31,"context_line":"    inst \u003d inst_utils.get_inst(context, vnf_instance_id)\r"},{"line_number":32,"context_line":"\r"},{"line_number":33,"context_line":"    if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:\r"},{"line_number":34,"context_line":"        raise sol_ex.VnfInstanceIsNotInstantiated(inst_id\u003dvnf_instance_id)\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"fc8a26cb_d7d18f55","line":31,"in_reply_to":"b882f67d_559ffe40","updated":"2023-02-09 05:23:49.000000000","message":"Thank you for the confirmation.\n\n\u003e  Do I need to modify the file name of vnflcm_utils.py  in this patch?\n\nNo, you don\u0027t have to do that. The true problem is the copy-and-paste, not the name `util`. For example, if you change the heal method in the controller in the future, you have to change `vnflcm_utils.py` as well. Other developers who don\u0027t know this patch will miss this maintenance task, meaning that this architecture is not good in terms of maintainability.\n\n\u003e The verification of the request body is placed in the util, and then the processing of creating lcmocc and calling start_lcm_op is performed by the controller, notification driver, etc. Is this what it means?\n\nYes.\n\n\u003e  I can append this TODO in patchset 7. \n\nI\u0027d appreciate it. Please kindly do that.\nThis idea also changes the controller. This patch is not responsible for such a refactoring task.","commit_id":"9b30a045a4445565f80311e83052a8917f271750"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"8db2a8fe2369a4d07f3654340292019fd75dada4","unresolved":false,"context_lines":[{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"@coordinate.lock_vnf_instance(\u0027{vnf_instance_id}\u0027)\r"},{"line_number":30,"context_line":"def heal(context, vnf_instance_id, body):\r"},{"line_number":31,"context_line":"    inst \u003d inst_utils.get_inst(context, vnf_instance_id)\r"},{"line_number":32,"context_line":"\r"},{"line_number":33,"context_line":"    if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:\r"},{"line_number":34,"context_line":"        raise sol_ex.VnfInstanceIsNotInstantiated(inst_id\u003dvnf_instance_id)\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"1deb9d5b_6f26f035","line":31,"in_reply_to":"c9c7f458_e9c54950","updated":"2023-02-15 09:30:08.000000000","message":"Done","commit_id":"9b30a045a4445565f80311e83052a8917f271750"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"487af42a695e69ea280059a8fd0d7452c950ebbe","unresolved":true,"context_lines":[{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"@coordinate.lock_vnf_instance(\u0027{vnf_instance_id}\u0027)\r"},{"line_number":30,"context_line":"def heal(context, vnf_instance_id, body):\r"},{"line_number":31,"context_line":"    inst \u003d inst_utils.get_inst(context, vnf_instance_id)\r"},{"line_number":32,"context_line":"\r"},{"line_number":33,"context_line":"    if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:\r"},{"line_number":34,"context_line":"        raise sol_ex.VnfInstanceIsNotInstantiated(inst_id\u003dvnf_instance_id)\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"79c2f12b_640d8001","line":31,"in_reply_to":"eee4bbe9_606005ce","updated":"2023-03-02 10:56:22.000000000","message":"OK, I get it.","commit_id":"9b30a045a4445565f80311e83052a8917f271750"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"fc13f48cd6da13947e32a11c2481d50ccf2a51bc","unresolved":true,"context_lines":[{"line_number":28,"context_line":"\r"},{"line_number":29,"context_line":"@coordinate.lock_vnf_instance(\u0027{vnf_instance_id}\u0027)\r"},{"line_number":30,"context_line":"def heal(context, vnf_instance_id, body):\r"},{"line_number":31,"context_line":"    inst \u003d inst_utils.get_inst(context, vnf_instance_id)\r"},{"line_number":32,"context_line":"\r"},{"line_number":33,"context_line":"    if inst.instantiationState !\u003d \u0027INSTANTIATED\u0027:\r"},{"line_number":34,"context_line":"        raise sol_ex.VnfInstanceIsNotInstantiated(inst_id\u003dvnf_instance_id)\r"}],"source_content_type":"text/x-python","patch_set":5,"id":"c9c7f458_e9c54950","line":31,"in_reply_to":"fc8a26cb_d7d18f55","updated":"2023-02-09 08:15:22.000000000","message":"I appended `TODO` to patchset 7.\nSince the line breaks in the file are `CRLF`, I changed them to `LF`.","commit_id":"9b30a045a4445565f80311e83052a8917f271750"}],"tacker/sol_refactored/conductor/conductor_rpc_v2.py":[{"author":{"_account_id":35476,"name":"taiki kimura","email":"taiki.kimura@ntt-at.co.jp","username":"tkimura"},"change_message_id":"f5c75339b55c25cc0ae355f4b5178406f7af2f1f","unresolved":true,"context_lines":[{"line_number":98,"context_line":"    def trigger_scale(self, context, id, scale_req):"},{"line_number":99,"context_line":"        self.cast(context, \u0027trigger_scale\u0027, id\u003did, scale_req\u003dscale_req)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def vnfm_auto_heal_queue("},{"line_number":102,"context_line":"            self, context, vnf_instance_id, vnfc_info_id):"},{"line_number":103,"context_line":"        self.cast(context, \u0027vnfm_auto_heal_queue\u0027,"},{"line_number":104,"context_line":"                  vnf_instance_id\u003dvnf_instance_id,"},{"line_number":105,"context_line":"                  vnfc_info_id\u003dvnfc_info_id)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def vnfm_auto_heal_remove_timer(self, context, vnf_instance_id):"},{"line_number":108,"context_line":"        self.cast(context, \u0027vnfm_auto_heal_remove_timer\u0027,"},{"line_number":109,"context_line":"                  vnf_instance_id\u003dvnf_instance_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"eac605bf_26f7b629","line":109,"range":{"start_line":101,"start_character":0,"end_line":109,"end_character":50},"updated":"2023-02-22 00:42:24.000000000","message":"`vnfm_auto_heal_queue` is the method of adding to the queue.\n`vnfm_auto_heal_remove_timer` is the method of removing frotm the queue.\n\nHow about changing the method name to something more intuitive?\nFor example `enqueue_auto_heal_instance` and `dequeue_auto_heal_instance`.","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":35476,"name":"taiki kimura","email":"taiki.kimura@ntt-at.co.jp","username":"tkimura"},"change_message_id":"ecd9bcefdedb4aceb043749e66051eee2400c348","unresolved":false,"context_lines":[{"line_number":98,"context_line":"    def trigger_scale(self, context, id, scale_req):"},{"line_number":99,"context_line":"        self.cast(context, \u0027trigger_scale\u0027, id\u003did, scale_req\u003dscale_req)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def vnfm_auto_heal_queue("},{"line_number":102,"context_line":"            self, context, vnf_instance_id, vnfc_info_id):"},{"line_number":103,"context_line":"        self.cast(context, \u0027vnfm_auto_heal_queue\u0027,"},{"line_number":104,"context_line":"                  vnf_instance_id\u003dvnf_instance_id,"},{"line_number":105,"context_line":"                  vnfc_info_id\u003dvnfc_info_id)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def vnfm_auto_heal_remove_timer(self, context, vnf_instance_id):"},{"line_number":108,"context_line":"        self.cast(context, \u0027vnfm_auto_heal_remove_timer\u0027,"},{"line_number":109,"context_line":"                  vnf_instance_id\u003dvnf_instance_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"c0004f8d_de3ddfb5","line":109,"range":{"start_line":101,"start_character":0,"end_line":109,"end_character":50},"in_reply_to":"b7430dd5_5fcfcce8","updated":"2023-02-24 00:21:39.000000000","message":"Done","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"9ee2cffe87aeabcd0bf4bf51d87089b9bd7768c1","unresolved":true,"context_lines":[{"line_number":98,"context_line":"    def trigger_scale(self, context, id, scale_req):"},{"line_number":99,"context_line":"        self.cast(context, \u0027trigger_scale\u0027, id\u003did, scale_req\u003dscale_req)"},{"line_number":100,"context_line":""},{"line_number":101,"context_line":"    def vnfm_auto_heal_queue("},{"line_number":102,"context_line":"            self, context, vnf_instance_id, vnfc_info_id):"},{"line_number":103,"context_line":"        self.cast(context, \u0027vnfm_auto_heal_queue\u0027,"},{"line_number":104,"context_line":"                  vnf_instance_id\u003dvnf_instance_id,"},{"line_number":105,"context_line":"                  vnfc_info_id\u003dvnfc_info_id)"},{"line_number":106,"context_line":""},{"line_number":107,"context_line":"    def vnfm_auto_heal_remove_timer(self, context, vnf_instance_id):"},{"line_number":108,"context_line":"        self.cast(context, \u0027vnfm_auto_heal_remove_timer\u0027,"},{"line_number":109,"context_line":"                  vnf_instance_id\u003dvnf_instance_id)"}],"source_content_type":"text/x-python","patch_set":9,"id":"b7430dd5_5fcfcce8","line":109,"range":{"start_line":101,"start_character":0,"end_line":109,"end_character":50},"in_reply_to":"eac605bf_26f7b629","updated":"2023-02-22 08:07:42.000000000","message":"I fixed it in patchset 10.","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"}],"tacker/sol_refactored/conductor/conductor_v2.py":[{"author":{"_account_id":35476,"name":"taiki kimura","email":"taiki.kimura@ntt-at.co.jp","username":"tkimura"},"change_message_id":"f5c75339b55c25cc0ae355f4b5178406f7af2f1f","unresolved":true,"context_lines":[{"line_number":398,"context_line":"        self.prom_driver.trigger_scale(context, id, scale_req)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    @log.log"},{"line_number":401,"context_line":"    def vnfm_auto_heal_queue("},{"line_number":402,"context_line":"            self, context, vnf_instance_id, vnfc_info_id):"},{"line_number":403,"context_line":"        self.prom_driver.heal_queue(context, vnf_instance_id, vnfc_info_id)"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"    @log.log"},{"line_number":406,"context_line":"    def vnfm_auto_heal_remove_timer(self, context, vnf_instance_id):"},{"line_number":407,"context_line":"        self.prom_driver.remove_timer(vnf_instance_id)"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    @log.log"},{"line_number":410,"context_line":"    def server_notification_notify("}],"source_content_type":"text/x-python","patch_set":9,"id":"8577cf24_46d58ef3","line":407,"range":{"start_line":401,"start_character":0,"end_line":407,"end_character":54},"updated":"2023-02-22 00:42:24.000000000","message":"ditto.","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"9ee2cffe87aeabcd0bf4bf51d87089b9bd7768c1","unresolved":true,"context_lines":[{"line_number":398,"context_line":"        self.prom_driver.trigger_scale(context, id, scale_req)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    @log.log"},{"line_number":401,"context_line":"    def vnfm_auto_heal_queue("},{"line_number":402,"context_line":"            self, context, vnf_instance_id, vnfc_info_id):"},{"line_number":403,"context_line":"        self.prom_driver.heal_queue(context, vnf_instance_id, vnfc_info_id)"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"    @log.log"},{"line_number":406,"context_line":"    def vnfm_auto_heal_remove_timer(self, context, vnf_instance_id):"},{"line_number":407,"context_line":"        self.prom_driver.remove_timer(vnf_instance_id)"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    @log.log"},{"line_number":410,"context_line":"    def server_notification_notify("}],"source_content_type":"text/x-python","patch_set":9,"id":"88cbb697_bd54945b","line":407,"range":{"start_line":401,"start_character":0,"end_line":407,"end_character":54},"in_reply_to":"8577cf24_46d58ef3","updated":"2023-02-22 08:07:42.000000000","message":"I fixed it in patchset 10.","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":35476,"name":"taiki kimura","email":"taiki.kimura@ntt-at.co.jp","username":"tkimura"},"change_message_id":"ecd9bcefdedb4aceb043749e66051eee2400c348","unresolved":false,"context_lines":[{"line_number":398,"context_line":"        self.prom_driver.trigger_scale(context, id, scale_req)"},{"line_number":399,"context_line":""},{"line_number":400,"context_line":"    @log.log"},{"line_number":401,"context_line":"    def vnfm_auto_heal_queue("},{"line_number":402,"context_line":"            self, context, vnf_instance_id, vnfc_info_id):"},{"line_number":403,"context_line":"        self.prom_driver.heal_queue(context, vnf_instance_id, vnfc_info_id)"},{"line_number":404,"context_line":""},{"line_number":405,"context_line":"    @log.log"},{"line_number":406,"context_line":"    def vnfm_auto_heal_remove_timer(self, context, vnf_instance_id):"},{"line_number":407,"context_line":"        self.prom_driver.remove_timer(vnf_instance_id)"},{"line_number":408,"context_line":""},{"line_number":409,"context_line":"    @log.log"},{"line_number":410,"context_line":"    def server_notification_notify("}],"source_content_type":"text/x-python","patch_set":9,"id":"2f988dd6_4e726cee","line":407,"range":{"start_line":401,"start_character":0,"end_line":407,"end_character":54},"in_reply_to":"88cbb697_bd54945b","updated":"2023-02-24 00:21:39.000000000","message":"Done","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"}],"tacker/sol_refactored/conductor/prometheus_plugin_driver.py":[{"author":{"_account_id":35476,"name":"taiki kimura","email":"taiki.kimura@ntt-at.co.jp","username":"tkimura"},"change_message_id":"f5c75339b55c25cc0ae355f4b5178406f7af2f1f","unresolved":true,"context_lines":[{"line_number":99,"context_line":"        self.timer_map \u003d {}"},{"line_number":100,"context_line":"        self.expiration_time \u003d CONF.prometheus_plugin.timer_interval"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def heal_queue(self, context, vnf_instance_id, vnfc_info_id):"},{"line_number":103,"context_line":"        if vnf_instance_id not in self.timer_map:"},{"line_number":104,"context_line":"            self.timer_map[vnf_instance_id] \u003d VnfmAutoHealTimer("},{"line_number":105,"context_line":"                context, vnf_instance_id, self.expiration_time,"},{"line_number":106,"context_line":"                self.timer_expired)"},{"line_number":107,"context_line":"        self.timer_map[vnf_instance_id].add_vnfc_info_id(vnfc_info_id)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def remove_timer(self, vnf_instance_id):"},{"line_number":110,"context_line":"        if vnf_instance_id in self.timer_map:"},{"line_number":111,"context_line":"            self.timer_map[vnf_instance_id].cancel()"},{"line_number":112,"context_line":"            del self.timer_map[vnf_instance_id]"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def trigger_heal(self, context, vnf_instance_id, vnfc_info_ids):"},{"line_number":115,"context_line":"        heal_req \u003d objects.HealVnfRequest(vnfcInstanceId\u003dvnfc_info_ids)"}],"source_content_type":"text/x-python","patch_set":9,"id":"663bb507_2372b866","line":112,"range":{"start_line":102,"start_character":0,"end_line":112,"end_character":47},"updated":"2023-02-22 00:42:24.000000000","message":"ditto.","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":35476,"name":"taiki kimura","email":"taiki.kimura@ntt-at.co.jp","username":"tkimura"},"change_message_id":"ecd9bcefdedb4aceb043749e66051eee2400c348","unresolved":false,"context_lines":[{"line_number":99,"context_line":"        self.timer_map \u003d {}"},{"line_number":100,"context_line":"        self.expiration_time \u003d CONF.prometheus_plugin.timer_interval"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def heal_queue(self, context, vnf_instance_id, vnfc_info_id):"},{"line_number":103,"context_line":"        if vnf_instance_id not in self.timer_map:"},{"line_number":104,"context_line":"            self.timer_map[vnf_instance_id] \u003d VnfmAutoHealTimer("},{"line_number":105,"context_line":"                context, vnf_instance_id, self.expiration_time,"},{"line_number":106,"context_line":"                self.timer_expired)"},{"line_number":107,"context_line":"        self.timer_map[vnf_instance_id].add_vnfc_info_id(vnfc_info_id)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def remove_timer(self, vnf_instance_id):"},{"line_number":110,"context_line":"        if vnf_instance_id in self.timer_map:"},{"line_number":111,"context_line":"            self.timer_map[vnf_instance_id].cancel()"},{"line_number":112,"context_line":"            del self.timer_map[vnf_instance_id]"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def trigger_heal(self, context, vnf_instance_id, vnfc_info_ids):"},{"line_number":115,"context_line":"        heal_req \u003d objects.HealVnfRequest(vnfcInstanceId\u003dvnfc_info_ids)"}],"source_content_type":"text/x-python","patch_set":9,"id":"7f61dd1b_12f645fa","line":112,"range":{"start_line":102,"start_character":0,"end_line":112,"end_character":47},"in_reply_to":"601af4c5_2b7d0860","updated":"2023-02-24 00:21:39.000000000","message":"Done","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"9ee2cffe87aeabcd0bf4bf51d87089b9bd7768c1","unresolved":true,"context_lines":[{"line_number":99,"context_line":"        self.timer_map \u003d {}"},{"line_number":100,"context_line":"        self.expiration_time \u003d CONF.prometheus_plugin.timer_interval"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"    def heal_queue(self, context, vnf_instance_id, vnfc_info_id):"},{"line_number":103,"context_line":"        if vnf_instance_id not in self.timer_map:"},{"line_number":104,"context_line":"            self.timer_map[vnf_instance_id] \u003d VnfmAutoHealTimer("},{"line_number":105,"context_line":"                context, vnf_instance_id, self.expiration_time,"},{"line_number":106,"context_line":"                self.timer_expired)"},{"line_number":107,"context_line":"        self.timer_map[vnf_instance_id].add_vnfc_info_id(vnfc_info_id)"},{"line_number":108,"context_line":""},{"line_number":109,"context_line":"    def remove_timer(self, vnf_instance_id):"},{"line_number":110,"context_line":"        if vnf_instance_id in self.timer_map:"},{"line_number":111,"context_line":"            self.timer_map[vnf_instance_id].cancel()"},{"line_number":112,"context_line":"            del self.timer_map[vnf_instance_id]"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def trigger_heal(self, context, vnf_instance_id, vnfc_info_ids):"},{"line_number":115,"context_line":"        heal_req \u003d objects.HealVnfRequest(vnfcInstanceId\u003dvnfc_info_ids)"}],"source_content_type":"text/x-python","patch_set":9,"id":"601af4c5_2b7d0860","line":112,"range":{"start_line":102,"start_character":0,"end_line":112,"end_character":47},"in_reply_to":"663bb507_2372b866","updated":"2023-02-22 08:07:42.000000000","message":"I fixed it in patchset 10.","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"e7c80d885e952903751fb72d04de8a19fd5fc1d5","unresolved":true,"context_lines":[{"line_number":111,"context_line":"            self.timer_map[vnf_instance_id].cancel()"},{"line_number":112,"context_line":"            del self.timer_map[vnf_instance_id]"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def trigger_heal(self, context, vnf_instance_id, vnfc_info_ids):"},{"line_number":115,"context_line":"        heal_req \u003d objects.HealVnfRequest(vnfcInstanceId\u003dvnfc_info_ids)"},{"line_number":116,"context_line":"        body \u003d heal_req.to_dict()"},{"line_number":117,"context_line":"        LOG.info(f\"VNFM AutoHealing is triggered. vnf: {vnf_instance_id}, \""}],"source_content_type":"text/x-python","patch_set":19,"id":"308d7881_2b2fd96f","line":114,"updated":"2023-03-02 08:33:43.000000000","message":"Should we assume to a case trigger_heal is called directly? If the answer is yes, this method is fine, but if not, this method should be private (i.e., _trigger_heal).\n\nIMO, we should define clear interfaces (i.e., public methods), so that users can quickly understand what is the role of this class and which method they have to call.","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f46566542a8b4f84bb42a5284983a4c104209569","unresolved":false,"context_lines":[{"line_number":111,"context_line":"            self.timer_map[vnf_instance_id].cancel()"},{"line_number":112,"context_line":"            del self.timer_map[vnf_instance_id]"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def trigger_heal(self, context, vnf_instance_id, vnfc_info_ids):"},{"line_number":115,"context_line":"        heal_req \u003d objects.HealVnfRequest(vnfcInstanceId\u003dvnfc_info_ids)"},{"line_number":116,"context_line":"        body \u003d heal_req.to_dict()"},{"line_number":117,"context_line":"        LOG.info(f\"VNFM AutoHealing is triggered. vnf: {vnf_instance_id}, \""}],"source_content_type":"text/x-python","patch_set":19,"id":"f77c1d6c_9fbf5cc9","line":114,"in_reply_to":"2a3703da_8223fd14","updated":"2023-03-02 13:09:26.000000000","message":"Done","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"487af42a695e69ea280059a8fd0d7452c950ebbe","unresolved":true,"context_lines":[{"line_number":111,"context_line":"            self.timer_map[vnf_instance_id].cancel()"},{"line_number":112,"context_line":"            del self.timer_map[vnf_instance_id]"},{"line_number":113,"context_line":""},{"line_number":114,"context_line":"    def trigger_heal(self, context, vnf_instance_id, vnfc_info_ids):"},{"line_number":115,"context_line":"        heal_req \u003d objects.HealVnfRequest(vnfcInstanceId\u003dvnfc_info_ids)"},{"line_number":116,"context_line":"        body \u003d heal_req.to_dict()"},{"line_number":117,"context_line":"        LOG.info(f\"VNFM AutoHealing is triggered. vnf: {vnf_instance_id}, \""}],"source_content_type":"text/x-python","patch_set":19,"id":"2a3703da_8223fd14","line":114,"in_reply_to":"308d7881_2b2fd96f","updated":"2023-03-02 10:56:22.000000000","message":"Ok, I think it should not be called directly at present, I changed it to `_trigger_heal`.","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"e7c80d885e952903751fb72d04de8a19fd5fc1d5","unresolved":true,"context_lines":[{"line_number":118,"context_line":"                 f\"vnfcInstanceId: {vnfc_info_ids}\")"},{"line_number":119,"context_line":"        vnflcm_utils.heal(context, vnf_instance_id, body)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def timer_expired(self, context, vnf_instance_id, vnfc_info_ids):"},{"line_number":122,"context_line":"        self.dequeue_heal(vnf_instance_id)"},{"line_number":123,"context_line":"        self.trigger_heal(context, vnf_instance_id, vnfc_info_ids)"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"776c843c_92efed03","line":121,"updated":"2023-03-02 08:33:43.000000000","message":"Does this method need to be public?","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"487af42a695e69ea280059a8fd0d7452c950ebbe","unresolved":true,"context_lines":[{"line_number":118,"context_line":"                 f\"vnfcInstanceId: {vnfc_info_ids}\")"},{"line_number":119,"context_line":"        vnflcm_utils.heal(context, vnf_instance_id, body)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def timer_expired(self, context, vnf_instance_id, vnfc_info_ids):"},{"line_number":122,"context_line":"        self.dequeue_heal(vnf_instance_id)"},{"line_number":123,"context_line":"        self.trigger_heal(context, vnf_instance_id, vnfc_info_ids)"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"87bb95d2_0934a587","line":121,"in_reply_to":"776c843c_92efed03","updated":"2023-03-02 10:56:22.000000000","message":"I changed it to `_timer_expired`.","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f46566542a8b4f84bb42a5284983a4c104209569","unresolved":false,"context_lines":[{"line_number":118,"context_line":"                 f\"vnfcInstanceId: {vnfc_info_ids}\")"},{"line_number":119,"context_line":"        vnflcm_utils.heal(context, vnf_instance_id, body)"},{"line_number":120,"context_line":""},{"line_number":121,"context_line":"    def timer_expired(self, context, vnf_instance_id, vnfc_info_ids):"},{"line_number":122,"context_line":"        self.dequeue_heal(vnf_instance_id)"},{"line_number":123,"context_line":"        self.trigger_heal(context, vnf_instance_id, vnfc_info_ids)"},{"line_number":124,"context_line":""}],"source_content_type":"text/x-python","patch_set":19,"id":"54c49cc9_6a370883","line":121,"in_reply_to":"87bb95d2_0934a587","updated":"2023-03-02 13:09:26.000000000","message":"Done","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"}],"tacker/sol_refactored/controller/vnflcm_v2.py":[{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"e7c80d885e952903751fb72d04de8a19fd5fc1d5","unresolved":true,"context_lines":[{"line_number":188,"context_line":"                        detail\u003d\"vnfcInstanceId(%s) does not exist.\""},{"line_number":189,"context_line":"                        % vnfc_mod[\u0027id\u0027])"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        lcmocc \u003d vnflcm_utils.new_lcmocc("},{"line_number":192,"context_line":"            id, v2fields.LcmOperationType.MODIFY_INFO,"},{"line_number":193,"context_line":"            body, v2fields.LcmOperationStateType.PROCESSING)"},{"line_number":194,"context_line":"        lcmocc.create(context)"}],"source_content_type":"text/x-python","patch_set":19,"id":"a8a94f09_ded21a61","line":191,"updated":"2023-03-02 08:33:43.000000000","message":"okay.","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33455,"name":"Hiromu Asahina","email":"hiromu.a5a@gmail.com","username":"h_asahina"},"change_message_id":"f46566542a8b4f84bb42a5284983a4c104209569","unresolved":true,"context_lines":[{"line_number":188,"context_line":"                        detail\u003d\"vnfcInstanceId(%s) does not exist.\""},{"line_number":189,"context_line":"                        % vnfc_mod[\u0027id\u0027])"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        lcmocc \u003d vnflcm_utils.new_lcmocc("},{"line_number":192,"context_line":"            id, v2fields.LcmOperationType.MODIFY_INFO,"},{"line_number":193,"context_line":"            body, v2fields.LcmOperationStateType.PROCESSING)"},{"line_number":194,"context_line":"        lcmocc.create(context)"}],"source_content_type":"text/x-python","patch_set":19,"id":"5c1aa38b_3f624dbf","line":191,"in_reply_to":"36fd9fb3_ba20e9d5","updated":"2023-03-02 13:09:26.000000000","message":"Oops, sorry. Please ignore. \n\nI was going to write this [1] comment here. \n[1] https://review.opendev.org/c/openstack/tacker/+/871211/comments/84273949_98bfb25d","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"487af42a695e69ea280059a8fd0d7452c950ebbe","unresolved":true,"context_lines":[{"line_number":188,"context_line":"                        detail\u003d\"vnfcInstanceId(%s) does not exist.\""},{"line_number":189,"context_line":"                        % vnfc_mod[\u0027id\u0027])"},{"line_number":190,"context_line":""},{"line_number":191,"context_line":"        lcmocc \u003d vnflcm_utils.new_lcmocc("},{"line_number":192,"context_line":"            id, v2fields.LcmOperationType.MODIFY_INFO,"},{"line_number":193,"context_line":"            body, v2fields.LcmOperationStateType.PROCESSING)"},{"line_number":194,"context_line":"        lcmocc.create(context)"}],"source_content_type":"text/x-python","patch_set":19,"id":"36fd9fb3_ba20e9d5","line":191,"in_reply_to":"a8a94f09_ded21a61","updated":"2023-03-02 10:56:22.000000000","message":"Um, do you want to write a comment here?","commit_id":"c44dec2a12bb31cde5fc4f635114a8dab8e8f276"}],"tacker/tests/functional/sol_kubernetes_v2/test_prom_auto_scale_heal.py":[{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"69b9e24786832d8e4a82b3b0be781bd9bf7679d6","unresolved":true,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        # Since auto heal takes 20 seconds to trigger,"},{"line_number":99,"context_line":"        # wait 23 seconds here."},{"line_number":100,"context_line":"        time.sleep(23)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # 6. LCM-Show-OpOccV2: Show-OpOcc"},{"line_number":103,"context_line":"        filter_expr \u003d {\u0027filter\u0027: f\u0027(eq,vnfInstanceId,{inst_id})\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"345d4495_2211673d","line":100,"range":{"start_line":100,"start_character":19,"end_line":100,"end_character":21},"updated":"2023-02-28 12:23:14.000000000","message":"Could you define it as a constant.","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"50760ae3f8a1aade64fc406284cc1466c662b4ca","unresolved":true,"context_lines":[{"line_number":97,"context_line":""},{"line_number":98,"context_line":"        # Since auto heal takes 20 seconds to trigger,"},{"line_number":99,"context_line":"        # wait 23 seconds here."},{"line_number":100,"context_line":"        time.sleep(23)"},{"line_number":101,"context_line":""},{"line_number":102,"context_line":"        # 6. LCM-Show-OpOccV2: Show-OpOcc"},{"line_number":103,"context_line":"        filter_expr \u003d {\u0027filter\u0027: f\u0027(eq,vnfInstanceId,{inst_id})\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"8cbeed26_8d81a9b9","line":100,"range":{"start_line":100,"start_character":19,"end_line":100,"end_character":21},"in_reply_to":"345d4495_2211673d","updated":"2023-03-01 02:39:32.000000000","message":"I defined a constant `WAIT_AUTO_HEAL_TIME`.","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"69b9e24786832d8e4a82b3b0be781bd9bf7679d6","unresolved":true,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        # Since auto heal takes 20 seconds to trigger,"},{"line_number":154,"context_line":"        # wait 23 seconds here."},{"line_number":155,"context_line":"        time.sleep(23)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # 10. LCM-Show-OpOccV2: Show-OpOcc"},{"line_number":158,"context_line":"        filter_expr \u003d {\u0027filter\u0027: f\u0027(eq,vnfInstanceId,{inst_id})\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"70fdca5e_f6da838e","line":155,"range":{"start_line":155,"start_character":19,"end_line":155,"end_character":21},"updated":"2023-02-28 12:23:14.000000000","message":"ditto","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"50760ae3f8a1aade64fc406284cc1466c662b4ca","unresolved":true,"context_lines":[{"line_number":152,"context_line":""},{"line_number":153,"context_line":"        # Since auto heal takes 20 seconds to trigger,"},{"line_number":154,"context_line":"        # wait 23 seconds here."},{"line_number":155,"context_line":"        time.sleep(23)"},{"line_number":156,"context_line":""},{"line_number":157,"context_line":"        # 10. LCM-Show-OpOccV2: Show-OpOcc"},{"line_number":158,"context_line":"        filter_expr \u003d {\u0027filter\u0027: f\u0027(eq,vnfInstanceId,{inst_id})\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"5a835612_1f46e9b5","line":155,"range":{"start_line":155,"start_character":19,"end_line":155,"end_character":21},"in_reply_to":"70fdca5e_f6da838e","updated":"2023-03-01 02:39:32.000000000","message":"I defined a constant `WAIT_AUTO_HEAL_TIME`.","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"69b9e24786832d8e4a82b3b0be781bd9bf7679d6","unresolved":true,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":202,"context_line":"        # update and terminate completion."},{"line_number":203,"context_line":"        time.sleep(3)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        # 12. LCM-Show-OpOccV2: Show OpOcc"},{"line_number":206,"context_line":"        resp, body \u003d self.show_lcmocc(lcmocc_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"e54e5a24_f03c6440","line":203,"range":{"start_line":203,"start_character":19,"end_line":203,"end_character":20},"updated":"2023-02-28 12:23:14.000000000","message":"ditto.\nAdditionally would like to know how did you decided 3 seconds as wait period?","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"50760ae3f8a1aade64fc406284cc1466c662b4ca","unresolved":true,"context_lines":[{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":202,"context_line":"        # update and terminate completion."},{"line_number":203,"context_line":"        time.sleep(3)"},{"line_number":204,"context_line":""},{"line_number":205,"context_line":"        # 12. LCM-Show-OpOccV2: Show OpOcc"},{"line_number":206,"context_line":"        resp, body \u003d self.show_lcmocc(lcmocc_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"d98c8e2b_ac0a9f8e","line":203,"range":{"start_line":203,"start_character":19,"end_line":203,"end_character":20},"in_reply_to":"e54e5a24_f03c6440","updated":"2023-03-01 02:39:32.000000000","message":"I defined a constant `WAIT_LCMOCC_UPDATE_TIME`.\nWait for 3 seconds, I refer to the code here:\nhttps://opendev.org/openstack/tacker/src/branch/master/tacker/tests/functional/sol_kubernetes_v2/test_vnflcm_basic.py#L230","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"69b9e24786832d8e4a82b3b0be781bd9bf7679d6","unresolved":true,"context_lines":[{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":267,"context_line":"        # update and scale completion."},{"line_number":268,"context_line":"        time.sleep(3)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        # 6. LCM-Show-OpOccV2: Show-OpOcc"},{"line_number":271,"context_line":"        filter_expr \u003d {\u0027filter\u0027: f\u0027(eq,vnfInstanceId,{inst_id})\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"eae701ea_968081e7","line":268,"updated":"2023-02-28 12:23:14.000000000","message":"ditto","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"50760ae3f8a1aade64fc406284cc1466c662b4ca","unresolved":true,"context_lines":[{"line_number":265,"context_line":""},{"line_number":266,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":267,"context_line":"        # update and scale completion."},{"line_number":268,"context_line":"        time.sleep(3)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"        # 6. LCM-Show-OpOccV2: Show-OpOcc"},{"line_number":271,"context_line":"        filter_expr \u003d {\u0027filter\u0027: f\u0027(eq,vnfInstanceId,{inst_id})\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"3f1cd78d_afb4db04","line":268,"in_reply_to":"eae701ea_968081e7","updated":"2023-03-01 02:39:32.000000000","message":"I defined a constant `WAIT_LCMOCC_UPDATE_TIME`.\nWait for 3 seconds, I refer to the code here:\nhttps://opendev.org/openstack/tacker/src/branch/master/tacker/tests/functional/sol_kubernetes_v2/test_vnflcm_basic.py#L230","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"69b9e24786832d8e4a82b3b0be781bd9bf7679d6","unresolved":true,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":299,"context_line":"        # update and scale completion."},{"line_number":300,"context_line":"        time.sleep(3)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        # 9. LCM-Show-OpOccV2: Show-OpOcc"},{"line_number":303,"context_line":"        filter_expr \u003d {\u0027filter\u0027: f\u0027(eq,vnfInstanceId,{inst_id})\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"352606cb_25943139","line":300,"range":{"start_line":300,"start_character":19,"end_line":300,"end_character":20},"updated":"2023-02-28 12:23:14.000000000","message":"ditto","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"50760ae3f8a1aade64fc406284cc1466c662b4ca","unresolved":true,"context_lines":[{"line_number":297,"context_line":""},{"line_number":298,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":299,"context_line":"        # update and scale completion."},{"line_number":300,"context_line":"        time.sleep(3)"},{"line_number":301,"context_line":""},{"line_number":302,"context_line":"        # 9. LCM-Show-OpOccV2: Show-OpOcc"},{"line_number":303,"context_line":"        filter_expr \u003d {\u0027filter\u0027: f\u0027(eq,vnfInstanceId,{inst_id})\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"f5eab68c_15d99836","line":300,"range":{"start_line":300,"start_character":19,"end_line":300,"end_character":20},"in_reply_to":"352606cb_25943139","updated":"2023-03-01 02:39:32.000000000","message":"I defined a constant `WAIT_LCMOCC_UPDATE_TIME`.\nWait for 3 seconds, I refer to the code here:\nhttps://opendev.org/openstack/tacker/src/branch/master/tacker/tests/functional/sol_kubernetes_v2/test_vnflcm_basic.py#L230","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"69b9e24786832d8e4a82b3b0be781bd9bf7679d6","unresolved":true,"context_lines":[{"line_number":332,"context_line":""},{"line_number":333,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":334,"context_line":"        # update and terminate completion."},{"line_number":335,"context_line":"        time.sleep(3)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        # 11. LCM-Show-OpOccV2: Show OpOcc"},{"line_number":338,"context_line":"        resp, body \u003d self.show_lcmocc(lcmocc_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"0ed1f7e7_3db532c1","line":335,"range":{"start_line":335,"start_character":19,"end_line":335,"end_character":20},"updated":"2023-02-28 12:23:14.000000000","message":"ditto","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"50760ae3f8a1aade64fc406284cc1466c662b4ca","unresolved":true,"context_lines":[{"line_number":332,"context_line":""},{"line_number":333,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":334,"context_line":"        # update and terminate completion."},{"line_number":335,"context_line":"        time.sleep(3)"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        # 11. LCM-Show-OpOccV2: Show OpOcc"},{"line_number":338,"context_line":"        resp, body \u003d self.show_lcmocc(lcmocc_id)"}],"source_content_type":"text/x-python","patch_set":16,"id":"dad97515_f9787f07","line":335,"range":{"start_line":335,"start_character":19,"end_line":335,"end_character":20},"in_reply_to":"0ed1f7e7_3db532c1","updated":"2023-03-01 02:39:32.000000000","message":"I defined a constant `WAIT_LCMOCC_UPDATE_TIME`.\nWait for 3 seconds, I refer to the code here:\nhttps://opendev.org/openstack/tacker/src/branch/master/tacker/tests/functional/sol_kubernetes_v2/test_vnflcm_basic.py#L230","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"}],"tacker/tests/functional/sol_v2/test_prom_auto_scale_heal.py":[{"author":{"_account_id":35476,"name":"taiki kimura","email":"taiki.kimura@ntt-at.co.jp","username":"tkimura"},"change_message_id":"f5c75339b55c25cc0ae355f4b5178406f7af2f1f","unresolved":true,"context_lines":[{"line_number":204,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":205,"context_line":"        # update and terminate completion."},{"line_number":206,"context_line":"        time.sleep(3)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # 13. Delete a VNF instance"},{"line_number":209,"context_line":"        resp, body \u003d self.delete_vnf_instance(inst_id)"},{"line_number":210,"context_line":"        self.assertEqual(204, resp.status_code)"}],"source_content_type":"text/x-python","patch_set":9,"id":"5657dbbf_b8d5a96a","line":207,"updated":"2023-02-22 00:42:24.000000000","message":"Isn\u0027t item 12(Show OpOcc) necessary?","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"9ee2cffe87aeabcd0bf4bf51d87089b9bd7768c1","unresolved":true,"context_lines":[{"line_number":204,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":205,"context_line":"        # update and terminate completion."},{"line_number":206,"context_line":"        time.sleep(3)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # 13. Delete a VNF instance"},{"line_number":209,"context_line":"        resp, body \u003d self.delete_vnf_instance(inst_id)"},{"line_number":210,"context_line":"        self.assertEqual(204, resp.status_code)"}],"source_content_type":"text/x-python","patch_set":9,"id":"e783bad5_7d556789","line":207,"in_reply_to":"5657dbbf_b8d5a96a","updated":"2023-02-22 08:07:42.000000000","message":"I fixed it in patchset 10.","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":35476,"name":"taiki kimura","email":"taiki.kimura@ntt-at.co.jp","username":"tkimura"},"change_message_id":"ecd9bcefdedb4aceb043749e66051eee2400c348","unresolved":false,"context_lines":[{"line_number":204,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":205,"context_line":"        # update and terminate completion."},{"line_number":206,"context_line":"        time.sleep(3)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # 13. Delete a VNF instance"},{"line_number":209,"context_line":"        resp, body \u003d self.delete_vnf_instance(inst_id)"},{"line_number":210,"context_line":"        self.assertEqual(204, resp.status_code)"}],"source_content_type":"text/x-python","patch_set":9,"id":"61a41d63_fdaaff8e","line":207,"in_reply_to":"e783bad5_7d556789","updated":"2023-02-24 00:21:39.000000000","message":"Done","commit_id":"9d61b0cf8e59204959d0fee7a8cc23e9bbcaeeed"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"69b9e24786832d8e4a82b3b0be781bd9bf7679d6","unresolved":true,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # Since auto heal takes 20 seconds to trigger,"},{"line_number":102,"context_line":"        # wait 23 seconds here."},{"line_number":103,"context_line":"        time.sleep(23)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # 6. Show-OpOcc"},{"line_number":106,"context_line":"        filter_expr \u003d {\u0027filter\u0027: f\u0027(eq,vnfInstanceId,{inst_id})\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"02a8b4ca_2a93029c","line":103,"updated":"2023-02-28 12:23:14.000000000","message":"ditto","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"50760ae3f8a1aade64fc406284cc1466c662b4ca","unresolved":true,"context_lines":[{"line_number":100,"context_line":""},{"line_number":101,"context_line":"        # Since auto heal takes 20 seconds to trigger,"},{"line_number":102,"context_line":"        # wait 23 seconds here."},{"line_number":103,"context_line":"        time.sleep(23)"},{"line_number":104,"context_line":""},{"line_number":105,"context_line":"        # 6. Show-OpOcc"},{"line_number":106,"context_line":"        filter_expr \u003d {\u0027filter\u0027: f\u0027(eq,vnfInstanceId,{inst_id})\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"5e69a3fa_5265f3dc","line":103,"in_reply_to":"02a8b4ca_2a93029c","updated":"2023-03-01 02:39:32.000000000","message":"I defined a constant `WAIT_AUTO_HEAL_TIME`.","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":32102,"name":"Manpreet Kaur","email":"kaurmanpreet2620@gmail.com","username":"manpreet"},"change_message_id":"69b9e24786832d8e4a82b3b0be781bd9bf7679d6","unresolved":true,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":273,"context_line":"        # update and scale completion."},{"line_number":274,"context_line":"        time.sleep(3)"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        # 6. Show-OpOcc"},{"line_number":277,"context_line":"        filter_expr \u003d {\u0027filter\u0027: f\u0027(eq,vnfInstanceId,{inst_id})\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"19077263_e5349997","line":274,"updated":"2023-02-28 12:23:14.000000000","message":"ditto","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"50760ae3f8a1aade64fc406284cc1466c662b4ca","unresolved":true,"context_lines":[{"line_number":271,"context_line":""},{"line_number":272,"context_line":"        # wait a bit because there is a bit time lag between lcmocc DB"},{"line_number":273,"context_line":"        # update and scale completion."},{"line_number":274,"context_line":"        time.sleep(3)"},{"line_number":275,"context_line":""},{"line_number":276,"context_line":"        # 6. Show-OpOcc"},{"line_number":277,"context_line":"        filter_expr \u003d {\u0027filter\u0027: f\u0027(eq,vnfInstanceId,{inst_id})\u0027}"}],"source_content_type":"text/x-python","patch_set":16,"id":"33c2591d_b2426cc1","line":274,"in_reply_to":"19077263_e5349997","updated":"2023-03-01 02:39:32.000000000","message":"I defined a constant `WAIT_LCMOCC_UPDATE_TIME`.\nWait for 3 seconds, I refer to the code here:\nhttps://opendev.org/openstack/tacker/src/branch/master/tacker/tests/functional/sol_kubernetes_v2/test_vnflcm_basic.py#L230","commit_id":"cfc3ca9299dcc0706a33289243685c0fae9fb4ed"}],"tacker/tests/unit/sol_refactored/conductor/test_prometheus_plugin.py":[{"author":{"_account_id":35476,"name":"taiki kimura","email":"taiki.kimura@ntt-at.co.jp","username":"tkimura"},"change_message_id":"f5c75339b55c25cc0ae355f4b5178406f7af2f1f","unresolved":true,"context_lines":[{"line_number":130,"context_line":"        pp_drv.PrometheusPluginDriver._instance \u003d None"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    @mock.patch.object(vnflcm_utils, \u0027scale\u0027)"},{"line_number":133,"context_line":"    def test_request_scale(self, mock_do_scale):"},{"line_number":134,"context_line":"        scale_req \u003d {"},{"line_number":135,"context_line":"            \u0027type\u0027: \u0027SCALE_OUT\u0027,"},{"line_number":136,"context_line":"            \u0027aspectId\u0027: \u0027vdu\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"1c4f91ca_c336b092","line":133,"range":{"start_line":133,"start_character":13,"end_line":133,"end_character":26},"updated":"2023-02-22 00:42:24.000000000","message":"The test target is \"trigger_scale\".\nI think the method name should be \"test_trigger_scale\".","commit_id":"3d16f76c2916c089288822e8e8b1fa71ba6dc6ef"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"9ee2cffe87aeabcd0bf4bf51d87089b9bd7768c1","unresolved":true,"context_lines":[{"line_number":130,"context_line":"        pp_drv.PrometheusPluginDriver._instance \u003d None"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    @mock.patch.object(vnflcm_utils, \u0027scale\u0027)"},{"line_number":133,"context_line":"    def test_request_scale(self, mock_do_scale):"},{"line_number":134,"context_line":"        scale_req \u003d {"},{"line_number":135,"context_line":"            \u0027type\u0027: \u0027SCALE_OUT\u0027,"},{"line_number":136,"context_line":"            \u0027aspectId\u0027: \u0027vdu\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"8d8afcca_d57c3525","line":133,"range":{"start_line":133,"start_character":13,"end_line":133,"end_character":26},"in_reply_to":"1c4f91ca_c336b092","updated":"2023-02-22 08:07:42.000000000","message":"I fixed it in patchset 10.","commit_id":"3d16f76c2916c089288822e8e8b1fa71ba6dc6ef"},{"author":{"_account_id":35476,"name":"taiki kimura","email":"taiki.kimura@ntt-at.co.jp","username":"tkimura"},"change_message_id":"ecd9bcefdedb4aceb043749e66051eee2400c348","unresolved":false,"context_lines":[{"line_number":130,"context_line":"        pp_drv.PrometheusPluginDriver._instance \u003d None"},{"line_number":131,"context_line":""},{"line_number":132,"context_line":"    @mock.patch.object(vnflcm_utils, \u0027scale\u0027)"},{"line_number":133,"context_line":"    def test_request_scale(self, mock_do_scale):"},{"line_number":134,"context_line":"        scale_req \u003d {"},{"line_number":135,"context_line":"            \u0027type\u0027: \u0027SCALE_OUT\u0027,"},{"line_number":136,"context_line":"            \u0027aspectId\u0027: \u0027vdu\u0027,"}],"source_content_type":"text/x-python","patch_set":8,"id":"81cdaf2e_be3f425a","line":133,"range":{"start_line":133,"start_character":13,"end_line":133,"end_character":26},"in_reply_to":"8d8afcca_d57c3525","updated":"2023-02-24 00:21:39.000000000","message":"Done","commit_id":"3d16f76c2916c089288822e8e8b1fa71ba6dc6ef"}]}
