)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"e0b87e037442e147e99437e0e13e766af2c98540","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Itsuro Oda \u003coda@valinux.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-01-25 00:12:03 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"support change external VNF connectivity task of v2 API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch implements change external VNF connectivity task"},{"line_number":10,"context_line":"defined in ETSI NFV-SOL003 v3.3.1 5.4.11."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"da8b581e_1960ffc0","line":7,"updated":"2022-01-25 09:59:02.000000000","message":"Could you please follow the guideline?\n\nhttps://wiki.openstack.org/wiki/GitCommitMessages#Summary_of_Git_commit_message_structure\n\n\u003e The first line should be limited to 50 characters and should not end with a period.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"c66096daca2ef214637256dc47e916af004cb7ea","unresolved":true,"context_lines":[{"line_number":4,"context_line":"Commit:     Itsuro Oda \u003coda@valinux.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-01-25 00:12:03 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"support change external VNF connectivity task of v2 API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch implements change external VNF connectivity task"},{"line_number":10,"context_line":"defined in ETSI NFV-SOL003 v3.3.1 5.4.11."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"fd28dd65_b45b8e21","line":7,"in_reply_to":"da8b581e_1960ffc0","updated":"2022-01-25 23:21:52.000000000","message":"OK, I will fix.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"a666d995ad265121e686d76eceaab3fe04a11afc","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Itsuro Oda \u003coda@valinux.co.jp\u003e"},{"line_number":5,"context_line":"CommitDate: 2022-01-25 00:12:03 +0000"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"support change external VNF connectivity task of v2 API"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"This patch implements change external VNF connectivity task"},{"line_number":10,"context_line":"defined in ETSI NFV-SOL003 v3.3.1 5.4.11."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"f2369780_4d42ee81","line":7,"in_reply_to":"fd28dd65_b45b8e21","updated":"2022-01-26 04:55:35.000000000","message":"Done","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"c66096daca2ef214637256dc47e916af004cb7ea","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"c776085c_f1893996","updated":"2022-01-25 23:21:52.000000000","message":"Thank you for the review.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"e0b87e037442e147e99437e0e13e766af2c98540","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"31938c82_495fd843","updated":"2022-01-25 09:59:02.000000000","message":"Thanks for your work. I have some comments, so could you check that?","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"2c8e48c38414d63b13cb078bbce44d7e87370974","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"ec9a21b6_2ad93276","updated":"2022-02-01 23:30:33.000000000","message":"Thank you for the review.","commit_id":"6bcec390675c83d0988e721b1f0ca6b0310ad912"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"c210981bcea0c0108b7faf3e7955c8ac58239706","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"0027b445_3254629c","updated":"2022-02-03 00:26:29.000000000","message":"Thank you for the review.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"3629ca1e4cf8e2e5f15e5892381c1eaea61e911a","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"8c5c83de_91e552bd","updated":"2022-02-02 22:54:33.000000000","message":"Thank you for the review.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"2024c26726684866f05bdf9630b2322f51a7e939","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9ccc6305_7cd61638","updated":"2022-02-02 23:59:29.000000000","message":"Thank you for the review.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":32581,"name":"Hirofumi Noguchi","email":"hirofumi.noguchi.rs@hco.ntt.co.jp","username":"hirofumi-noguchi"},"change_message_id":"83b39713be363ffa0ab459a323902e6219aef6cb","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"0ca6367b_5c5113ce","updated":"2022-02-02 04:00:34.000000000","message":"Thank you for your work. I have a comment.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"9b74a6eec66d11fc631a3a32fbfcb897ea940ee6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"d8aad9c2_c05bfd09","updated":"2022-02-02 07:10:04.000000000","message":"Thanks for your patch, please kindly find my comment.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"bd6833d38dbd9e46655e3d1a1403bc3893fcba70","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"42d1176c_58ebb2c0","updated":"2022-02-07 23:12:00.000000000","message":"Thank you for the review.","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"6f7d9e783cdacad926adf1de098bf493c7a543d3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":7,"id":"9bcc1713_6c09f2ea","updated":"2022-02-03 22:42:10.000000000","message":"Thank you for the review.","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"8bf2c33c6ba94962452a03ce027ab058947940d7","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":8,"id":"a8fd6379_6aad5c1f","updated":"2022-02-07 23:28:09.000000000","message":"patch set 8: rollback is supported.","commit_id":"b2e2c1ef1bf1447065ab6411b038775014e7885a"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"a5cac70c0f122d3d86550a8858533eeaa19be134","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":9,"id":"9682c7cb_3d42c862","updated":"2022-02-10 04:36:17.000000000","message":"patch set 9: rebase only (against bp/modify patch set 9)","commit_id":"cafcde24352ca103d00685b7a8646c6997d022af"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"5e60c7c998aa63ecaa7b9e1617e1d8b87a925100","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"becfa4f0_1bc1dcb3","updated":"2022-02-17 01:39:38.000000000","message":"Thank you for the review.","commit_id":"959406a7ea04ccfad1c7c43090eeb72a974242db"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"2c5fa9867f320049d2f99162a172bfa80c59fb17","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"c8b81d91_93982b20","updated":"2022-02-18 02:03:20.000000000","message":"Thank you for the review.","commit_id":"959406a7ea04ccfad1c7c43090eeb72a974242db"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"5c5cd183281740d558042811865db62f1b27bfb3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":11,"id":"4bae7777_7e0fd568","updated":"2022-02-21 01:22:46.000000000","message":"Thank you for the review.","commit_id":"46440fbdd826a7d4343dba8c3045068e4319cf86"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"aaa791019a12c1a74f0d388e2e3f1da9b04a61f6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":13,"id":"90fb0400_718c5314","updated":"2022-02-21 23:04:22.000000000","message":"Thank you for the review.","commit_id":"a63c7379bd835fc7cb13629627fe1a7d95effab2"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"9974f37b594f21bdea210d7b43e326180fab2f24","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":15,"id":"20ea2a50_298021e7","updated":"2022-02-23 22:25:47.000000000","message":"Thank you for the review.","commit_id":"d18864b2e2bb201778783c85a34e3adb7764cf8a"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"ab299d234f93f49e55bc3d1d1d674e07d309f70b","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":16,"id":"fd1c454a_a2a00c2f","updated":"2022-02-25 00:05:28.000000000","message":"Thank you for the comment.","commit_id":"d6160fcc764be3e6025b79c322892dcaa7681346"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"3cca4d40ca13062c4f32957d2291ec7c2421be93","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":18,"id":"a4c6f571_04a9880a","updated":"2022-02-28 04:40:23.000000000","message":"Thank you for the review.","commit_id":"f402c5cd7ead772e93089f6f24734c1d4acff4e3"},{"author":{"_account_id":32581,"name":"Hirofumi Noguchi","email":"hirofumi.noguchi.rs@hco.ntt.co.jp","username":"hirofumi-noguchi"},"change_message_id":"0b97d71855beab0f8484c9a1c57f82eb40893e11","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"84edb6de_644b2498","updated":"2022-02-28 07:37:14.000000000","message":"Thank you for excellent work.","commit_id":"fbbbf3f40fba78ca98e3e947daf352e8c6e2e3fe"},{"author":{"_account_id":31668},"change_message_id":"a85a723c20d2ad3cbe0c7bf6e21c1a21a98932c1","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":19,"id":"e206d299_be52fdf8","updated":"2022-02-28 04:57:05.000000000","message":"Thanks. I will add +1 after Zuul adds +1.","commit_id":"fbbbf3f40fba78ca98e3e947daf352e8c6e2e3fe"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"75f32ca4c4f36fc75004ccd6e170e8799612627e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"a05364e4_85ee854f","updated":"2022-03-01 06:55:04.000000000","message":"LGTM.","commit_id":"83e4a8d5266ba1557e7c2f8b72fe9e59cd264a2c"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"3225ced78660e23cb23937460a23df707e9550ab","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":20,"id":"3cd50af0_0c0f246b","updated":"2022-03-01 06:56:25.000000000","message":"sorry, when it becomes Zuul+1, I will set CR+2 again.","commit_id":"83e4a8d5266ba1557e7c2f8b72fe9e59cd264a2c"}],"tacker/sol_refactored/common/lcm_op_occ_utils.py":[{"author":{"_account_id":31668},"change_message_id":"4ada9685363735b1785e7e974ab043d3a09348de","unresolved":true,"context_lines":[{"line_number":458,"context_line":"                chg_ext_conn.append(ext_vl)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"        if chg_ext_conn:"},{"line_number":461,"context_line":"            lcmocc.changedExtConnectivity \u003d chg_ext_conn"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"def get_grant_req_and_grant(context, lcmocc):"}],"source_content_type":"text/x-python","patch_set":15,"id":"7e136273_4b8648e5","line":461,"updated":"2022-02-22 09:09:23.000000000","message":"Is it okay if updates other than extLinkPorts (changes such as resourceProviderId and extCps) are not considered?","commit_id":"d18864b2e2bb201778783c85a34e3adb7764cf8a"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"3cca4d40ca13062c4f32957d2291ec7c2421be93","unresolved":true,"context_lines":[{"line_number":458,"context_line":"                chg_ext_conn.append(ext_vl)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"        if chg_ext_conn:"},{"line_number":461,"context_line":"            lcmocc.changedExtConnectivity \u003d chg_ext_conn"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"def get_grant_req_and_grant(context, lcmocc):"}],"source_content_type":"text/x-python","patch_set":15,"id":"3202a6ac_c71cdf99","line":461,"in_reply_to":"2d560fba_0e7ad215","updated":"2022-02-28 04:40:23.000000000","message":"I see. I will add a comment.","commit_id":"d18864b2e2bb201778783c85a34e3adb7764cf8a"},{"author":{"_account_id":31668},"change_message_id":"a85a723c20d2ad3cbe0c7bf6e21c1a21a98932c1","unresolved":false,"context_lines":[{"line_number":458,"context_line":"                chg_ext_conn.append(ext_vl)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"        if chg_ext_conn:"},{"line_number":461,"context_line":"            lcmocc.changedExtConnectivity \u003d chg_ext_conn"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"def get_grant_req_and_grant(context, lcmocc):"}],"source_content_type":"text/x-python","patch_set":15,"id":"68f2002f_64bf54fd","line":461,"in_reply_to":"3202a6ac_c71cdf99","updated":"2022-02-28 04:57:05.000000000","message":"Done","commit_id":"d18864b2e2bb201778783c85a34e3adb7764cf8a"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"ab299d234f93f49e55bc3d1d1d674e07d309f70b","unresolved":true,"context_lines":[{"line_number":458,"context_line":"                chg_ext_conn.append(ext_vl)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"        if chg_ext_conn:"},{"line_number":461,"context_line":"            lcmocc.changedExtConnectivity \u003d chg_ext_conn"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"def get_grant_req_and_grant(context, lcmocc):"}],"source_content_type":"text/x-python","patch_set":15,"id":"970a2f3a_c89f8ece","line":461,"in_reply_to":"58d9c404_46dacb57","updated":"2022-02-25 00:05:28.000000000","message":"I understand ip address change is done without port re-creation (thus port id is not changed).\nI will add check for currentVnfExtCpData.","commit_id":"d18864b2e2bb201778783c85a34e3adb7764cf8a"},{"author":{"_account_id":31668},"change_message_id":"e058bbd215fc9cfc0a07176ec0fe0b4760e1f63b","unresolved":true,"context_lines":[{"line_number":458,"context_line":"                chg_ext_conn.append(ext_vl)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"        if chg_ext_conn:"},{"line_number":461,"context_line":"            lcmocc.changedExtConnectivity \u003d chg_ext_conn"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"def get_grant_req_and_grant(context, lcmocc):"}],"source_content_type":"text/x-python","patch_set":15,"id":"58d9c404_46dacb57","line":461,"in_reply_to":"5c3a3a0b_3a7e9cbe","updated":"2022-02-24 08:10:51.000000000","message":"Thank you for your reply.\nI can understand that the change in resourceProviderId is not relevant.\nBut I think extCps is related to the currentVnfExtCpData of ExtVirtualLinkInfo.\nSOL003 5.5.3.2 has the following description.\n-----\nThis attribute reflects the current configuration information that has resulted from merging into this attribute the \"VnfExtCpData\" information which was passed as part of the \"ExtVirtualLinkData\" structure in the input of the most recent VNF LCM operation such as \"InstantiateVnfRequest\", \"ChangeExtVnfConnectivityRequest\", \"ChangeVnfFlavourRequest\" or \"ChangeCurrentVnfPkgRequest\", or in the Grant response.\n-----\n\nWe need to sort out the cases of setting changedExtConnectivity.","commit_id":"d18864b2e2bb201778783c85a34e3adb7764cf8a"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"9974f37b594f21bdea210d7b43e326180fab2f24","unresolved":true,"context_lines":[{"line_number":458,"context_line":"                chg_ext_conn.append(ext_vl)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"        if chg_ext_conn:"},{"line_number":461,"context_line":"            lcmocc.changedExtConnectivity \u003d chg_ext_conn"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"def get_grant_req_and_grant(context, lcmocc):"}],"source_content_type":"text/x-python","patch_set":15,"id":"5c3a3a0b_3a7e9cbe","line":461,"in_reply_to":"7e136273_4b8648e5","updated":"2022-02-23 22:25:47.000000000","message":"changedExtConnectivity is about change of ExtVirtualLinkInfo and it does not include resourceProviderId and extCps. I think it is shown as port change if those attributes of ExtVirtualLinkData changed.","commit_id":"d18864b2e2bb201778783c85a34e3adb7764cf8a"},{"author":{"_account_id":31668},"change_message_id":"51ac68086fc034680b8a66b14b13f2b62b909694","unresolved":true,"context_lines":[{"line_number":458,"context_line":"                chg_ext_conn.append(ext_vl)"},{"line_number":459,"context_line":""},{"line_number":460,"context_line":"        if chg_ext_conn:"},{"line_number":461,"context_line":"            lcmocc.changedExtConnectivity \u003d chg_ext_conn"},{"line_number":462,"context_line":""},{"line_number":463,"context_line":""},{"line_number":464,"context_line":"def get_grant_req_and_grant(context, lcmocc):"}],"source_content_type":"text/x-python","patch_set":15,"id":"2d560fba_0e7ad215","line":461,"in_reply_to":"970a2f3a_c89f8ece","updated":"2022-02-28 03:51:24.000000000","message":"Thank you for fixing.\nWould you please add a comment to the process related to extLink Ports so that the following policy becomes clear?\n-----\nFor those given outside the heat, the resourceId may be changed without changing the id, so it is a policy to set changedExtConnectivity when there is a change in \"id\" or \"resourceHandle.resourceId\".\n-----","commit_id":"d18864b2e2bb201778783c85a34e3adb7764cf8a"}],"tacker/sol_refactored/conductor/conductor_v2.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"58b3813e60f4ccc9b6b5e4dbc7ac7ac6979563a8","unresolved":true,"context_lines":[{"line_number":219,"context_line":"                # NOTE: Basically inst is not changed. But there is a case"},{"line_number":220,"context_line":"                # that VIM resources may be changed while rollback (only"},{"line_number":221,"context_line":"                # change_ext_conn_rollback at the moment)."},{"line_number":222,"context_line":"                inst.update(context)"},{"line_number":223,"context_line":"                # grant_req and grant are not necessary any more."},{"line_number":224,"context_line":"                if grant_req is not None:"},{"line_number":225,"context_line":"                    grant_req.delete(context)"}],"source_content_type":"text/x-python","patch_set":11,"id":"8614fa04_fed557ab","line":222,"updated":"2022-02-18 10:12:42.000000000","message":"In order to prevent unexpected updating of \"inst\", I think there is a way to limit the update to change_ext_conn.\nExamples of unexpected updating of \"inst\" include bug fixes and CNF development by developers other than you.\nWhat do you think?","commit_id":"46440fbdd826a7d4343dba8c3045068e4319cf86"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"eafea371a6b0941462e7b8fcc6adb29aaae2333e","unresolved":false,"context_lines":[{"line_number":219,"context_line":"                # NOTE: Basically inst is not changed. But there is a case"},{"line_number":220,"context_line":"                # that VIM resources may be changed while rollback (only"},{"line_number":221,"context_line":"                # change_ext_conn_rollback at the moment)."},{"line_number":222,"context_line":"                inst.update(context)"},{"line_number":223,"context_line":"                # grant_req and grant are not necessary any more."},{"line_number":224,"context_line":"                if grant_req is not None:"},{"line_number":225,"context_line":"                    grant_req.delete(context)"}],"source_content_type":"text/x-python","patch_set":11,"id":"bd1e3eb1_b75cc79a","line":222,"in_reply_to":"41a0641f_5ed674d8","updated":"2022-02-28 08:05:18.000000000","message":"Done","commit_id":"46440fbdd826a7d4343dba8c3045068e4319cf86"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"5c5cd183281740d558042811865db62f1b27bfb3","unresolved":true,"context_lines":[{"line_number":219,"context_line":"                # NOTE: Basically inst is not changed. But there is a case"},{"line_number":220,"context_line":"                # that VIM resources may be changed while rollback (only"},{"line_number":221,"context_line":"                # change_ext_conn_rollback at the moment)."},{"line_number":222,"context_line":"                inst.update(context)"},{"line_number":223,"context_line":"                # grant_req and grant are not necessary any more."},{"line_number":224,"context_line":"                if grant_req is not None:"},{"line_number":225,"context_line":"                    grant_req.delete(context)"}],"source_content_type":"text/x-python","patch_set":11,"id":"41a0641f_5ed674d8","line":222,"in_reply_to":"8614fa04_fed557ab","updated":"2022-02-21 01:22:46.000000000","message":"I think it is safer to limit inst update to change_ext_conn only. I will add a condition.","commit_id":"46440fbdd826a7d4343dba8c3045068e4319cf86"}],"tacker/sol_refactored/conductor/vnflcm_driver_v2.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"1ae201fa640153b88f2c23d6a797d8d953057258","unresolved":true,"context_lines":[{"line_number":720,"context_line":"                    # if there is not vnfExtCpId, it means extLinkPorts of"},{"line_number":721,"context_line":"                    # extVirtualLinks was specified."},{"line_number":722,"context_line":"                    res_def \u003d objects.ResourceDefinitionV1("},{"line_number":723,"context_line":"                        id\u003d\"{}-{}\".format(cp_info.cpdId, old_vdu_res_id),"},{"line_number":724,"context_line":"                        resourceTemplateId\u003dcp_info.cpdId,"},{"line_number":725,"context_line":"                        type\u003d\u0027LINKPORT\u0027)"},{"line_number":726,"context_line":"                    rm_reses.append(res_def)"}],"source_content_type":"text/x-python","patch_set":5,"id":"9c6ae851_f79c82ae","line":723,"range":{"start_line":723,"start_character":27,"end_line":723,"end_character":71},"updated":"2022-02-01 05:33:26.000000000","message":"I think it\u0027s better to define \"_make_combination_id\" as well as openstack.py.\n---\nhttps://opendev.org/openstack/tacker/src/branch/master/tacker/sol_refactored/infra_drivers/openstack/openstack.py#L64","commit_id":"6bcec390675c83d0988e721b1f0ca6b0310ad912"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"0db5f23f5c41660cc32727d3705cbb71447e62b8","unresolved":false,"context_lines":[{"line_number":720,"context_line":"                    # if there is not vnfExtCpId, it means extLinkPorts of"},{"line_number":721,"context_line":"                    # extVirtualLinks was specified."},{"line_number":722,"context_line":"                    res_def \u003d objects.ResourceDefinitionV1("},{"line_number":723,"context_line":"                        id\u003d\"{}-{}\".format(cp_info.cpdId, old_vdu_res_id),"},{"line_number":724,"context_line":"                        resourceTemplateId\u003dcp_info.cpdId,"},{"line_number":725,"context_line":"                        type\u003d\u0027LINKPORT\u0027)"},{"line_number":726,"context_line":"                    rm_reses.append(res_def)"}],"source_content_type":"text/x-python","patch_set":5,"id":"2101fda1_18223bd4","line":723,"range":{"start_line":723,"start_character":27,"end_line":723,"end_character":71},"in_reply_to":"936ef83a_29058c16","updated":"2022-02-02 00:47:15.000000000","message":"Done","commit_id":"6bcec390675c83d0988e721b1f0ca6b0310ad912"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"2c8e48c38414d63b13cb078bbce44d7e87370974","unresolved":true,"context_lines":[{"line_number":720,"context_line":"                    # if there is not vnfExtCpId, it means extLinkPorts of"},{"line_number":721,"context_line":"                    # extVirtualLinks was specified."},{"line_number":722,"context_line":"                    res_def \u003d objects.ResourceDefinitionV1("},{"line_number":723,"context_line":"                        id\u003d\"{}-{}\".format(cp_info.cpdId, old_vdu_res_id),"},{"line_number":724,"context_line":"                        resourceTemplateId\u003dcp_info.cpdId,"},{"line_number":725,"context_line":"                        type\u003d\u0027LINKPORT\u0027)"},{"line_number":726,"context_line":"                    rm_reses.append(res_def)"}],"source_content_type":"text/x-python","patch_set":5,"id":"936ef83a_29058c16","line":723,"range":{"start_line":723,"start_character":27,"end_line":723,"end_character":71},"in_reply_to":"9c6ae851_f79c82ae","updated":"2022-02-01 23:30:33.000000000","message":"I see. I will fix.","commit_id":"6bcec390675c83d0988e721b1f0ca6b0310ad912"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"1ae201fa640153b88f2c23d6a797d8d953057258","unresolved":true,"context_lines":[{"line_number":729,"context_line":"                if cp_info.cpdId not in link_ports:"},{"line_number":730,"context_line":"                    add_reses.append("},{"line_number":731,"context_line":"                        objects.ResourceDefinitionV1("},{"line_number":732,"context_line":"                            id\u003d\"{}-{}\".format(cp_info.cpdId, new_vdu_res_id),"},{"line_number":733,"context_line":"                            resourceTemplateId\u003dcp_info.cpdId,"},{"line_number":734,"context_line":"                            type\u003d\u0027LINKPORT\u0027"},{"line_number":735,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"77daf871_3df20ccf","line":732,"range":{"start_line":732,"start_character":31,"end_line":732,"end_character":76},"updated":"2022-02-01 05:33:26.000000000","message":"ditto","commit_id":"6bcec390675c83d0988e721b1f0ca6b0310ad912"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"0db5f23f5c41660cc32727d3705cbb71447e62b8","unresolved":false,"context_lines":[{"line_number":729,"context_line":"                if cp_info.cpdId not in link_ports:"},{"line_number":730,"context_line":"                    add_reses.append("},{"line_number":731,"context_line":"                        objects.ResourceDefinitionV1("},{"line_number":732,"context_line":"                            id\u003d\"{}-{}\".format(cp_info.cpdId, new_vdu_res_id),"},{"line_number":733,"context_line":"                            resourceTemplateId\u003dcp_info.cpdId,"},{"line_number":734,"context_line":"                            type\u003d\u0027LINKPORT\u0027"},{"line_number":735,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"4bfa2a35_11474392","line":732,"range":{"start_line":732,"start_character":31,"end_line":732,"end_character":76},"in_reply_to":"4efb1477_53023f32","updated":"2022-02-02 00:47:15.000000000","message":"Done","commit_id":"6bcec390675c83d0988e721b1f0ca6b0310ad912"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"2c8e48c38414d63b13cb078bbce44d7e87370974","unresolved":true,"context_lines":[{"line_number":729,"context_line":"                if cp_info.cpdId not in link_ports:"},{"line_number":730,"context_line":"                    add_reses.append("},{"line_number":731,"context_line":"                        objects.ResourceDefinitionV1("},{"line_number":732,"context_line":"                            id\u003d\"{}-{}\".format(cp_info.cpdId, new_vdu_res_id),"},{"line_number":733,"context_line":"                            resourceTemplateId\u003dcp_info.cpdId,"},{"line_number":734,"context_line":"                            type\u003d\u0027LINKPORT\u0027"},{"line_number":735,"context_line":"                        )"}],"source_content_type":"text/x-python","patch_set":5,"id":"4efb1477_53023f32","line":732,"range":{"start_line":732,"start_character":31,"end_line":732,"end_character":76},"in_reply_to":"77daf871_3df20ccf","updated":"2022-02-01 23:30:33.000000000","message":"ditto","commit_id":"6bcec390675c83d0988e721b1f0ca6b0310ad912"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"9b74a6eec66d11fc631a3a32fbfcb897ea940ee6","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"4b67d7d0_959df2a9","line":775,"updated":"2022-02-02 07:10:04.000000000","message":"Does the lack of `change_ext_conn_rollback` method mean that change_ext_conn does not need to support rollback?\n\nThe rollback spec [1] says, so it seems to be contradictory:\n```\nLCM operations that can perform Rollback operation are Instantiation, Scale-out, Modify, and ChangeExternalConnectivity.\n```\n[1] https://specs.openstack.org/openstack/tacker-specs/specs/yoga/support-nfv-solv3-error-handling.html#flow-of-rollback-operation\n\nIf you want to implement it in a different patch, it is better to add TODO comment it to code and commit message.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"c210981bcea0c0108b7faf3e7955c8ac58239706","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"ab14f520_795ee4ba","line":775,"in_reply_to":"4b67d7d0_959df2a9","updated":"2022-02-03 00:26:29.000000000","message":"rollback of change_ext_conn is still under discussion. I will add comment and commit message.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"75f32ca4c4f36fc75004ccd6e170e8799612627e","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":6,"id":"9c56590d_84f2116c","line":775,"in_reply_to":"6022a4ed_3d43aefc","updated":"2022-03-01 06:55:04.000000000","message":"Ack","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"bf838abc96f3a1b42e6edb4265a2adf7c8455eda","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"fb105189_124425d9","line":775,"in_reply_to":"ab14f520_795ee4ba","updated":"2022-02-03 00:38:54.000000000","message":"\u003e I will add comment and commit message.\nchanged commit message. not add to code.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"eb6b475de406783e334f2beb3a6edb8aa5e76009","unresolved":true,"context_lines":[],"source_content_type":"","patch_set":6,"id":"6022a4ed_3d43aefc","line":775,"in_reply_to":"fb105189_124425d9","updated":"2022-02-07 23:28:54.000000000","message":"rollback is supported in patch set 8. please check.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":31668},"change_message_id":"37c58250f2956bc544aae5041019ec25e33e61c9","unresolved":true,"context_lines":[{"line_number":821,"context_line":"        vim_info \u003d inst_utils.select_vim_info(inst.vimConnectionInfo)"},{"line_number":822,"context_line":"        if vim_info.vimType \u003d\u003d \u0027ETSINFV.OPENSTACK_KEYSTONE.V_3\u0027:"},{"line_number":823,"context_line":"            driver \u003d openstack.Openstack()"},{"line_number":824,"context_line":"            driver.change_ext_conn_rollback(req, inst, grant_req, grant, vnfd)"},{"line_number":825,"context_line":"        else:"},{"line_number":826,"context_line":"            # only support openstack at the moment"},{"line_number":827,"context_line":"            raise sol_ex.SolException(sol_detail\u003d\u0027not support vim type\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"581e6a1c_7122488f","line":824,"updated":"2022-02-21 09:24:36.000000000","message":"There doesn\u0027t seem to be a change_ext_conn_rollback definition in \"openstack.Openstack\".","commit_id":"5263ecb86663ece4bb1b32fea5191232eec4a809"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"aaa791019a12c1a74f0d388e2e3f1da9b04a61f6","unresolved":true,"context_lines":[{"line_number":821,"context_line":"        vim_info \u003d inst_utils.select_vim_info(inst.vimConnectionInfo)"},{"line_number":822,"context_line":"        if vim_info.vimType \u003d\u003d \u0027ETSINFV.OPENSTACK_KEYSTONE.V_3\u0027:"},{"line_number":823,"context_line":"            driver \u003d openstack.Openstack()"},{"line_number":824,"context_line":"            driver.change_ext_conn_rollback(req, inst, grant_req, grant, vnfd)"},{"line_number":825,"context_line":"        else:"},{"line_number":826,"context_line":"            # only support openstack at the moment"},{"line_number":827,"context_line":"            raise sol_ex.SolException(sol_detail\u003d\u0027not support vim type\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"fa9be61a_bb38de8d","line":824,"in_reply_to":"581e6a1c_7122488f","updated":"2022-02-21 23:04:22.000000000","message":"Thank you for very important indication. It seems I made mistake when making patch set 8 (rollback support).","commit_id":"5263ecb86663ece4bb1b32fea5191232eec4a809"},{"author":{"_account_id":31668},"change_message_id":"4ada9685363735b1785e7e974ab043d3a09348de","unresolved":false,"context_lines":[{"line_number":821,"context_line":"        vim_info \u003d inst_utils.select_vim_info(inst.vimConnectionInfo)"},{"line_number":822,"context_line":"        if vim_info.vimType \u003d\u003d \u0027ETSINFV.OPENSTACK_KEYSTONE.V_3\u0027:"},{"line_number":823,"context_line":"            driver \u003d openstack.Openstack()"},{"line_number":824,"context_line":"            driver.change_ext_conn_rollback(req, inst, grant_req, grant, vnfd)"},{"line_number":825,"context_line":"        else:"},{"line_number":826,"context_line":"            # only support openstack at the moment"},{"line_number":827,"context_line":"            raise sol_ex.SolException(sol_detail\u003d\u0027not support vim type\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"b89b59ac_dcf8736d","line":824,"in_reply_to":"fa9be61a_bb38de8d","updated":"2022-02-22 09:09:23.000000000","message":"Done","commit_id":"5263ecb86663ece4bb1b32fea5191232eec4a809"}],"tacker/sol_refactored/controller/vnflcm_v2.py":[{"author":{"_account_id":32581,"name":"Hirofumi Noguchi","email":"hirofumi.noguchi.rs@hco.ntt.co.jp","username":"hirofumi-noguchi"},"change_message_id":"83b39713be363ffa0ab459a323902e6219aef6cb","unresolved":true,"context_lines":[{"line_number":307,"context_line":"            raise sol_ex.VnfInstanceIsNotInstantiated(inst_id\u003did)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        lcmocc_utils.check_lcmocc_in_progress(context, id)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        lcmocc \u003d self._new_lcmocc("},{"line_number":312,"context_line":"            id, v2fields.LcmOperationType.CHANGE_EXT_CONN, body)"},{"line_number":313,"context_line":"        lcmocc.create(context)"}],"source_content_type":"text/x-python","patch_set":6,"id":"a3a9deca_aaa3d652","line":310,"updated":"2022-02-02 04:00:34.000000000","message":"Does not need to check whether cpdId or cpConfig key in the request exists in the base HOT of vnfinstance?\n\nIn the case of Instantiation, the unmatch of request parameters and base HOT causes error because the parameter in base HOT must be replaced by request parameters.\n\nOn the other hand, according to DefaultUserData::change_ext_conn, when they do not exist in the HOT, no CP will be changed and it does not cause error.\nThe operator may not be aware of the erroneous operation.\n\nPlease let me hear your opinion.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":32581,"name":"Hirofumi Noguchi","email":"hirofumi.noguchi.rs@hco.ntt.co.jp","username":"hirofumi-noguchi"},"change_message_id":"e20afa67e7a2400f981d24969f06abb28550b84f","unresolved":false,"context_lines":[{"line_number":307,"context_line":"            raise sol_ex.VnfInstanceIsNotInstantiated(inst_id\u003did)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        lcmocc_utils.check_lcmocc_in_progress(context, id)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        lcmocc \u003d self._new_lcmocc("},{"line_number":312,"context_line":"            id, v2fields.LcmOperationType.CHANGE_EXT_CONN, body)"},{"line_number":313,"context_line":"        lcmocc.create(context)"}],"source_content_type":"text/x-python","patch_set":6,"id":"4ad7b262_1fd0f470","line":310,"in_reply_to":"21a6fae2_80255ba1","updated":"2022-02-03 06:34:53.000000000","message":"What I meant was when there was an unmatch between the baseHOT and the request parameter.\nWhen cpdId exists only in baseHOT, error occurs in instantiation, but does not occur in change_ext_conn.\nWhen cpdId exists only in the request parameter, error does not occurs both  instantiation and change_ext_conn.\n\nIf Tacker returns errors for former case, the operator may be aware of the wrong cpdId.\n\nHowever, my proposal is effective only when the wrong cpdId is specified instead of the required cpdId. Also, when both required cpdId and wrong cpdId are specified, my proposal causes an error.\nTherefore, I withdraw the comment.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"3629ca1e4cf8e2e5f15e5892381c1eaea61e911a","unresolved":true,"context_lines":[{"line_number":307,"context_line":"            raise sol_ex.VnfInstanceIsNotInstantiated(inst_id\u003did)"},{"line_number":308,"context_line":""},{"line_number":309,"context_line":"        lcmocc_utils.check_lcmocc_in_progress(context, id)"},{"line_number":310,"context_line":""},{"line_number":311,"context_line":"        lcmocc \u003d self._new_lcmocc("},{"line_number":312,"context_line":"            id, v2fields.LcmOperationType.CHANGE_EXT_CONN, body)"},{"line_number":313,"context_line":"        lcmocc.create(context)"}],"source_content_type":"text/x-python","patch_set":6,"id":"21a6fae2_80255ba1","line":310,"in_reply_to":"a3a9deca_aaa3d652","updated":"2022-02-02 22:54:33.000000000","message":"I think the situation of Instantiation is same as change_ext_conn.\nIn the case of Instantiation, if there is a cpdId which is not defined in VNFD, error does not occur under current implementation.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"}],"tacker/sol_refactored/infra_drivers/openstack/openstack.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"e0b87e037442e147e99437e0e13e766af2c98540","unresolved":true,"context_lines":[{"line_number":195,"context_line":"        # should be same as before scale API started."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def change_ext_conn(self, req, inst, grant_req, grant, vnfd):"},{"line_number":198,"context_line":"        vim_info \u003d inst_utils.select_vim_info(inst.vimConnectionInfo)"},{"line_number":199,"context_line":"        heat_client \u003d heat_utils.HeatClient(vim_info)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        # make HOT"},{"line_number":202,"context_line":"        fields \u003d self._make_hot(req, inst, grant_req, grant, vnfd)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        LOG.debug(\"stack fields: %s\", fields)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        stack_name \u003d fields.pop(\u0027stack_name\u0027)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # update stack"},{"line_number":209,"context_line":"        fields \u003d self._update_nfv_dict(heat_client, stack_name, fields)"},{"line_number":210,"context_line":"        heat_client.update_stack(stack_name, fields)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        # get stack resource"},{"line_number":213,"context_line":"        heat_reses \u003d heat_client.get_resources(stack_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"941df474_fa64d01f","line":210,"range":{"start_line":198,"start_character":8,"end_line":210,"end_character":52},"updated":"2022-01-25 09:59:02.000000000","message":"I don\u0027t think it will affect the processing, but how about defining the processing as follows according to \"def instantiate\"?\n```\n        # make HOT\n        fields \u003d self._make_hot(req, inst, grant_req, grant, vnfd)\n\n        LOG.debug(\"stack fields: %s\", fields)\n\n        stack_name \u003d fields[\u0027stack_name\u0027]\n\n        # update stack\n        vim_info \u003d inst_utils.select_vim_info(inst.vimConnectionInfo)\n        heat_client \u003d heat_utils.HeatClient(vim_info)\n        fields \u003d self._update_nfv_dict(heat_client, stack_name, fields)\n        heat_client.update_stack(stack_name, fields)\n```","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"a666d995ad265121e686d76eceaab3fe04a11afc","unresolved":false,"context_lines":[{"line_number":195,"context_line":"        # should be same as before scale API started."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def change_ext_conn(self, req, inst, grant_req, grant, vnfd):"},{"line_number":198,"context_line":"        vim_info \u003d inst_utils.select_vim_info(inst.vimConnectionInfo)"},{"line_number":199,"context_line":"        heat_client \u003d heat_utils.HeatClient(vim_info)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        # make HOT"},{"line_number":202,"context_line":"        fields \u003d self._make_hot(req, inst, grant_req, grant, vnfd)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        LOG.debug(\"stack fields: %s\", fields)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        stack_name \u003d fields.pop(\u0027stack_name\u0027)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # update stack"},{"line_number":209,"context_line":"        fields \u003d self._update_nfv_dict(heat_client, stack_name, fields)"},{"line_number":210,"context_line":"        heat_client.update_stack(stack_name, fields)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        # get stack resource"},{"line_number":213,"context_line":"        heat_reses \u003d heat_client.get_resources(stack_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"e74b1370_13556632","line":210,"range":{"start_line":198,"start_character":8,"end_line":210,"end_character":52},"in_reply_to":"141270cc_bf6d9445","updated":"2022-01-26 04:55:35.000000000","message":"Done","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"c66096daca2ef214637256dc47e916af004cb7ea","unresolved":true,"context_lines":[{"line_number":195,"context_line":"        # should be same as before scale API started."},{"line_number":196,"context_line":""},{"line_number":197,"context_line":"    def change_ext_conn(self, req, inst, grant_req, grant, vnfd):"},{"line_number":198,"context_line":"        vim_info \u003d inst_utils.select_vim_info(inst.vimConnectionInfo)"},{"line_number":199,"context_line":"        heat_client \u003d heat_utils.HeatClient(vim_info)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        # make HOT"},{"line_number":202,"context_line":"        fields \u003d self._make_hot(req, inst, grant_req, grant, vnfd)"},{"line_number":203,"context_line":""},{"line_number":204,"context_line":"        LOG.debug(\"stack fields: %s\", fields)"},{"line_number":205,"context_line":""},{"line_number":206,"context_line":"        stack_name \u003d fields.pop(\u0027stack_name\u0027)"},{"line_number":207,"context_line":""},{"line_number":208,"context_line":"        # update stack"},{"line_number":209,"context_line":"        fields \u003d self._update_nfv_dict(heat_client, stack_name, fields)"},{"line_number":210,"context_line":"        heat_client.update_stack(stack_name, fields)"},{"line_number":211,"context_line":""},{"line_number":212,"context_line":"        # get stack resource"},{"line_number":213,"context_line":"        heat_reses \u003d heat_client.get_resources(stack_name)"}],"source_content_type":"text/x-python","patch_set":2,"id":"141270cc_bf6d9445","line":210,"range":{"start_line":198,"start_character":8,"end_line":210,"end_character":52},"in_reply_to":"941df474_fa64d01f","updated":"2022-01-25 23:21:52.000000000","message":"I see. I will change.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"1ae201fa640153b88f2c23d6a797d8d953057258","unresolved":true,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def change_ext_conn(self, req, inst, grant_req, grant, vnfd):"},{"line_number":196,"context_line":"        # make HOT"},{"line_number":197,"context_line":"        fields \u003d self._make_hot(req, inst, grant_req, grant, vnfd)"},{"line_number":198,"context_line":"        LOG.debug(\"stack fields: %s\", fields)"},{"line_number":199,"context_line":"        stack_name \u003d fields.pop(\u0027stack_name\u0027)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        # update stack"},{"line_number":202,"context_line":"        vim_info \u003d inst_utils.select_vim_info(inst.vimConnectionInfo)"}],"source_content_type":"text/x-python","patch_set":5,"id":"77145303_3a1b1583","line":199,"range":{"start_line":197,"start_character":8,"end_line":199,"end_character":45},"updated":"2022-02-01 05:33:26.000000000","message":"How about refactoring as follows?\nAlso instantiate and scale.\n```\n@@ -194,9 +194,7 @@ class Openstack(object):\n\n     def change_ext_conn(self, req, inst, grant_req, grant, vnfd):\n         # make HOT\n-        fields \u003d self._make_hot(req, inst, grant_req, grant, vnfd)\n-        LOG.debug(\"stack fields: %s\", fields)\n-        stack_name \u003d fields.pop(\u0027stack_name\u0027)\n+        stack_name, fields \u003d self._make_hot(req, inst, grant_req, grant, vnfd)\n\n         # update stack\n         vim_info \u003d inst_utils.select_vim_info(inst.vimConnectionInfo)\n@@ -266,11 +264,11 @@ class Openstack(object):\n             fields \u003d pickle.loads(out.stdout)\n\n         stack_name \u003d heat_utils.get_stack_name(inst)\n-        fields[\u0027stack_name\u0027] \u003d stack_name\n         fields[\u0027timeout_mins\u0027] \u003d (\n             CONF.v2_vnfm.openstack_vim_stack_create_timeout)\n+        LOG.debug(\"stack fields: %s\", fields)\n\n-        return fields\n+        return stack_name, fields\n```","commit_id":"6bcec390675c83d0988e721b1f0ca6b0310ad912"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"0db5f23f5c41660cc32727d3705cbb71447e62b8","unresolved":false,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def change_ext_conn(self, req, inst, grant_req, grant, vnfd):"},{"line_number":196,"context_line":"        # make HOT"},{"line_number":197,"context_line":"        fields \u003d self._make_hot(req, inst, grant_req, grant, vnfd)"},{"line_number":198,"context_line":"        LOG.debug(\"stack fields: %s\", fields)"},{"line_number":199,"context_line":"        stack_name \u003d fields.pop(\u0027stack_name\u0027)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        # update stack"},{"line_number":202,"context_line":"        vim_info \u003d inst_utils.select_vim_info(inst.vimConnectionInfo)"}],"source_content_type":"text/x-python","patch_set":5,"id":"37f27d93_4ef8cea2","line":199,"range":{"start_line":197,"start_character":8,"end_line":199,"end_character":45},"in_reply_to":"4efb185c_6a457a20","updated":"2022-02-02 00:47:15.000000000","message":"Okay, I\u0027ve confirmed.","commit_id":"6bcec390675c83d0988e721b1f0ca6b0310ad912"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"2c8e48c38414d63b13cb078bbce44d7e87370974","unresolved":true,"context_lines":[{"line_number":194,"context_line":""},{"line_number":195,"context_line":"    def change_ext_conn(self, req, inst, grant_req, grant, vnfd):"},{"line_number":196,"context_line":"        # make HOT"},{"line_number":197,"context_line":"        fields \u003d self._make_hot(req, inst, grant_req, grant, vnfd)"},{"line_number":198,"context_line":"        LOG.debug(\"stack fields: %s\", fields)"},{"line_number":199,"context_line":"        stack_name \u003d fields.pop(\u0027stack_name\u0027)"},{"line_number":200,"context_line":""},{"line_number":201,"context_line":"        # update stack"},{"line_number":202,"context_line":"        vim_info \u003d inst_utils.select_vim_info(inst.vimConnectionInfo)"}],"source_content_type":"text/x-python","patch_set":5,"id":"4efb185c_6a457a20","line":199,"range":{"start_line":197,"start_character":8,"end_line":199,"end_character":45},"in_reply_to":"77145303_3a1b1583","updated":"2022-02-01 23:30:33.000000000","message":"stack_name in fields is necessary for stack_create only. Since _make_hot was made for instantiate (stack_create) first, stack_name is in fields.\nI think it is better to drop stack_name from fields. I will change. Please check the changed code.","commit_id":"6bcec390675c83d0988e721b1f0ca6b0310ad912"},{"author":{"_account_id":31668},"change_message_id":"5b24ee938d8a4107a874eb07390db1a847fd378f","unresolved":true,"context_lines":[{"line_number":795,"context_line":"        #   because the association of compute resource and port resource"},{"line_number":796,"context_line":"        #   is not identified."},{"line_number":797,"context_line":""},{"line_number":798,"context_line":"        # make new instatiatedVnfInfo and replace"},{"line_number":799,"context_line":"        inst_vnf_info \u003d objects.VnfInstanceV2_InstantiatedVnfInfo("},{"line_number":800,"context_line":"            flavourId\u003dflavour_id,"},{"line_number":801,"context_line":"            vnfState\u003d\u0027STARTED\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"c8cdba22_d8c5e511","line":798,"range":{"start_line":798,"start_character":19,"end_line":798,"end_character":37},"updated":"2022-02-07 05:39:32.000000000","message":"typo: instatiatedVnfInfo -\u003e instantiatedVnfInfo\n\nCould you please fix this as well?","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":31668},"change_message_id":"9ce22a5df318c9b548955625677a2947005963ec","unresolved":false,"context_lines":[{"line_number":795,"context_line":"        #   because the association of compute resource and port resource"},{"line_number":796,"context_line":"        #   is not identified."},{"line_number":797,"context_line":""},{"line_number":798,"context_line":"        # make new instatiatedVnfInfo and replace"},{"line_number":799,"context_line":"        inst_vnf_info \u003d objects.VnfInstanceV2_InstantiatedVnfInfo("},{"line_number":800,"context_line":"            flavourId\u003dflavour_id,"},{"line_number":801,"context_line":"            vnfState\u003d\u0027STARTED\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"7843a97d_6cafd426","line":798,"range":{"start_line":798,"start_character":19,"end_line":798,"end_character":37},"in_reply_to":"a5f3fadd_f7f6fa2d","updated":"2022-02-17 01:20:10.000000000","message":"Done","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"bd6833d38dbd9e46655e3d1a1403bc3893fcba70","unresolved":true,"context_lines":[{"line_number":795,"context_line":"        #   because the association of compute resource and port resource"},{"line_number":796,"context_line":"        #   is not identified."},{"line_number":797,"context_line":""},{"line_number":798,"context_line":"        # make new instatiatedVnfInfo and replace"},{"line_number":799,"context_line":"        inst_vnf_info \u003d objects.VnfInstanceV2_InstantiatedVnfInfo("},{"line_number":800,"context_line":"            flavourId\u003dflavour_id,"},{"line_number":801,"context_line":"            vnfState\u003d\u0027STARTED\u0027,"}],"source_content_type":"text/x-python","patch_set":7,"id":"a5f3fadd_f7f6fa2d","line":798,"range":{"start_line":798,"start_character":19,"end_line":798,"end_character":37},"in_reply_to":"c8cdba22_d8c5e511","updated":"2022-02-07 23:12:00.000000000","message":"I see. I will fix.","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":31668},"change_message_id":"9ce22a5df318c9b548955625677a2947005963ec","unresolved":true,"context_lines":[{"line_number":191,"context_line":"        # NOTE: instantiatedVnfInfo is not necessary to update since it"},{"line_number":192,"context_line":"        # should be same as before scale API started."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def change_ext_conn(self, req, inst, grant_req, grant, vnfd):"},{"line_number":195,"context_line":"        # make HOT"},{"line_number":196,"context_line":"        fields \u003d self._make_hot(req, inst, grant_req, grant, vnfd)"},{"line_number":197,"context_line":"        LOG.debug(\"stack fields: %s\", fields)"}],"source_content_type":"text/x-python","patch_set":10,"id":"fd010aa6_47234e25","line":194,"updated":"2022-02-17 01:20:10.000000000","message":"Is it unnecessary to set changedExtConnectivity of VnfLcmOpOcc?","commit_id":"959406a7ea04ccfad1c7c43090eeb72a974242db"},{"author":{"_account_id":31668},"change_message_id":"4ada9685363735b1785e7e974ab043d3a09348de","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        # NOTE: instantiatedVnfInfo is not necessary to update since it"},{"line_number":192,"context_line":"        # should be same as before scale API started."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def change_ext_conn(self, req, inst, grant_req, grant, vnfd):"},{"line_number":195,"context_line":"        # make HOT"},{"line_number":196,"context_line":"        fields \u003d self._make_hot(req, inst, grant_req, grant, vnfd)"},{"line_number":197,"context_line":"        LOG.debug(\"stack fields: %s\", fields)"}],"source_content_type":"text/x-python","patch_set":10,"id":"5bf12941_5f25986c","line":194,"in_reply_to":"a3a9460a_8fa64406","updated":"2022-02-22 09:09:23.000000000","message":"Done","commit_id":"959406a7ea04ccfad1c7c43090eeb72a974242db"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"5e60c7c998aa63ecaa7b9e1617e1d8b87a925100","unresolved":true,"context_lines":[{"line_number":191,"context_line":"        # NOTE: instantiatedVnfInfo is not necessary to update since it"},{"line_number":192,"context_line":"        # should be same as before scale API started."},{"line_number":193,"context_line":""},{"line_number":194,"context_line":"    def change_ext_conn(self, req, inst, grant_req, grant, vnfd):"},{"line_number":195,"context_line":"        # make HOT"},{"line_number":196,"context_line":"        fields \u003d self._make_hot(req, inst, grant_req, grant, vnfd)"},{"line_number":197,"context_line":"        LOG.debug(\"stack fields: %s\", fields)"}],"source_content_type":"text/x-python","patch_set":10,"id":"a3a9460a_8fa64406","line":194,"in_reply_to":"fd010aa6_47234e25","updated":"2022-02-17 01:39:38.000000000","message":"It is necessary certainly. I will add.","commit_id":"959406a7ea04ccfad1c7c43090eeb72a974242db"},{"author":{"_account_id":31668},"change_message_id":"4ada9685363735b1785e7e974ab043d3a09348de","unresolved":true,"context_lines":[{"line_number":217,"context_line":"        fields \u003d self._update_nfv_dict(heat_client, stack_name,"},{"line_number":218,"context_line":"            userdata_default.DefaultUserData.change_ext_conn_rollback("},{"line_number":219,"context_line":"                req, inst, grant_req, grant, vnfd.csar_dir))"},{"line_number":220,"context_line":"        heat_client.update_stack(stack_name, fields)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # NOTE: it is necessary to re-create instantiatedVnfInfo because"},{"line_number":223,"context_line":"        # ports may be changed."}],"source_content_type":"text/x-python","patch_set":15,"id":"638b22df_a78bf17c","line":220,"updated":"2022-02-22 09:09:23.000000000","message":"If update_stack fails in change-ext-conn and becomes FAILED_TEMP, rolleback also fails and becomes FAILED_TEMP again.\n(For example, if resourceId is set to an id that does not exist, change-ext-conn will fail, and subsequent rollback will also fail.)\nIs this a Heat issue and can you think it can\u0027t be recovered by Tacker?","commit_id":"d18864b2e2bb201778783c85a34e3adb7764cf8a"},{"author":{"_account_id":31668},"change_message_id":"e058bbd215fc9cfc0a07176ec0fe0b4760e1f63b","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        fields \u003d self._update_nfv_dict(heat_client, stack_name,"},{"line_number":218,"context_line":"            userdata_default.DefaultUserData.change_ext_conn_rollback("},{"line_number":219,"context_line":"                req, inst, grant_req, grant, vnfd.csar_dir))"},{"line_number":220,"context_line":"        heat_client.update_stack(stack_name, fields)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # NOTE: it is necessary to re-create instantiatedVnfInfo because"},{"line_number":223,"context_line":"        # ports may be changed."}],"source_content_type":"text/x-python","patch_set":15,"id":"5ebfc473_26e6fa48","line":220,"in_reply_to":"55f26955_0ea73f7f","updated":"2022-02-24 08:10:51.000000000","message":"Thank you for your reply.\nIn the Openstack CLI, there is \"rollback enabled\" in the stack update option.\n-----\n--rollback \u003cvalue\u003e\n                         Set rollback on update failure. Value \"enabled\" sets rollback to enabled. Value \"disabled\" sets rollback to disabled. Value \"keep\" uses the value of existing stack to be updated (default)\n-----\n\nSo I thought it would be one way to do a rollback on the stack, but it probably needs more consideration ...\nIt\u0027s okay now, but it may be considered in the future.","commit_id":"d18864b2e2bb201778783c85a34e3adb7764cf8a"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"ab299d234f93f49e55bc3d1d1d674e07d309f70b","unresolved":false,"context_lines":[{"line_number":217,"context_line":"        fields \u003d self._update_nfv_dict(heat_client, stack_name,"},{"line_number":218,"context_line":"            userdata_default.DefaultUserData.change_ext_conn_rollback("},{"line_number":219,"context_line":"                req, inst, grant_req, grant, vnfd.csar_dir))"},{"line_number":220,"context_line":"        heat_client.update_stack(stack_name, fields)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # NOTE: it is necessary to re-create instantiatedVnfInfo because"},{"line_number":223,"context_line":"        # ports may be changed."}],"source_content_type":"text/x-python","patch_set":15,"id":"3018111c_da5822f7","line":220,"in_reply_to":"5ebfc473_26e6fa48","updated":"2022-02-25 00:05:28.000000000","message":"Thank you for the comment. I think applying heat rollback option need more consideration too.","commit_id":"d18864b2e2bb201778783c85a34e3adb7764cf8a"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"9974f37b594f21bdea210d7b43e326180fab2f24","unresolved":true,"context_lines":[{"line_number":217,"context_line":"        fields \u003d self._update_nfv_dict(heat_client, stack_name,"},{"line_number":218,"context_line":"            userdata_default.DefaultUserData.change_ext_conn_rollback("},{"line_number":219,"context_line":"                req, inst, grant_req, grant, vnfd.csar_dir))"},{"line_number":220,"context_line":"        heat_client.update_stack(stack_name, fields)"},{"line_number":221,"context_line":""},{"line_number":222,"context_line":"        # NOTE: it is necessary to re-create instantiatedVnfInfo because"},{"line_number":223,"context_line":"        # ports may be changed."}],"source_content_type":"text/x-python","patch_set":15,"id":"55f26955_0ea73f7f","line":220,"in_reply_to":"638b22df_a78bf17c","updated":"2022-02-23 22:25:47.000000000","message":"The cause of problem should be checked by the caller (operator of NVFO) via lcmocc.error. It may be possible both of Heat issue and not Heat issue.","commit_id":"d18864b2e2bb201778783c85a34e3adb7764cf8a"}],"tacker/sol_refactored/objects/v2/change_ext_vnf_connectivity_request.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"e0b87e037442e147e99437e0e13e766af2c98540","unresolved":true,"context_lines":[{"line_number":20,"context_line":"# NFV-SOL 003"},{"line_number":21,"context_line":"# - v3.3.1 5.5.2.11 (API version: 2.0.0)"},{"line_number":22,"context_line":"@base.TackerObjectRegistry.register"},{"line_number":23,"context_line":"class ChangeExtVnfConnectivityRequest(base.TackerObject,"},{"line_number":24,"context_line":"                                      base.TackerObjectDictCompat):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    # Version 1.0: Initial version"}],"source_content_type":"text/x-python","patch_set":2,"id":"156f87a5_ee8f54dc","line":23,"updated":"2022-01-25 09:59:02.000000000","message":"I think it\u0027s better to leave V2 on for consistency, but what do you think?","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"c66096daca2ef214637256dc47e916af004cb7ea","unresolved":true,"context_lines":[{"line_number":20,"context_line":"# NFV-SOL 003"},{"line_number":21,"context_line":"# - v3.3.1 5.5.2.11 (API version: 2.0.0)"},{"line_number":22,"context_line":"@base.TackerObjectRegistry.register"},{"line_number":23,"context_line":"class ChangeExtVnfConnectivityRequest(base.TackerObject,"},{"line_number":24,"context_line":"                                      base.TackerObjectDictCompat):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    # Version 1.0: Initial version"}],"source_content_type":"text/x-python","patch_set":2,"id":"d0c4313f_c6eefe1f","line":23,"in_reply_to":"156f87a5_ee8f54dc","updated":"2022-01-25 23:21:52.000000000","message":"I adopt definition in OperationParam class (objects/v2/vnf_lcm_op_occ.py). It should be checked before more, but it seems it is dominant not to have V2.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"a666d995ad265121e686d76eceaab3fe04a11afc","unresolved":true,"context_lines":[{"line_number":20,"context_line":"# NFV-SOL 003"},{"line_number":21,"context_line":"# - v3.3.1 5.5.2.11 (API version: 2.0.0)"},{"line_number":22,"context_line":"@base.TackerObjectRegistry.register"},{"line_number":23,"context_line":"class ChangeExtVnfConnectivityRequest(base.TackerObject,"},{"line_number":24,"context_line":"                                      base.TackerObjectDictCompat):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    # Version 1.0: Initial version"}],"source_content_type":"text/x-python","patch_set":2,"id":"613d37e6_e798e321","line":23,"in_reply_to":"2ca7337a_d50f1631","updated":"2022-01-26 04:55:35.000000000","message":"Okay, I see.\nTo remember to confirm the fix, I will change this comment to \"Resolved\" after the heal patch has been posted and confirmed.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"1ae201fa640153b88f2c23d6a797d8d953057258","unresolved":false,"context_lines":[{"line_number":20,"context_line":"# NFV-SOL 003"},{"line_number":21,"context_line":"# - v3.3.1 5.5.2.11 (API version: 2.0.0)"},{"line_number":22,"context_line":"@base.TackerObjectRegistry.register"},{"line_number":23,"context_line":"class ChangeExtVnfConnectivityRequest(base.TackerObject,"},{"line_number":24,"context_line":"                                      base.TackerObjectDictCompat):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    # Version 1.0: Initial version"}],"source_content_type":"text/x-python","patch_set":2,"id":"305f33e9_2f0123c6","line":23,"in_reply_to":"613d37e6_e798e321","updated":"2022-02-01 05:33:26.000000000","message":"This comment will be changed to \"Resolved\" because I could confirm the fix in the following heal patch.\n---\nhttps://review.opendev.org/c/openstack/tacker/+/827189/1/tacker/sol_refactored/objects/v2/instantiate_vnf_request.py","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"cf97bba0a1d931cf9977e415a4e535f5074d3ae3","unresolved":true,"context_lines":[{"line_number":20,"context_line":"# NFV-SOL 003"},{"line_number":21,"context_line":"# - v3.3.1 5.5.2.11 (API version: 2.0.0)"},{"line_number":22,"context_line":"@base.TackerObjectRegistry.register"},{"line_number":23,"context_line":"class ChangeExtVnfConnectivityRequest(base.TackerObject,"},{"line_number":24,"context_line":"                                      base.TackerObjectDictCompat):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    # Version 1.0: Initial version"}],"source_content_type":"text/x-python","patch_set":2,"id":"fe1297dd_db5cb9f3","line":23,"in_reply_to":"d0c4313f_c6eefe1f","updated":"2022-01-26 00:31:11.000000000","message":"I understood the intent of your fix.\nIf you follow that, it would be better to modify the following \"InstantiateVnfRequestV2\" to \"InstantiateVnfRequest\" as well.\nIt\u0027s nit fix, so I think it\u0027s sufficient to mention it in the commit message a little and fix it in this patch instead of a new patch.\nWhat do you think?\nhttps://opendev.org/openstack/tacker/src/branch/master/tacker/sol_refactored/objects/v2/vnf_lcm_op_occ.py#L30","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"bde59640f9c63ed4d3c2e0381ec7992fa9c60936","unresolved":true,"context_lines":[{"line_number":20,"context_line":"# NFV-SOL 003"},{"line_number":21,"context_line":"# - v3.3.1 5.5.2.11 (API version: 2.0.0)"},{"line_number":22,"context_line":"@base.TackerObjectRegistry.register"},{"line_number":23,"context_line":"class ChangeExtVnfConnectivityRequest(base.TackerObject,"},{"line_number":24,"context_line":"                                      base.TackerObjectDictCompat):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    # Version 1.0: Initial version"}],"source_content_type":"text/x-python","patch_set":2,"id":"2ca7337a_d50f1631","line":23,"in_reply_to":"f980ba19_7affda36","updated":"2022-01-26 02:50:27.000000000","message":"\u003e OK, I will drop V2 from InstantiateVnfRequestV2.\nIt is same as modify and heal. heal is the last patch of v2 API support in Yoga release. So I will fix in heal patch.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"c6663c2f65c627fb74c91f7e88a87b818678acf5","unresolved":true,"context_lines":[{"line_number":20,"context_line":"# NFV-SOL 003"},{"line_number":21,"context_line":"# - v3.3.1 5.5.2.11 (API version: 2.0.0)"},{"line_number":22,"context_line":"@base.TackerObjectRegistry.register"},{"line_number":23,"context_line":"class ChangeExtVnfConnectivityRequest(base.TackerObject,"},{"line_number":24,"context_line":"                                      base.TackerObjectDictCompat):"},{"line_number":25,"context_line":""},{"line_number":26,"context_line":"    # Version 1.0: Initial version"}],"source_content_type":"text/x-python","patch_set":2,"id":"f980ba19_7affda36","line":23,"in_reply_to":"fe1297dd_db5cb9f3","updated":"2022-01-26 02:46:49.000000000","message":"hmm. InstantiateVnfRequestV2 is used in five places. Not so much...\nOK, I will drop V2 from InstantiateVnfRequestV2.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31668},"change_message_id":"488761e73afa41cd79109098c9f012296ca21445","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    fields \u003d {"},{"line_number":30,"context_line":"        \u0027extVirtualLinks\u0027: fields.ListOfObjectsField("},{"line_number":31,"context_line":"            \u0027ExtVirtualLinkData\u0027, nullable\u003dFalse),"},{"line_number":32,"context_line":"        \u0027vimConnectionInfo\u0027: fields.DictOfObjectsField("},{"line_number":33,"context_line":"            \u0027VimConnectionInfo\u0027, nullable\u003dTrue),"},{"line_number":34,"context_line":"        \u0027additionalParams\u0027: fields.KeyValuePairsField(nullable\u003dTrue),"},{"line_number":35,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":10,"id":"944c7610_85e592bc","line":33,"range":{"start_line":32,"start_character":8,"end_line":33,"end_character":47},"updated":"2022-02-17 09:06:07.000000000","message":"The vimConnectionInfo doesn\u0027t seem to be used for processing.\nSOL003 Table 5.5.2.11-1 has the following description.\n-----\nInformation about VIM connections to be used for\nmanaging the resources for the VNF instance, or refer to\nexternal virtual links.\nThis attribute shall only be supported and may be\npresent if VNF-related resource management in direct\nmode is applicable. The VNFM shall apply the content of\nthis attribute to the \"vimConnectionInfo\" attribute of\n\"VnfInstance\" according to the rules of JSON Merge\nPatch (see IETF RFC 7396 [5]).\n-----\n\nIs this not supported?","commit_id":"959406a7ea04ccfad1c7c43090eeb72a974242db"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"2c5fa9867f320049d2f99162a172bfa80c59fb17","unresolved":true,"context_lines":[{"line_number":29,"context_line":"    fields \u003d {"},{"line_number":30,"context_line":"        \u0027extVirtualLinks\u0027: fields.ListOfObjectsField("},{"line_number":31,"context_line":"            \u0027ExtVirtualLinkData\u0027, nullable\u003dFalse),"},{"line_number":32,"context_line":"        \u0027vimConnectionInfo\u0027: fields.DictOfObjectsField("},{"line_number":33,"context_line":"            \u0027VimConnectionInfo\u0027, nullable\u003dTrue),"},{"line_number":34,"context_line":"        \u0027additionalParams\u0027: fields.KeyValuePairsField(nullable\u003dTrue),"},{"line_number":35,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":10,"id":"abd868b9_f8bcfe0e","line":33,"range":{"start_line":32,"start_character":8,"end_line":33,"end_character":47},"in_reply_to":"944c7610_85e592bc","updated":"2022-02-18 02:03:20.000000000","message":"Hmm, it is written in the specification certainly. I will add the related code as same as MODIFY_INFO.","commit_id":"959406a7ea04ccfad1c7c43090eeb72a974242db"},{"author":{"_account_id":31668},"change_message_id":"37c58250f2956bc544aae5041019ec25e33e61c9","unresolved":false,"context_lines":[{"line_number":29,"context_line":"    fields \u003d {"},{"line_number":30,"context_line":"        \u0027extVirtualLinks\u0027: fields.ListOfObjectsField("},{"line_number":31,"context_line":"            \u0027ExtVirtualLinkData\u0027, nullable\u003dFalse),"},{"line_number":32,"context_line":"        \u0027vimConnectionInfo\u0027: fields.DictOfObjectsField("},{"line_number":33,"context_line":"            \u0027VimConnectionInfo\u0027, nullable\u003dTrue),"},{"line_number":34,"context_line":"        \u0027additionalParams\u0027: fields.KeyValuePairsField(nullable\u003dTrue),"},{"line_number":35,"context_line":"    }"}],"source_content_type":"text/x-python","patch_set":10,"id":"47cc3672_7a2f6724","line":33,"range":{"start_line":32,"start_character":8,"end_line":33,"end_character":47},"in_reply_to":"abd868b9_f8bcfe0e","updated":"2022-02-21 09:24:36.000000000","message":"Done","commit_id":"959406a7ea04ccfad1c7c43090eeb72a974242db"}],"tacker/tests/unit/sol_refactored/common/test_lcm_op_occ_utils.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"bf3abbab905e235bda3350c40fca7b09a8f9c83b","unresolved":true,"context_lines":[{"line_number":1408,"context_line":"        lcmocc \u003d lcmocc.to_dict()"},{"line_number":1409,"context_line":"        self.assertEqual(_expected_changedInfo, lcmocc[\u0027changedInfo\u0027])"},{"line_number":1410,"context_line":""},{"line_number":1411,"context_line":"    def test_update_lcmocc_change_ext_conn(self):"},{"line_number":1412,"context_line":"        # prepare"},{"line_number":1413,"context_line":"        inst_saved \u003d objects.VnfInstanceV2()"},{"line_number":1414,"context_line":"        inst_saved.instantiatedVnfInfo \u003d ("}],"source_content_type":"text/x-python","patch_set":6,"id":"025f2ada_e31e7602","line":1411,"updated":"2022-02-02 08:28:17.000000000","message":"Checking the coverage below, \"update_lcmocc\" has been tested for almost all branches, but it seems that only cases that do not enter into the if branch of L382 and L391 have not been tested.\nIs it possible to add this perspective to the test case?\n---\nhttps://281188a2deb927691517-41ca0b7dfd34312aa3fc6c0e8f25e867.ssl.cf5.rackcdn.com/825985/6/check/openstack-tox-cover/80f2f7a/cover/d_e420ed31bb1c3912_lcm_op_occ_utils_py.html#t385","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"2024c26726684866f05bdf9630b2322f51a7e939","unresolved":true,"context_lines":[{"line_number":1408,"context_line":"        lcmocc \u003d lcmocc.to_dict()"},{"line_number":1409,"context_line":"        self.assertEqual(_expected_changedInfo, lcmocc[\u0027changedInfo\u0027])"},{"line_number":1410,"context_line":""},{"line_number":1411,"context_line":"    def test_update_lcmocc_change_ext_conn(self):"},{"line_number":1412,"context_line":"        # prepare"},{"line_number":1413,"context_line":"        inst_saved \u003d objects.VnfInstanceV2()"},{"line_number":1414,"context_line":"        inst_saved.instantiatedVnfInfo \u003d ("}],"source_content_type":"text/x-python","patch_set":6,"id":"18daf6d2_9132876a","line":1411,"in_reply_to":"025f2ada_e31e7602","updated":"2022-02-02 23:59:29.000000000","message":"I think they will be covered by heal patch since ext_link_ports are not changed at heal. please check heal patch.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"1ed6fd2162e8b9bf0e3ab38eda79376d0075ca5e","unresolved":true,"context_lines":[{"line_number":1408,"context_line":"        lcmocc \u003d lcmocc.to_dict()"},{"line_number":1409,"context_line":"        self.assertEqual(_expected_changedInfo, lcmocc[\u0027changedInfo\u0027])"},{"line_number":1410,"context_line":""},{"line_number":1411,"context_line":"    def test_update_lcmocc_change_ext_conn(self):"},{"line_number":1412,"context_line":"        # prepare"},{"line_number":1413,"context_line":"        inst_saved \u003d objects.VnfInstanceV2()"},{"line_number":1414,"context_line":"        inst_saved.instantiatedVnfInfo \u003d ("}],"source_content_type":"text/x-python","patch_set":6,"id":"cbbcffe8_00b59e64","line":1411,"in_reply_to":"18daf6d2_9132876a","updated":"2022-02-03 04:20:09.000000000","message":"I checked the heal patch.\nCases that did not enter the if branch of L382 seemed to remain untested.\nDoes this meaningless to test this branch?","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"006c3ed516504f17ac496fc0e55510deae60c4ff","unresolved":false,"context_lines":[{"line_number":1408,"context_line":"        lcmocc \u003d lcmocc.to_dict()"},{"line_number":1409,"context_line":"        self.assertEqual(_expected_changedInfo, lcmocc[\u0027changedInfo\u0027])"},{"line_number":1410,"context_line":""},{"line_number":1411,"context_line":"    def test_update_lcmocc_change_ext_conn(self):"},{"line_number":1412,"context_line":"        # prepare"},{"line_number":1413,"context_line":"        inst_saved \u003d objects.VnfInstanceV2()"},{"line_number":1414,"context_line":"        inst_saved.instantiatedVnfInfo \u003d ("}],"source_content_type":"text/x-python","patch_set":6,"id":"44aca8cc_39d63d6d","line":1411,"in_reply_to":"9f0160aa_2a417c26","updated":"2022-02-04 01:22:30.000000000","message":"I see, you don\u0027t have to add it.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"6f7d9e783cdacad926adf1de098bf493c7a543d3","unresolved":true,"context_lines":[{"line_number":1408,"context_line":"        lcmocc \u003d lcmocc.to_dict()"},{"line_number":1409,"context_line":"        self.assertEqual(_expected_changedInfo, lcmocc[\u0027changedInfo\u0027])"},{"line_number":1410,"context_line":""},{"line_number":1411,"context_line":"    def test_update_lcmocc_change_ext_conn(self):"},{"line_number":1412,"context_line":"        # prepare"},{"line_number":1413,"context_line":"        inst_saved \u003d objects.VnfInstanceV2()"},{"line_number":1414,"context_line":"        inst_saved.instantiatedVnfInfo \u003d ("}],"source_content_type":"text/x-python","patch_set":6,"id":"9f0160aa_2a417c26","line":1411,"in_reply_to":"cbbcffe8_00b59e64","updated":"2022-02-03 22:42:10.000000000","message":"I think it is clear that if none of affected_vnfcs, affected_vls, affected_strgs,            affected_ext_link_ports is set, lcmocc.resourceChanges is not set by code.　So I think it is worthless to check it on a test.","commit_id":"7282af55b529c5c11c8dfed794192b7fee5b8ca3"},{"author":{"_account_id":31668},"change_message_id":"5b24ee938d8a4107a874eb07390db1a847fd378f","unresolved":true,"context_lines":[{"line_number":685,"context_line":"            # \"currentVnfExtCpData\": omitted"},{"line_number":686,"context_line":"        }"},{"line_number":687,"context_line":"    ],"},{"line_number":688,"context_line":"    # NOTE: vnfcCpInfo of VnfcResorceInfo is changed exactly, but it is"},{"line_number":689,"context_line":"    # not looked at lcmocc_update."},{"line_number":690,"context_line":"    \"vnfcResourceInfo\": _inst_info_example_1[\"vnfcResourceInfo\"],"},{"line_number":691,"context_line":"    # other members are same as example_1"}],"source_content_type":"text/x-python","patch_set":7,"id":"3070bdab_279284b4","line":688,"range":{"start_line":688,"start_character":26,"end_line":688,"end_character":41},"updated":"2022-02-07 05:39:32.000000000","message":"typo: VnfcResorceInfo -\u003e VnfcResourceInfo","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"bd6833d38dbd9e46655e3d1a1403bc3893fcba70","unresolved":true,"context_lines":[{"line_number":685,"context_line":"            # \"currentVnfExtCpData\": omitted"},{"line_number":686,"context_line":"        }"},{"line_number":687,"context_line":"    ],"},{"line_number":688,"context_line":"    # NOTE: vnfcCpInfo of VnfcResorceInfo is changed exactly, but it is"},{"line_number":689,"context_line":"    # not looked at lcmocc_update."},{"line_number":690,"context_line":"    \"vnfcResourceInfo\": _inst_info_example_1[\"vnfcResourceInfo\"],"},{"line_number":691,"context_line":"    # other members are same as example_1"}],"source_content_type":"text/x-python","patch_set":7,"id":"cfe91d0c_8752b916","line":688,"range":{"start_line":688,"start_character":26,"end_line":688,"end_character":41},"in_reply_to":"3070bdab_279284b4","updated":"2022-02-07 23:12:00.000000000","message":"I will fix.","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":31668},"change_message_id":"9ce22a5df318c9b548955625677a2947005963ec","unresolved":false,"context_lines":[{"line_number":685,"context_line":"            # \"currentVnfExtCpData\": omitted"},{"line_number":686,"context_line":"        }"},{"line_number":687,"context_line":"    ],"},{"line_number":688,"context_line":"    # NOTE: vnfcCpInfo of VnfcResorceInfo is changed exactly, but it is"},{"line_number":689,"context_line":"    # not looked at lcmocc_update."},{"line_number":690,"context_line":"    \"vnfcResourceInfo\": _inst_info_example_1[\"vnfcResourceInfo\"],"},{"line_number":691,"context_line":"    # other members are same as example_1"}],"source_content_type":"text/x-python","patch_set":7,"id":"751f9a5a_df7bbbbb","line":688,"range":{"start_line":688,"start_character":26,"end_line":688,"end_character":41},"in_reply_to":"cfe91d0c_8752b916","updated":"2022-02-17 01:20:10.000000000","message":"Done","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"}],"tacker/tests/unit/sol_refactored/conductor/test_vnflcm_driver_v2.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"e0b87e037442e147e99437e0e13e766af2c98540","unresolved":true,"context_lines":[{"line_number":147,"context_line":"        {"},{"line_number":148,"context_line":"            \"cpdId\": \"VDU2_CP1\","},{"line_number":149,"context_line":"            \"cpConfig\": {"},{"line_number":150,"context_line":"                \"VDU2_CP2_1\": {"},{"line_number":151,"context_line":"                    \"linkPortId\": \"link_port_id\""},{"line_number":152,"context_line":"                }"},{"line_number":153,"context_line":"            },"}],"source_content_type":"text/x-python","patch_set":2,"id":"91afdf64_2cd69db8","line":150,"range":{"start_line":150,"start_character":17,"end_line":150,"end_character":27},"updated":"2022-01-25 09:59:02.000000000","message":"Is \"VDU2_CP1_1\" correct?","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"a666d995ad265121e686d76eceaab3fe04a11afc","unresolved":false,"context_lines":[{"line_number":147,"context_line":"        {"},{"line_number":148,"context_line":"            \"cpdId\": \"VDU2_CP1\","},{"line_number":149,"context_line":"            \"cpConfig\": {"},{"line_number":150,"context_line":"                \"VDU2_CP2_1\": {"},{"line_number":151,"context_line":"                    \"linkPortId\": \"link_port_id\""},{"line_number":152,"context_line":"                }"},{"line_number":153,"context_line":"            },"}],"source_content_type":"text/x-python","patch_set":2,"id":"1ec54862_33084890","line":150,"range":{"start_line":150,"start_character":17,"end_line":150,"end_character":27},"in_reply_to":"56cedc02_93512902","updated":"2022-01-26 04:55:35.000000000","message":"Done","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"c66096daca2ef214637256dc47e916af004cb7ea","unresolved":true,"context_lines":[{"line_number":147,"context_line":"        {"},{"line_number":148,"context_line":"            \"cpdId\": \"VDU2_CP1\","},{"line_number":149,"context_line":"            \"cpConfig\": {"},{"line_number":150,"context_line":"                \"VDU2_CP2_1\": {"},{"line_number":151,"context_line":"                    \"linkPortId\": \"link_port_id\""},{"line_number":152,"context_line":"                }"},{"line_number":153,"context_line":"            },"}],"source_content_type":"text/x-python","patch_set":2,"id":"56cedc02_93512902","line":150,"range":{"start_line":150,"start_character":17,"end_line":150,"end_character":27},"in_reply_to":"91afdf64_2cd69db8","updated":"2022-01-25 23:21:52.000000000","message":"OK, it is better. I will fix. (this key is not used actually)","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"e0b87e037442e147e99437e0e13e766af2c98540","unresolved":true,"context_lines":[{"line_number":1193,"context_line":""},{"line_number":1194,"context_line":"        # check addResources"},{"line_number":1195,"context_line":"        add_reses \u003d grant_req[\u0027addResources\u0027]"},{"line_number":1196,"context_line":"        check_reses \u003d {"},{"line_number":1197,"context_line":"            \u0027LINKPORT\u0027: {\u0027VDU1_CP2\u0027: []}"},{"line_number":1198,"context_line":"        }"},{"line_number":1199,"context_line":"        expected_num \u003d {"},{"line_number":1200,"context_line":"            \u0027LINKPORT\u0027: {\u0027VDU1_CP2\u0027: 2}"},{"line_number":1201,"context_line":"        }"},{"line_number":1202,"context_line":"        for res in add_reses:"},{"line_number":1203,"context_line":"            check_reses[res[\u0027type\u0027]][res[\u0027resourceTemplateId\u0027]].append("},{"line_number":1204,"context_line":"                res[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"6cfc92ce_25f1e552","line":1201,"range":{"start_line":1196,"start_character":0,"end_line":1201,"end_character":9},"updated":"2022-01-25 09:59:02.000000000","message":"I think there is also a way to make sure that \"VDU2_CP1\" is not explicitly included in grant-request as shown below.\nWhat do you think?\n```\n         check_reses \u003d {\n-            \u0027LINKPORT\u0027: {\u0027VDU1_CP2\u0027: []}\n+            \u0027LINKPORT\u0027: {\u0027VDU1_CP2\u0027: [], \u0027VDU2_CP1\u0027: []}\n         }\n         expected_num \u003d {\n-            \u0027LINKPORT\u0027: {\u0027VDU1_CP2\u0027: 2}\n+            \u0027LINKPORT\u0027: {\u0027VDU1_CP2\u0027: 2, \u0027VDU2_CP1\u0027: 0}\n         }\n```","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"c66096daca2ef214637256dc47e916af004cb7ea","unresolved":true,"context_lines":[{"line_number":1193,"context_line":""},{"line_number":1194,"context_line":"        # check addResources"},{"line_number":1195,"context_line":"        add_reses \u003d grant_req[\u0027addResources\u0027]"},{"line_number":1196,"context_line":"        check_reses \u003d {"},{"line_number":1197,"context_line":"            \u0027LINKPORT\u0027: {\u0027VDU1_CP2\u0027: []}"},{"line_number":1198,"context_line":"        }"},{"line_number":1199,"context_line":"        expected_num \u003d {"},{"line_number":1200,"context_line":"            \u0027LINKPORT\u0027: {\u0027VDU1_CP2\u0027: 2}"},{"line_number":1201,"context_line":"        }"},{"line_number":1202,"context_line":"        for res in add_reses:"},{"line_number":1203,"context_line":"            check_reses[res[\u0027type\u0027]][res[\u0027resourceTemplateId\u0027]].append("},{"line_number":1204,"context_line":"                res[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"7fdab16e_97fa1902","line":1201,"range":{"start_line":1196,"start_character":0,"end_line":1201,"end_character":9},"in_reply_to":"6cfc92ce_25f1e552","updated":"2022-01-25 23:21:52.000000000","message":"It is not necessary to define the item which will not exist. Because if \u0027VUD2_CP1\u0027 is in add_reses, key error will be raised in L.1203.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"cf97bba0a1d931cf9977e415a4e535f5074d3ae3","unresolved":false,"context_lines":[{"line_number":1193,"context_line":""},{"line_number":1194,"context_line":"        # check addResources"},{"line_number":1195,"context_line":"        add_reses \u003d grant_req[\u0027addResources\u0027]"},{"line_number":1196,"context_line":"        check_reses \u003d {"},{"line_number":1197,"context_line":"            \u0027LINKPORT\u0027: {\u0027VDU1_CP2\u0027: []}"},{"line_number":1198,"context_line":"        }"},{"line_number":1199,"context_line":"        expected_num \u003d {"},{"line_number":1200,"context_line":"            \u0027LINKPORT\u0027: {\u0027VDU1_CP2\u0027: 2}"},{"line_number":1201,"context_line":"        }"},{"line_number":1202,"context_line":"        for res in add_reses:"},{"line_number":1203,"context_line":"            check_reses[res[\u0027type\u0027]][res[\u0027resourceTemplateId\u0027]].append("},{"line_number":1204,"context_line":"                res[\u0027id\u0027])"}],"source_content_type":"text/x-python","patch_set":2,"id":"600347b1_dd3db75f","line":1201,"range":{"start_line":1196,"start_character":0,"end_line":1201,"end_character":9},"in_reply_to":"7fdab16e_97fa1902","updated":"2022-01-26 00:31:11.000000000","message":"Okay, I see.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31668},"change_message_id":"5b24ee938d8a4107a874eb07390db1a847fd378f","unresolved":true,"context_lines":[{"line_number":151,"context_line":"                    \"linkPortId\": \"link_port_id\""},{"line_number":152,"context_line":"                }"},{"line_number":153,"context_line":"            },"},{"line_number":154,"context_line":"            \"extLinkPorts\": [{"},{"line_number":155,"context_line":"                \"id\": \"link_port_id\","},{"line_number":156,"context_line":"                \"resourceHandle\": {"},{"line_number":157,"context_line":"                    \"resourceId\": \"res_id_VDU2_CP1\""},{"line_number":158,"context_line":"                }"},{"line_number":159,"context_line":"            }]"},{"line_number":160,"context_line":"        }"},{"line_number":161,"context_line":"    ]"},{"line_number":162,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":7,"id":"391c8e3d_781ab1e5","line":159,"range":{"start_line":154,"start_character":12,"end_line":159,"end_character":14},"updated":"2022-02-07 05:39:32.000000000","message":"\"extLinkPorts\" does not exist in the attribute of \"extCps\" (SOL003 4.4.1.10 VnfExtCpData).\n\"extLinkPorts\" is an attribute of \"extVirtualLinks\" (SOL003 4.4.1.11 ExtVirtualLinkData).","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"bd6833d38dbd9e46655e3d1a1403bc3893fcba70","unresolved":true,"context_lines":[{"line_number":151,"context_line":"                    \"linkPortId\": \"link_port_id\""},{"line_number":152,"context_line":"                }"},{"line_number":153,"context_line":"            },"},{"line_number":154,"context_line":"            \"extLinkPorts\": [{"},{"line_number":155,"context_line":"                \"id\": \"link_port_id\","},{"line_number":156,"context_line":"                \"resourceHandle\": {"},{"line_number":157,"context_line":"                    \"resourceId\": \"res_id_VDU2_CP1\""},{"line_number":158,"context_line":"                }"},{"line_number":159,"context_line":"            }]"},{"line_number":160,"context_line":"        }"},{"line_number":161,"context_line":"    ]"},{"line_number":162,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":7,"id":"ae8148de_7ffb5e7f","line":159,"range":{"start_line":154,"start_character":12,"end_line":159,"end_character":14},"in_reply_to":"391c8e3d_781ab1e5","updated":"2022-02-07 23:12:00.000000000","message":"Indentation is wrong. I will fix.","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":31668},"change_message_id":"9ce22a5df318c9b548955625677a2947005963ec","unresolved":false,"context_lines":[{"line_number":151,"context_line":"                    \"linkPortId\": \"link_port_id\""},{"line_number":152,"context_line":"                }"},{"line_number":153,"context_line":"            },"},{"line_number":154,"context_line":"            \"extLinkPorts\": [{"},{"line_number":155,"context_line":"                \"id\": \"link_port_id\","},{"line_number":156,"context_line":"                \"resourceHandle\": {"},{"line_number":157,"context_line":"                    \"resourceId\": \"res_id_VDU2_CP1\""},{"line_number":158,"context_line":"                }"},{"line_number":159,"context_line":"            }]"},{"line_number":160,"context_line":"        }"},{"line_number":161,"context_line":"    ]"},{"line_number":162,"context_line":"}"}],"source_content_type":"text/x-python","patch_set":7,"id":"56d48e8f_9999b15b","line":159,"range":{"start_line":154,"start_character":12,"end_line":159,"end_character":14},"in_reply_to":"ae8148de_7ffb5e7f","updated":"2022-02-17 01:20:10.000000000","message":"Done","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":31668},"change_message_id":"5b24ee938d8a4107a874eb07390db1a847fd378f","unresolved":true,"context_lines":[{"line_number":1229,"context_line":""},{"line_number":1230,"context_line":"        mocked_grant.return_value \u003d objects.GrantV1()"},{"line_number":1231,"context_line":""},{"line_number":1232,"context_line":"        # run instantiate_grant"},{"line_number":1233,"context_line":"        grant_req, _ \u003d self.driver.grant("},{"line_number":1234,"context_line":"            self.context, lcmocc, inst, self.vnfd_1)"},{"line_number":1235,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"639b117b_ffd9659c","line":1232,"range":{"start_line":1232,"start_character":14,"end_line":1232,"end_character":31},"updated":"2022-02-07 05:39:32.000000000","message":"Isn\u0027t it \"change_ext_conn_grant\" instead of \"instantiate_grant\"?","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"bd6833d38dbd9e46655e3d1a1403bc3893fcba70","unresolved":true,"context_lines":[{"line_number":1229,"context_line":""},{"line_number":1230,"context_line":"        mocked_grant.return_value \u003d objects.GrantV1()"},{"line_number":1231,"context_line":""},{"line_number":1232,"context_line":"        # run instantiate_grant"},{"line_number":1233,"context_line":"        grant_req, _ \u003d self.driver.grant("},{"line_number":1234,"context_line":"            self.context, lcmocc, inst, self.vnfd_1)"},{"line_number":1235,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"da8a89cf_1627069d","line":1232,"range":{"start_line":1232,"start_character":14,"end_line":1232,"end_character":31},"in_reply_to":"639b117b_ffd9659c","updated":"2022-02-07 23:12:00.000000000","message":"yes. I will fix.","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":31668},"change_message_id":"91a7dd20b3ffa7a496f9ad796c3098de042f0b07","unresolved":false,"context_lines":[{"line_number":1229,"context_line":""},{"line_number":1230,"context_line":"        mocked_grant.return_value \u003d objects.GrantV1()"},{"line_number":1231,"context_line":""},{"line_number":1232,"context_line":"        # run instantiate_grant"},{"line_number":1233,"context_line":"        grant_req, _ \u003d self.driver.grant("},{"line_number":1234,"context_line":"            self.context, lcmocc, inst, self.vnfd_1)"},{"line_number":1235,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"6db7e331_90059c54","line":1232,"range":{"start_line":1232,"start_character":14,"end_line":1232,"end_character":31},"in_reply_to":"da8a89cf_1627069d","updated":"2022-02-17 01:22:48.000000000","message":"Done","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"}],"tacker/tests/unit/sol_refactored/controller/test_vnflcm_v2.py":[{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"e0b87e037442e147e99437e0e13e766af2c98540","unresolved":true,"context_lines":[{"line_number":33,"context_line":"    \"extVirtualLinks\": ["},{"line_number":34,"context_line":"        {"},{"line_number":35,"context_line":"            \"id\": \"id_ext_vl_1\","},{"line_number":36,"context_line":"            \"resourceId\": \"res_id_id_ext_vl_1\","},{"line_number":37,"context_line":"            \"extCps\": ["},{"line_number":38,"context_line":"                {"},{"line_number":39,"context_line":"                    \"cpdId\": \"VDU2_CP2\","}],"source_content_type":"text/x-python","patch_set":2,"id":"da9f524e_97eec774","line":36,"range":{"start_line":36,"start_character":27,"end_line":36,"end_character":45},"updated":"2022-01-25 09:59:02.000000000","message":"I think \"res_id_ext_vl_1\" is better.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"a666d995ad265121e686d76eceaab3fe04a11afc","unresolved":false,"context_lines":[{"line_number":33,"context_line":"    \"extVirtualLinks\": ["},{"line_number":34,"context_line":"        {"},{"line_number":35,"context_line":"            \"id\": \"id_ext_vl_1\","},{"line_number":36,"context_line":"            \"resourceId\": \"res_id_id_ext_vl_1\","},{"line_number":37,"context_line":"            \"extCps\": ["},{"line_number":38,"context_line":"                {"},{"line_number":39,"context_line":"                    \"cpdId\": \"VDU2_CP2\","}],"source_content_type":"text/x-python","patch_set":2,"id":"f5db3006_d33037a3","line":36,"range":{"start_line":36,"start_character":27,"end_line":36,"end_character":45},"in_reply_to":"13590604_23bbab65","updated":"2022-01-26 04:55:35.000000000","message":"Done","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"c66096daca2ef214637256dc47e916af004cb7ea","unresolved":true,"context_lines":[{"line_number":33,"context_line":"    \"extVirtualLinks\": ["},{"line_number":34,"context_line":"        {"},{"line_number":35,"context_line":"            \"id\": \"id_ext_vl_1\","},{"line_number":36,"context_line":"            \"resourceId\": \"res_id_id_ext_vl_1\","},{"line_number":37,"context_line":"            \"extCps\": ["},{"line_number":38,"context_line":"                {"},{"line_number":39,"context_line":"                    \"cpdId\": \"VDU2_CP2\","}],"source_content_type":"text/x-python","patch_set":2,"id":"13590604_23bbab65","line":36,"range":{"start_line":36,"start_character":27,"end_line":36,"end_character":45},"in_reply_to":"da9f524e_97eec774","updated":"2022-01-25 23:21:52.000000000","message":"right. I will fix.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"e0b87e037442e147e99437e0e13e766af2c98540","unresolved":true,"context_lines":[{"line_number":415,"context_line":"            self.controller.change_ext_conn, request\u003dself.request, id\u003dinst_id,"},{"line_number":416,"context_line":"            body\u003d_change_ext_conn_req_example)"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"    def test_change_ext_conn_lcmocc_in_progress(self):"},{"line_number":419,"context_line":"        inst_id, _ \u003d self._create_inst_and_lcmocc(\u0027INSTANTIATED\u0027,"},{"line_number":420,"context_line":"            fields.LcmOperationStateType.FAILED_TEMP)"},{"line_number":421,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"5d2d2c8b_11ddc3e3","line":418,"range":{"start_line":418,"start_character":8,"end_line":418,"end_character":47},"updated":"2022-01-25 09:59:02.000000000","message":"Isn\u0027t \"test_change_ext_conn_lcmocc_failed_temp\" more appropriate?","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"c66096daca2ef214637256dc47e916af004cb7ea","unresolved":true,"context_lines":[{"line_number":415,"context_line":"            self.controller.change_ext_conn, request\u003dself.request, id\u003dinst_id,"},{"line_number":416,"context_line":"            body\u003d_change_ext_conn_req_example)"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"    def test_change_ext_conn_lcmocc_in_progress(self):"},{"line_number":419,"context_line":"        inst_id, _ \u003d self._create_inst_and_lcmocc(\u0027INSTANTIATED\u0027,"},{"line_number":420,"context_line":"            fields.LcmOperationStateType.FAILED_TEMP)"},{"line_number":421,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"cebccd8f_9b26b0f4","line":418,"range":{"start_line":418,"start_character":8,"end_line":418,"end_character":47},"in_reply_to":"5d2d2c8b_11ddc3e3","updated":"2022-01-25 23:21:52.000000000","message":"The naming is same as same test of another methods. It tests raising exception in \u0027lcmocc_in_progress()\u0027.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"},{"author":{"_account_id":31072,"name":"Hiroo Kitamura","email":"hiroo.kitamura@ntt-at.co.jp","username":"Hiroo.Kitamura"},"change_message_id":"cf97bba0a1d931cf9977e415a4e535f5074d3ae3","unresolved":false,"context_lines":[{"line_number":415,"context_line":"            self.controller.change_ext_conn, request\u003dself.request, id\u003dinst_id,"},{"line_number":416,"context_line":"            body\u003d_change_ext_conn_req_example)"},{"line_number":417,"context_line":""},{"line_number":418,"context_line":"    def test_change_ext_conn_lcmocc_in_progress(self):"},{"line_number":419,"context_line":"        inst_id, _ \u003d self._create_inst_and_lcmocc(\u0027INSTANTIATED\u0027,"},{"line_number":420,"context_line":"            fields.LcmOperationStateType.FAILED_TEMP)"},{"line_number":421,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"2c691fc6_8debca99","line":418,"range":{"start_line":418,"start_character":8,"end_line":418,"end_character":47},"in_reply_to":"cebccd8f_9b26b0f4","updated":"2022-01-26 00:31:11.000000000","message":"Okay, I see.","commit_id":"12a373c9971b89ee2e82c1d01722dadf47db08de"}],"tacker/tests/unit/sol_refactored/infra_drivers/openstack/test_openstack.py":[{"author":{"_account_id":31668},"change_message_id":"5b24ee938d8a4107a874eb07390db1a847fd378f","unresolved":true,"context_lines":[{"line_number":141,"context_line":"    }"},{"line_number":142,"context_line":"}"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"# ChangeExtVnfConnectivityRequest exemple"},{"line_number":145,"context_line":"_change_ext_conn_req_example \u003d {"},{"line_number":146,"context_line":"    \"extVirtualLinks\": ["},{"line_number":147,"context_line":"        {"}],"source_content_type":"text/x-python","patch_set":7,"id":"be3e235f_0aef8e41","line":144,"range":{"start_line":144,"start_character":34,"end_line":144,"end_character":41},"updated":"2022-02-07 05:39:32.000000000","message":"typo: exemple -\u003e example","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"bd6833d38dbd9e46655e3d1a1403bc3893fcba70","unresolved":true,"context_lines":[{"line_number":141,"context_line":"    }"},{"line_number":142,"context_line":"}"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"# ChangeExtVnfConnectivityRequest exemple"},{"line_number":145,"context_line":"_change_ext_conn_req_example \u003d {"},{"line_number":146,"context_line":"    \"extVirtualLinks\": ["},{"line_number":147,"context_line":"        {"}],"source_content_type":"text/x-python","patch_set":7,"id":"eca2fd29_741738b0","line":144,"range":{"start_line":144,"start_character":34,"end_line":144,"end_character":41},"in_reply_to":"be3e235f_0aef8e41","updated":"2022-02-07 23:12:00.000000000","message":"I will fix.","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":31668},"change_message_id":"9ce22a5df318c9b548955625677a2947005963ec","unresolved":false,"context_lines":[{"line_number":141,"context_line":"    }"},{"line_number":142,"context_line":"}"},{"line_number":143,"context_line":""},{"line_number":144,"context_line":"# ChangeExtVnfConnectivityRequest exemple"},{"line_number":145,"context_line":"_change_ext_conn_req_example \u003d {"},{"line_number":146,"context_line":"    \"extVirtualLinks\": ["},{"line_number":147,"context_line":"        {"}],"source_content_type":"text/x-python","patch_set":7,"id":"661a6ac9_31de13a8","line":144,"range":{"start_line":144,"start_character":34,"end_line":144,"end_character":41},"in_reply_to":"eca2fd29_741738b0","updated":"2022-02-17 01:20:10.000000000","message":"Done","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":31668},"change_message_id":"5b24ee938d8a4107a874eb07390db1a847fd378f","unresolved":true,"context_lines":[{"line_number":776,"context_line":"    }"},{"line_number":777,"context_line":"]"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"# heat resoueces example for other than change_ext_conn"},{"line_number":780,"context_line":"_heat_reses_example \u003d ("},{"line_number":781,"context_line":"    _heat_reses_example_base + _heat_reses_example_cps_before)"},{"line_number":782,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"6b2174a4_da9e10c3","line":779,"range":{"start_line":779,"start_character":7,"end_line":779,"end_character":16},"updated":"2022-02-07 05:39:32.000000000","message":"typo: resoueces -\u003e resources","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"bd6833d38dbd9e46655e3d1a1403bc3893fcba70","unresolved":true,"context_lines":[{"line_number":776,"context_line":"    }"},{"line_number":777,"context_line":"]"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"# heat resoueces example for other than change_ext_conn"},{"line_number":780,"context_line":"_heat_reses_example \u003d ("},{"line_number":781,"context_line":"    _heat_reses_example_base + _heat_reses_example_cps_before)"},{"line_number":782,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"a5705644_d20871a8","line":779,"range":{"start_line":779,"start_character":7,"end_line":779,"end_character":16},"in_reply_to":"6b2174a4_da9e10c3","updated":"2022-02-07 23:12:00.000000000","message":"I will fix.","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":31668},"change_message_id":"9ce22a5df318c9b548955625677a2947005963ec","unresolved":false,"context_lines":[{"line_number":776,"context_line":"    }"},{"line_number":777,"context_line":"]"},{"line_number":778,"context_line":""},{"line_number":779,"context_line":"# heat resoueces example for other than change_ext_conn"},{"line_number":780,"context_line":"_heat_reses_example \u003d ("},{"line_number":781,"context_line":"    _heat_reses_example_base + _heat_reses_example_cps_before)"},{"line_number":782,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"4cde9bf7_84333101","line":779,"range":{"start_line":779,"start_character":7,"end_line":779,"end_character":16},"in_reply_to":"a5705644_d20871a8","updated":"2022-02-17 01:20:10.000000000","message":"Done","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":31668},"change_message_id":"5b24ee938d8a4107a874eb07390db1a847fd378f","unresolved":true,"context_lines":[{"line_number":780,"context_line":"_heat_reses_example \u003d ("},{"line_number":781,"context_line":"    _heat_reses_example_base + _heat_reses_example_cps_before)"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"# heat resoueces example after executing change_ext_conn"},{"line_number":784,"context_line":"_heat_reses_example_change_ext_conn \u003d ("},{"line_number":785,"context_line":"    _heat_reses_example_base + _heat_reses_example_cps_after)"},{"line_number":786,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"13082c1f_5bc31721","line":783,"range":{"start_line":783,"start_character":7,"end_line":783,"end_character":16},"updated":"2022-02-07 05:39:32.000000000","message":"ditto","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"},{"author":{"_account_id":31668},"change_message_id":"9ce22a5df318c9b548955625677a2947005963ec","unresolved":false,"context_lines":[{"line_number":780,"context_line":"_heat_reses_example \u003d ("},{"line_number":781,"context_line":"    _heat_reses_example_base + _heat_reses_example_cps_before)"},{"line_number":782,"context_line":""},{"line_number":783,"context_line":"# heat resoueces example after executing change_ext_conn"},{"line_number":784,"context_line":"_heat_reses_example_change_ext_conn \u003d ("},{"line_number":785,"context_line":"    _heat_reses_example_base + _heat_reses_example_cps_after)"},{"line_number":786,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"f676cf24_84824f7f","line":783,"range":{"start_line":783,"start_character":7,"end_line":783,"end_character":16},"in_reply_to":"13082c1f_5bc31721","updated":"2022-02-17 01:20:10.000000000","message":"Done","commit_id":"48c71ed6d928f08b374912b57b47d6973711e6b6"}]}
