)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"f535e1164242ea1738a2a109a602119b256bd183","unresolved":true,"context_lines":[{"line_number":11,"context_line":"* Load LCM interface from vnfd file"},{"line_number":12,"context_line":"* Call LCM methods from vnflcm_driver"},{"line_number":13,"context_line":"* Fix unitentional mgmt_calls in vnflcm_driver._scale_vnf_pre"},{"line_number":14,"context_line":"* Remove 3rd party driver support from Victoria release"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Note:"},{"line_number":17,"context_line":"* For UT, sqlalchemy is used, which calls functions in pymysql.py,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"665098e3_9f3dee4c","line":14,"range":{"start_line":14,"start_character":2,"end_line":14,"end_character":55},"updated":"2021-02-05 04:35:54.000000000","message":"* It\u0027s strange without saying background of the decision. The point is this patch makes a breakage of a compatibility. 3rd party driver is just one of the examples.\n\n* Why don\u0027t you describe it in the next \"Note\" section?","commit_id":"e96a6b700d9a0eb5fc0e755a26831669194d610b"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"c5d460e1bfbc5916cbe9afabd4f212efdec1cdb6","unresolved":true,"context_lines":[{"line_number":11,"context_line":"* Load LCM interface from vnfd file"},{"line_number":12,"context_line":"* Call LCM methods from vnflcm_driver"},{"line_number":13,"context_line":"* Fix unitentional mgmt_calls in vnflcm_driver._scale_vnf_pre"},{"line_number":14,"context_line":"* Remove 3rd party driver support from Victoria release"},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"Note:"},{"line_number":17,"context_line":"* For UT, sqlalchemy is used, which calls functions in pymysql.py,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":21,"id":"b6cfeba3_1257514d","line":14,"range":{"start_line":14,"start_character":2,"end_line":14,"end_character":55},"in_reply_to":"665098e3_9f3dee4c","updated":"2021-02-09 00:36:17.000000000","message":"Thanks for advise! I have updated commit message to move backward incompatibility note to Note section. (patch updated last night is not including decision background, I added it in the latest patch)\n\nAlso an \"test-release-openstack\" check error seems happening in Zuul check, while installing \"cryptography \u003e\u003d2.0\" in pip.\nhttps://zuul.opendev.org/t/openstack/build/cdda697fd4f34ddda447691f6996e534\n\nrecheck seems not solve this problem.. should we upgrade pip version in Zuul test environment? since there is a message in error log:\n\"Upgrade to the latest pip and try again. This will fix errors for most users.\"","commit_id":"e96a6b700d9a0eb5fc0e755a26831669194d610b"}],"requirements.txt":[{"author":{"_account_id":27880,"name":"Yoshito Ito","email":"yoshito.itou.dr@hco.ntt.co.jp","username":"yoshito-ito"},"change_message_id":"934ebe7c9865ccc3c724b0a48b0288d912b98526","unresolved":true,"context_lines":[{"line_number":50,"context_line":"setuptools!\u003d24.0.0,!\u003d34.0.0,!\u003d34.0.1,!\u003d34.0.2,!\u003d34.0.3,!\u003d34.1.0,!\u003d34.1.1,!\u003d34.2.0,!\u003d34.3.0,!\u003d34.3.1,!\u003d34.3.2,!\u003d36.2.0,\u003e\u003d21.0.0 # PSF/ZPL"},{"line_number":51,"context_line":"tooz\u003e\u003d1.58.0 # Apache-2.0"},{"line_number":52,"context_line":"PyYAML\u003e\u003d5.1 # MIT"},{"line_number":53,"context_line":"PyMySQL\u003e\u003d0.10.1 # MIT"},{"line_number":54,"context_line":""},{"line_number":55,"context_line":"# Glance Store"},{"line_number":56,"context_line":"glance-store\u003e\u003d2.4.0 # Apache-2.0"}],"source_content_type":"text/plain","patch_set":12,"id":"461ec9ad_18513129","line":53,"range":{"start_line":53,"start_character":0,"end_line":53,"end_character":15},"updated":"2021-01-15 01:26:22.000000000","message":"Can you describe in the commit message why this is needed?","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"}],"tacker/vnflcm/vnflcm_driver.py":[{"author":{"_account_id":27880,"name":"Yoshito Ito","email":"yoshito.itou.dr@hco.ntt.co.jp","username":"yoshito-ito"},"change_message_id":"934ebe7c9865ccc3c724b0a48b0288d912b98526","unresolved":true,"context_lines":[{"line_number":307,"context_line":"        self._vnfm_plugin \u003d manager.TackerManager.get_service_plugins()[\u0027VNFM\u0027]"},{"line_number":308,"context_line":"        self._vnf_manager \u003d driver_manager.DriverManager("},{"line_number":309,"context_line":"            \u0027tacker.tacker.vnfm.drivers\u0027,"},{"line_number":310,"context_line":"            cfg.CONF.tacker.vnflcm_infra_driver)"},{"line_number":311,"context_line":"        self._mgmt_manager \u003d driver_manager.DriverManager("},{"line_number":312,"context_line":"            \u0027tacker.tacker.mgmt.drivers\u0027, cfg.CONF.tacker.vnflcm_mgmt_driver)"},{"line_number":313,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"8ac3b3d5_6bcfc6fa","line":310,"range":{"start_line":310,"start_character":12,"end_line":310,"end_character":47},"updated":"2021-01-15 01:26:22.000000000","message":"This change should be mentioned in the commit message because this is an additional change to correct the config management. The previous implementation of ``cfg.CONF.tacker.infra_driver`` depends on the default config in legacy ``VNFMPlugin`` class in tacker/vnfm/plugin.py, so we need to fix this here.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"29b1b1b67fa9c44b47ca9a1a1f677927d58419ba","unresolved":true,"context_lines":[{"line_number":405,"context_line":"                    id\u003dvnf_instance.id,"},{"line_number":406,"context_line":"                    error\u003dencodeutils.exception_to_unicode(exp))"},{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def _load_vnf_interfaces(self, context, vnf_instance, vnfd_dict):"},{"line_number":409,"context_line":"        VNF_value \u003d vnfd_dict.get(\u0027topology_template\u0027).get("},{"line_number":410,"context_line":"            \u0027node_templates\u0027).get(\u0027VNF\u0027)"},{"line_number":411,"context_line":"        vnflcm_interfaces \u003d {"}],"source_content_type":"text/x-python","patch_set":12,"id":"e5178147_64279781","line":408,"updated":"2021-01-15 05:45:58.000000000","message":"I don\u0027t think it is necessary to handle all method at all time.\ndef _load_vnf_interface(self, context, method_name, vnf_instnce, vnfd_dict):\n\nin addition, is context used ?","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"7b53cbb9be355c2de099fb87ff45fdd4b376010c","unresolved":true,"context_lines":[{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def _load_vnf_interfaces(self, context, vnf_instance, vnfd_dict):"},{"line_number":409,"context_line":"        VNF_value \u003d vnfd_dict.get(\u0027topology_template\u0027).get("},{"line_number":410,"context_line":"            \u0027node_templates\u0027).get(\u0027VNF\u0027)"},{"line_number":411,"context_line":"        vnflcm_interfaces \u003d {"},{"line_number":412,"context_line":"            \"instantiate_start\": \"vnflcm_noop\","},{"line_number":413,"context_line":"            \"instantiate_end\": \"vnflcm_noop\","}],"source_content_type":"text/x-python","patch_set":12,"id":"4e94fffd_5fc3e79a","line":410,"updated":"2021-01-15 04:02:02.000000000","message":"if it is sure a key exits, use [key] instead of get(key).\nvnfd_dict[\u0027topology_template\u0027][\u0027node_templates\u0027][\u0027VNF\u0027]","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"08725eb628116087163a980c9073e0ca97b6c0c3","unresolved":true,"context_lines":[{"line_number":407,"context_line":""},{"line_number":408,"context_line":"    def _load_vnf_interfaces(self, context, vnf_instance, vnfd_dict):"},{"line_number":409,"context_line":"        VNF_value \u003d vnfd_dict.get(\u0027topology_template\u0027).get("},{"line_number":410,"context_line":"            \u0027node_templates\u0027).get(\u0027VNF\u0027)"},{"line_number":411,"context_line":"        vnflcm_interfaces \u003d {"},{"line_number":412,"context_line":"            \"instantiate_start\": \"vnflcm_noop\","},{"line_number":413,"context_line":"            \"instantiate_end\": \"vnflcm_noop\","}],"source_content_type":"text/x-python","patch_set":12,"id":"1376e14a_896d2269","line":410,"in_reply_to":"4e94fffd_5fc3e79a","updated":"2021-01-18 08:27:43.000000000","message":"Thanks for comment!I will modify it in next patch.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"7b53cbb9be355c2de099fb87ff45fdd4b376010c","unresolved":true,"context_lines":[{"line_number":418,"context_line":"            \"heal_start\": \"vnflcm_noop\","},{"line_number":419,"context_line":"            \"heal_end\": \"vnflcm_noop\""},{"line_number":420,"context_line":"        }"},{"line_number":421,"context_line":"        interfaces_vnflcm_value \u003d VNF_value.get(\u0027interfaces\u0027).get(\u0027Vnflcm\u0027)"},{"line_number":422,"context_line":"        if not interfaces_vnflcm_value:"},{"line_number":423,"context_line":"            return vnflcm_interfaces"},{"line_number":424,"context_line":"        artifacts_value \u003d VNF_value.get(\u0027artifacts\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"a4e2f53a_5b93b696","line":421,"updated":"2021-01-15 04:02:02.000000000","message":"are you sure VNF_value is not None ?","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"08725eb628116087163a980c9073e0ca97b6c0c3","unresolved":true,"context_lines":[{"line_number":418,"context_line":"            \"heal_start\": \"vnflcm_noop\","},{"line_number":419,"context_line":"            \"heal_end\": \"vnflcm_noop\""},{"line_number":420,"context_line":"        }"},{"line_number":421,"context_line":"        interfaces_vnflcm_value \u003d VNF_value.get(\u0027interfaces\u0027).get(\u0027Vnflcm\u0027)"},{"line_number":422,"context_line":"        if not interfaces_vnflcm_value:"},{"line_number":423,"context_line":"            return vnflcm_interfaces"},{"line_number":424,"context_line":"        artifacts_value \u003d VNF_value.get(\u0027artifacts\u0027)"}],"source_content_type":"text/x-python","patch_set":12,"id":"1c566cc3_003b49da","line":421,"in_reply_to":"a4e2f53a_5b93b696","updated":"2021-01-18 08:27:43.000000000","message":"Thanks for comment!\nI\u0027m not sure.So I will change it to \ninterfaces_vnflcm_value \u003d VNF_value.get(\u0027interfaces\u0027, {}).get(\u0027Vnflcm\u0027, {})\nin next patch.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"7b53cbb9be355c2de099fb87ff45fdd4b376010c","unresolved":true,"context_lines":[{"line_number":431,"context_line":"        conf_parser \u003d configparser.ConfigParser()"},{"line_number":432,"context_line":"        setup_cfg_path \u003d os.path.abspath("},{"line_number":433,"context_line":"            os.path.join(os.path.dirname(__file__), \u0027../../setup.cfg\u0027))"},{"line_number":434,"context_line":"        conf_parser.read(setup_cfg_path)"},{"line_number":435,"context_line":"        driver_names_str \u003d conf_parser.get("},{"line_number":436,"context_line":"            \u0027entry_points\u0027, \u0027tacker.tacker.mgmt.drivers\u0027)"},{"line_number":437,"context_line":"        driver_names_list \u003d [v for v in driver_names_str.split(\u0027\\n\u0027) if v]"}],"source_content_type":"text/x-python","patch_set":12,"id":"7002da6e_24f6bf73","line":434,"updated":"2021-01-15 04:02:02.000000000","message":"it is strange to use setup.cfg and should not be used from here. the design is wrong.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"29b1b1b67fa9c44b47ca9a1a1f677927d58419ba","unresolved":true,"context_lines":[{"line_number":432,"context_line":"        setup_cfg_path \u003d os.path.abspath("},{"line_number":433,"context_line":"            os.path.join(os.path.dirname(__file__), \u0027../../setup.cfg\u0027))"},{"line_number":434,"context_line":"        conf_parser.read(setup_cfg_path)"},{"line_number":435,"context_line":"        driver_names_str \u003d conf_parser.get("},{"line_number":436,"context_line":"            \u0027entry_points\u0027, \u0027tacker.tacker.mgmt.drivers\u0027)"},{"line_number":437,"context_line":"        driver_names_list \u003d [v for v in driver_names_str.split(\u0027\\n\u0027) if v]"},{"line_number":438,"context_line":"        for driver_name in driver_names_list:"}],"source_content_type":"text/x-python","patch_set":12,"id":"3b5a929c_94c25d88","line":435,"updated":"2021-01-15 05:45:58.000000000","message":"L435 - L493 code is too dirty to read.\nI think it is better to divide the flowing two phase.\n1) check implementation and atrifacts exist in setup.cfg\n2) check file content","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"9b7c351eea67cb29afa2afad5a20e901c2cf89c1","unresolved":true,"context_lines":[{"line_number":432,"context_line":"        setup_cfg_path \u003d os.path.abspath("},{"line_number":433,"context_line":"            os.path.join(os.path.dirname(__file__), \u0027../../setup.cfg\u0027))"},{"line_number":434,"context_line":"        conf_parser.read(setup_cfg_path)"},{"line_number":435,"context_line":"        driver_names_str \u003d conf_parser.get("},{"line_number":436,"context_line":"            \u0027entry_points\u0027, \u0027tacker.tacker.mgmt.drivers\u0027)"},{"line_number":437,"context_line":"        driver_names_list \u003d [v for v in driver_names_str.split(\u0027\\n\u0027) if v]"},{"line_number":438,"context_line":"        for driver_name in driver_names_list:"}],"source_content_type":"text/x-python","patch_set":12,"id":"cc3fcbb4_a5dfdc5c","line":435,"in_reply_to":"3b5a929c_94c25d88","updated":"2021-01-18 05:49:28.000000000","message":"I will fix it in next patch.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"d4c58cb10ab3090c165962bda95e35c3acbccd42","unresolved":true,"context_lines":[{"line_number":439,"context_line":"            driver_name_list \u003d driver_name.split(\u0027 \u003d \u0027)"},{"line_number":440,"context_line":"            tacker_mgmt_driver_file_dict[driver_name_list[0]] \u003d \\"},{"line_number":441,"context_line":"                driver_name_list[1]"},{"line_number":442,"context_line":"        for arti_key, arti_value in artifacts_value.items():"},{"line_number":443,"context_line":"            if arti_key in tacker_mgmt_driver_file_dict.keys():"},{"line_number":444,"context_line":"                pkg_driver_py_name \u003d arti_value.get(\u0027file\u0027).split(\u0027/\u0027)[-1]"},{"line_number":445,"context_line":"                tacker_driver_py_name \u003d tacker_mgmt_driver_file_dict.get("}],"source_content_type":"text/x-python","patch_set":12,"id":"361519e1_539800c3","line":442,"range":{"start_line":442,"start_character":0,"end_line":442,"end_character":60},"updated":"2021-01-15 11:46:30.000000000","message":"Regarding arti_key, arti_value, abspath, hashobj, since it is not a general-purpose abbreviation, why not omit it and use artifact_key, artifact_value, abstract_path, hash_object/hash_obj instead?","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"9b7c351eea67cb29afa2afad5a20e901c2cf89c1","unresolved":true,"context_lines":[{"line_number":439,"context_line":"            driver_name_list \u003d driver_name.split(\u0027 \u003d \u0027)"},{"line_number":440,"context_line":"            tacker_mgmt_driver_file_dict[driver_name_list[0]] \u003d \\"},{"line_number":441,"context_line":"                driver_name_list[1]"},{"line_number":442,"context_line":"        for arti_key, arti_value in artifacts_value.items():"},{"line_number":443,"context_line":"            if arti_key in tacker_mgmt_driver_file_dict.keys():"},{"line_number":444,"context_line":"                pkg_driver_py_name \u003d arti_value.get(\u0027file\u0027).split(\u0027/\u0027)[-1]"},{"line_number":445,"context_line":"                tacker_driver_py_name \u003d tacker_mgmt_driver_file_dict.get("}],"source_content_type":"text/x-python","patch_set":12,"id":"4b6f82ae_79cb1c8b","line":442,"range":{"start_line":442,"start_character":0,"end_line":442,"end_character":60},"in_reply_to":"361519e1_539800c3","updated":"2021-01-18 05:49:28.000000000","message":"I will modify them in next patch","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"d4c58cb10ab3090c165962bda95e35c3acbccd42","unresolved":true,"context_lines":[{"line_number":456,"context_line":"                    f.close()"},{"line_number":457,"context_line":"                    if arti_key not in tacker_mgmt_driver_hash_dict.keys():"},{"line_number":458,"context_line":"                        tacker_mgmt_driver_hash_dict[arti_key] \u003d hashobj.\\"},{"line_number":459,"context_line":"                            hexdigest()"},{"line_number":460,"context_line":"                else:"},{"line_number":461,"context_line":"                    LOG.error(\u0027The {} specified in the VNFD \u0027"},{"line_number":462,"context_line":"                              \u0027is inconsistent with the MgmtDriver in \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"60e37e1b_79cc5dde","line":459,"range":{"start_line":459,"start_character":19,"end_line":459,"end_character":39},"updated":"2021-01-15 11:46:30.000000000","message":"Would it be possible to change hexdigest to hex_digest(snake_case)?","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"9b7c351eea67cb29afa2afad5a20e901c2cf89c1","unresolved":true,"context_lines":[{"line_number":456,"context_line":"                    f.close()"},{"line_number":457,"context_line":"                    if arti_key not in tacker_mgmt_driver_hash_dict.keys():"},{"line_number":458,"context_line":"                        tacker_mgmt_driver_hash_dict[arti_key] \u003d hashobj.\\"},{"line_number":459,"context_line":"                            hexdigest()"},{"line_number":460,"context_line":"                else:"},{"line_number":461,"context_line":"                    LOG.error(\u0027The {} specified in the VNFD \u0027"},{"line_number":462,"context_line":"                              \u0027is inconsistent with the MgmtDriver in \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"8416c70a_ff299fb0","line":459,"range":{"start_line":459,"start_character":19,"end_line":459,"end_character":39},"in_reply_to":"60e37e1b_79cc5dde","updated":"2021-01-18 05:49:28.000000000","message":"The hexdigest() is the default method of the hashlib module. We cannot modify its name.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"dc40d02166a7323068fa1d96abd3436dda1b2fbf","unresolved":false,"context_lines":[{"line_number":456,"context_line":"                    f.close()"},{"line_number":457,"context_line":"                    if arti_key not in tacker_mgmt_driver_hash_dict.keys():"},{"line_number":458,"context_line":"                        tacker_mgmt_driver_hash_dict[arti_key] \u003d hashobj.\\"},{"line_number":459,"context_line":"                            hexdigest()"},{"line_number":460,"context_line":"                else:"},{"line_number":461,"context_line":"                    LOG.error(\u0027The {} specified in the VNFD \u0027"},{"line_number":462,"context_line":"                              \u0027is inconsistent with the MgmtDriver in \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"1472deae_4555eb20","line":459,"range":{"start_line":459,"start_character":19,"end_line":459,"end_character":39},"in_reply_to":"8416c70a_ff299fb0","updated":"2021-02-03 12:47:54.000000000","message":"I understand.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":32219,"name":"Aldinson C. Esto","email":"esto.aln@nec.com","username":"esto-aln"},"change_message_id":"dc40d02166a7323068fa1d96abd3436dda1b2fbf","unresolved":false,"context_lines":[{"line_number":456,"context_line":"                    f.close()"},{"line_number":457,"context_line":"                    if arti_key not in tacker_mgmt_driver_hash_dict.keys():"},{"line_number":458,"context_line":"                        tacker_mgmt_driver_hash_dict[arti_key] \u003d hashobj.\\"},{"line_number":459,"context_line":"                            hexdigest()"},{"line_number":460,"context_line":"                else:"},{"line_number":461,"context_line":"                    LOG.error(\u0027The {} specified in the VNFD \u0027"},{"line_number":462,"context_line":"                              \u0027is inconsistent with the MgmtDriver in \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"b076fe92_f061278b","line":459,"range":{"start_line":459,"start_character":19,"end_line":459,"end_character":39},"in_reply_to":"8416c70a_ff299fb0","updated":"2021-02-03 12:47:54.000000000","message":"I understand.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":27880,"name":"Yoshito Ito","email":"yoshito.itou.dr@hco.ntt.co.jp","username":"yoshito-ito"},"change_message_id":"934ebe7c9865ccc3c724b0a48b0288d912b98526","unresolved":true,"context_lines":[{"line_number":770,"context_line":"                vnf_instance.instantiated_vnf_info.flavour_id)"},{"line_number":771,"context_line":"            vnflcm_interfaces \u003d self._load_vnf_interfaces("},{"line_number":772,"context_line":"                context, vnf_instance, vnfd_dict)"},{"line_number":773,"context_line":"            vnf_info[\u0027vnfd\u0027][\u0027mgmt_driver\u0027] \u003d \\"},{"line_number":774,"context_line":"                vnflcm_interfaces.get(\u0027scale_start\u0027)"},{"line_number":775,"context_line":"            vnf_info[\u0027action\u0027] \u003d \u0027in\u0027"},{"line_number":776,"context_line":"            scale_id_list, scale_name_list, grp_id, res_num \u003d \\"},{"line_number":777,"context_line":"                self._vnf_manager.invoke("}],"source_content_type":"text/x-python","patch_set":12,"id":"48b265a8_fba261b8","line":774,"range":{"start_line":773,"start_character":12,"end_line":774,"end_character":52},"updated":"2021-01-15 01:26:22.000000000","message":"I think we don\u0027t need ``vnf_info[\u0027vnfd\u0027][\u0027mgmt_driver\u0027]`` because it seems never be used in the logic to execute MgmtDriver.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"9b7c351eea67cb29afa2afad5a20e901c2cf89c1","unresolved":true,"context_lines":[{"line_number":770,"context_line":"                vnf_instance.instantiated_vnf_info.flavour_id)"},{"line_number":771,"context_line":"            vnflcm_interfaces \u003d self._load_vnf_interfaces("},{"line_number":772,"context_line":"                context, vnf_instance, vnfd_dict)"},{"line_number":773,"context_line":"            vnf_info[\u0027vnfd\u0027][\u0027mgmt_driver\u0027] \u003d \\"},{"line_number":774,"context_line":"                vnflcm_interfaces.get(\u0027scale_start\u0027)"},{"line_number":775,"context_line":"            vnf_info[\u0027action\u0027] \u003d \u0027in\u0027"},{"line_number":776,"context_line":"            scale_id_list, scale_name_list, grp_id, res_num \u003d \\"},{"line_number":777,"context_line":"                self._vnf_manager.invoke("}],"source_content_type":"text/x-python","patch_set":12,"id":"3c1ba5dd_1c6f125f","line":774,"range":{"start_line":773,"start_character":12,"end_line":774,"end_character":52},"in_reply_to":"48b265a8_fba261b8","updated":"2021-01-18 05:49:28.000000000","message":"I will fix it in next patch","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":27880,"name":"Yoshito Ito","email":"yoshito.itou.dr@hco.ntt.co.jp","username":"yoshito-ito"},"change_message_id":"934ebe7c9865ccc3c724b0a48b0288d912b98526","unresolved":true,"context_lines":[{"line_number":790,"context_line":"            vnf_info[\u0027res_num\u0027] \u003d res_num"},{"line_number":791,"context_line":""},{"line_number":792,"context_line":"            # mgmt_driver pre"},{"line_number":793,"context_line":"            if len(scale_id_list) !\u003d 0 and vnf_info[\u0027vnfd\u0027].get(\u0027mgmt_driver\u0027):"},{"line_number":794,"context_line":"                kwargs \u003d {\u0027scale_name_list\u0027: scale_name_list,"},{"line_number":795,"context_line":"                          \u0027scale_vnf_request\u0027: scale_vnf_request}"},{"line_number":796,"context_line":"                self._mgmt_manager.invoke("}],"source_content_type":"text/x-python","patch_set":12,"id":"7b82d028_f9c4ed8c","line":793,"range":{"start_line":793,"start_character":43,"end_line":793,"end_character":78},"updated":"2021-01-15 01:26:22.000000000","message":"We don\u0027t need this condition because vnflcm_interfaces always has default MgmtDriver to be \"vnflcm_noop\" in vnflcm_interfaces.get(\u0027scale_start\u0027).","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"9b7c351eea67cb29afa2afad5a20e901c2cf89c1","unresolved":true,"context_lines":[{"line_number":790,"context_line":"            vnf_info[\u0027res_num\u0027] \u003d res_num"},{"line_number":791,"context_line":""},{"line_number":792,"context_line":"            # mgmt_driver pre"},{"line_number":793,"context_line":"            if len(scale_id_list) !\u003d 0 and vnf_info[\u0027vnfd\u0027].get(\u0027mgmt_driver\u0027):"},{"line_number":794,"context_line":"                kwargs \u003d {\u0027scale_name_list\u0027: scale_name_list,"},{"line_number":795,"context_line":"                          \u0027scale_vnf_request\u0027: scale_vnf_request}"},{"line_number":796,"context_line":"                self._mgmt_manager.invoke("}],"source_content_type":"text/x-python","patch_set":12,"id":"10141531_3ba42c67","line":793,"range":{"start_line":793,"start_character":43,"end_line":793,"end_character":78},"in_reply_to":"7b82d028_f9c4ed8c","updated":"2021-01-18 05:49:28.000000000","message":"I will fix it in next patch.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":27880,"name":"Yoshito Ito","email":"yoshito.itou.dr@hco.ntt.co.jp","username":"yoshito-ito"},"change_message_id":"934ebe7c9865ccc3c724b0a48b0288d912b98526","unresolved":true,"context_lines":[{"line_number":834,"context_line":"                vnf_instance.instantiated_vnf_info.flavour_id)"},{"line_number":835,"context_line":"            vnflcm_interfaces \u003d self._load_vnf_interfaces("},{"line_number":836,"context_line":"                context, vnf_instance, vnfd_dict)"},{"line_number":837,"context_line":"            vnf_info[\u0027vnfd\u0027][\u0027mgmt_driver\u0027] \u003d \\"},{"line_number":838,"context_line":"                vnflcm_interfaces.get(\u0027scale_end\u0027)"},{"line_number":839,"context_line":"            scale_id_after \u003d self._vnf_manager.invoke("},{"line_number":840,"context_line":"                vim_connection_info.vim_type,"},{"line_number":841,"context_line":"                \u0027get_scale_ids\u0027,"}],"source_content_type":"text/x-python","patch_set":12,"id":"8ef4f708_03a1611d","line":838,"range":{"start_line":837,"start_character":12,"end_line":838,"end_character":50},"updated":"2021-01-15 01:26:22.000000000","message":"ditto","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":27880,"name":"Yoshito Ito","email":"yoshito.itou.dr@hco.ntt.co.jp","username":"yoshito-ito"},"change_message_id":"934ebe7c9865ccc3c724b0a48b0288d912b98526","unresolved":true,"context_lines":[{"line_number":848,"context_line":"            id_list \u003d []"},{"line_number":849,"context_line":"            id_list \u003d list(set(scale_id_after) - set(scale_id_list))"},{"line_number":850,"context_line":"            vnf_info[\u0027res_num\u0027] \u003d len(scale_id_after)"},{"line_number":851,"context_line":"            if len(id_list) !\u003d 0 and vnf_info[\u0027vnfd\u0027].get(\u0027mgmt_driver\u0027):"},{"line_number":852,"context_line":"                kwargs \u003d {\u0027scale_out_id_list\u0027: id_list,"},{"line_number":853,"context_line":"                          \u0027scale_vnf_request\u0027: scale_vnf_request}"},{"line_number":854,"context_line":"                self._mgmt_manager.invoke("}],"source_content_type":"text/x-python","patch_set":12,"id":"2c7a3584_e8ced889","line":851,"range":{"start_line":851,"start_character":37,"end_line":851,"end_character":72},"updated":"2021-01-15 01:26:22.000000000","message":"ditto","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":27880,"name":"Yoshito Ito","email":"yoshito.itou.dr@hco.ntt.co.jp","username":"yoshito-ito"},"change_message_id":"934ebe7c9865ccc3c724b0a48b0288d912b98526","unresolved":true,"context_lines":[{"line_number":1365,"context_line":"                    vnf_instance.instantiated_vnf_info.flavour_id)"},{"line_number":1366,"context_line":"                vnflcm_interfaces \u003d self._load_vnf_interfaces("},{"line_number":1367,"context_line":"                    context, vnf_instance, vnfd_dict)"},{"line_number":1368,"context_line":"                vnf_info[\u0027vnfd\u0027][\u0027mgmt_driver\u0027] \u003d \\"},{"line_number":1369,"context_line":"                    vnflcm_interfaces.get(\u0027scale_start\u0027)"},{"line_number":1370,"context_line":"                vnf_info[\u0027action\u0027] \u003d \u0027in\u0027"},{"line_number":1371,"context_line":"                if len(scale_id_list) !\u003d 0 and vnf_info[\u0027vnfd\u0027].get("},{"line_number":1372,"context_line":"                        \u0027mgmt_driver\u0027):"}],"source_content_type":"text/x-python","patch_set":12,"id":"4c248675_dd3e4bb3","line":1369,"range":{"start_line":1368,"start_character":16,"end_line":1369,"end_character":56},"updated":"2021-01-15 01:26:22.000000000","message":"ditto","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":27880,"name":"Yoshito Ito","email":"yoshito.itou.dr@hco.ntt.co.jp","username":"yoshito-ito"},"change_message_id":"934ebe7c9865ccc3c724b0a48b0288d912b98526","unresolved":true,"context_lines":[{"line_number":1368,"context_line":"                vnf_info[\u0027vnfd\u0027][\u0027mgmt_driver\u0027] \u003d \\"},{"line_number":1369,"context_line":"                    vnflcm_interfaces.get(\u0027scale_start\u0027)"},{"line_number":1370,"context_line":"                vnf_info[\u0027action\u0027] \u003d \u0027in\u0027"},{"line_number":1371,"context_line":"                if len(scale_id_list) !\u003d 0 and vnf_info[\u0027vnfd\u0027].get("},{"line_number":1372,"context_line":"                        \u0027mgmt_driver\u0027):"},{"line_number":1373,"context_line":"                    kwargs \u003d {\u0027scale_name_list\u0027: scale_name_list,"},{"line_number":1374,"context_line":"                              \u0027scale_vnf_request\u0027: scale_vnf_request}"},{"line_number":1375,"context_line":"                    self._mgmt_manager.invoke("}],"source_content_type":"text/x-python","patch_set":12,"id":"37fec07f_2b34c9c4","line":1372,"range":{"start_line":1371,"start_character":47,"end_line":1372,"end_character":39},"updated":"2021-01-15 01:26:22.000000000","message":"ditto","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":27880,"name":"Yoshito Ito","email":"yoshito.itou.dr@hco.ntt.co.jp","username":"yoshito-ito"},"change_message_id":"934ebe7c9865ccc3c724b0a48b0288d912b98526","unresolved":true,"context_lines":[{"line_number":1385,"context_line":"                    vnf_instance.instantiated_vnf_info.flavour_id)"},{"line_number":1386,"context_line":"                vnflcm_interfaces \u003d self._load_vnf_interfaces("},{"line_number":1387,"context_line":"                    context, vnf_instance, vnfd_dict)"},{"line_number":1388,"context_line":"                vnf_info[\u0027vnfd\u0027][\u0027mgmt_driver\u0027] \u003d \\"},{"line_number":1389,"context_line":"                    vnflcm_interfaces.get(\u0027termination_start\u0027)"},{"line_number":1390,"context_line":"                if len(scale_id_list) !\u003d 0 and vnf_info[\u0027vnfd\u0027].get("},{"line_number":1391,"context_line":"                        \u0027mgmt_driver\u0027):"},{"line_number":1392,"context_line":"                    kwargs \u003d {\u0027scale_name_list\u0027: scale_name_list,"}],"source_content_type":"text/x-python","patch_set":12,"id":"fd5f0f42_29002f57","line":1389,"range":{"start_line":1388,"start_character":16,"end_line":1389,"end_character":62},"updated":"2021-01-15 01:26:22.000000000","message":"ditto","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":27880,"name":"Yoshito Ito","email":"yoshito.itou.dr@hco.ntt.co.jp","username":"yoshito-ito"},"change_message_id":"934ebe7c9865ccc3c724b0a48b0288d912b98526","unresolved":true,"context_lines":[{"line_number":1387,"context_line":"                    context, vnf_instance, vnfd_dict)"},{"line_number":1388,"context_line":"                vnf_info[\u0027vnfd\u0027][\u0027mgmt_driver\u0027] \u003d \\"},{"line_number":1389,"context_line":"                    vnflcm_interfaces.get(\u0027termination_start\u0027)"},{"line_number":1390,"context_line":"                if len(scale_id_list) !\u003d 0 and vnf_info[\u0027vnfd\u0027].get("},{"line_number":1391,"context_line":"                        \u0027mgmt_driver\u0027):"},{"line_number":1392,"context_line":"                    kwargs \u003d {\u0027scale_name_list\u0027: scale_name_list,"},{"line_number":1393,"context_line":"                              \u0027scale_vnf_request\u0027: scale_vnf_request}"},{"line_number":1394,"context_line":"                    self._mgmt_manager.invoke("}],"source_content_type":"text/x-python","patch_set":12,"id":"24bbbc5a_1e4cd86e","line":1391,"range":{"start_line":1390,"start_character":47,"end_line":1391,"end_character":39},"updated":"2021-01-15 01:26:22.000000000","message":"ditto","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"f7104c808b373060e9062ecd0cb9a11761a39c6b","unresolved":true,"context_lines":[{"line_number":309,"context_line":"            cfg.CONF.tacker.vnflcm_infra_driver)"},{"line_number":310,"context_line":"        self._mgmt_manager \u003d driver_manager.DriverManager("},{"line_number":311,"context_line":"            \u0027tacker.tacker.mgmt.drivers\u0027, cfg.CONF.tacker.vnflcm_mgmt_driver)"},{"line_number":312,"context_line":""},{"line_number":313,"context_line":"    def _vnf_instance_update(self, context, vnf_instance, **kwargs):"},{"line_number":314,"context_line":"        \"\"\"Update vnf instance in the database using kwargs as value.\"\"\""},{"line_number":315,"context_line":""}],"source_content_type":"text/x-python","patch_set":13,"id":"2cdebb27_9edb7abd","line":312,"updated":"2021-01-20 06:47:02.000000000","message":"I think it is not necessary to calculate hash of tacker mgmt drivers at every calls.\nHow about calculate at init. For example,\n\nself._mgmt_driver_hash \u003d self._init_mgmt_driver_hash()\n\ndef _init_mgmt_driver_hash(self):\n    driver_hash \u003d {}\n    for mgmt_driver in cfg.CONF.tacker.vnflcm_mgmt_driver:\n        path \u003d inspect.getfile(self._mgmt_manager[mgmt_driver].__class__)\n        driver_hash[mgmt_driver] \u003d self._get_file_hash(path)\n    return driver_hash","commit_id":"35add2d626579812b17534135befa9091e5d6369"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"f7104c808b373060e9062ecd0cb9a11761a39c6b","unresolved":true,"context_lines":[{"line_number":420,"context_line":"        hash_obj \u003d hashlib.sha256()"},{"line_number":421,"context_line":"        f \u003d open(path)"},{"line_number":422,"context_line":"        hash_obj.update(f.read().encode(\u0027utf-8\u0027))"},{"line_number":423,"context_line":"        f.close()"},{"line_number":424,"context_line":"        return hash_obj.hexdigest()"},{"line_number":425,"context_line":""},{"line_number":426,"context_line":"    def _get_tacker_mgmt_file_path(self, artifact_mgmt_driver):"}],"source_content_type":"text/x-python","patch_set":13,"id":"82fe6d04_d84736da","line":423,"updated":"2021-01-20 06:47:02.000000000","message":"It is better to use \u0027with open\u0027.\n\nwith open(path) as f:\n    hash_obj.update(f.read().encode(\u0027utf-8\u0027))","commit_id":"35add2d626579812b17534135befa9091e5d6369"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"f7104c808b373060e9062ecd0cb9a11761a39c6b","unresolved":true,"context_lines":[{"line_number":449,"context_line":"        tacker_mgmt_driver_path \u003d \\"},{"line_number":450,"context_line":"            self._get_tacker_mgmt_file_path(artifact_mgmt_driver)"},{"line_number":451,"context_line":"        tacker_mgmt_driver_hash \u003d self._get_file_hash("},{"line_number":452,"context_line":"            tacker_mgmt_driver_path)"},{"line_number":453,"context_line":"        if pkg_mgmt_driver_hash \u003d\u003d tacker_mgmt_driver_hash:"},{"line_number":454,"context_line":"            return artifact_mgmt_driver"},{"line_number":455,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":13,"id":"79d975e9_a208d709","line":452,"updated":"2021-01-20 06:47:02.000000000","message":"if artifact_mgmt_driver not in self._mgmt_driver_hash:\n    (L.432 - L.435) here","commit_id":"35add2d626579812b17534135befa9091e5d6369"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"f7104c808b373060e9062ecd0cb9a11761a39c6b","unresolved":true,"context_lines":[{"line_number":450,"context_line":"            self._get_tacker_mgmt_file_path(artifact_mgmt_driver)"},{"line_number":451,"context_line":"        tacker_mgmt_driver_hash \u003d self._get_file_hash("},{"line_number":452,"context_line":"            tacker_mgmt_driver_path)"},{"line_number":453,"context_line":"        if pkg_mgmt_driver_hash \u003d\u003d tacker_mgmt_driver_hash:"},{"line_number":454,"context_line":"            return artifact_mgmt_driver"},{"line_number":455,"context_line":"        else:"},{"line_number":456,"context_line":"            LOG.error(\u0027The hash verification of VNF Package MgmtDriver \u0027"}],"source_content_type":"text/x-python","patch_set":13,"id":"3fc39895_34b0153f","line":453,"updated":"2021-01-20 06:47:02.000000000","message":"if pkg_mgmt_driver_hash \u003d\u003d self._mgmt_driver_hash[artifact_mgmt_driver]","commit_id":"35add2d626579812b17534135befa9091e5d6369"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"6c0fcb56733a0aa9f7911983adf6faefb9eb29da","unresolved":true,"context_lines":[{"line_number":419,"context_line":"            hash_obj.update(f.read().encode(\u0027utf-8\u0027))"},{"line_number":420,"context_line":"        return hash_obj.hexdigest()"},{"line_number":421,"context_line":""},{"line_number":422,"context_line":"    def _get_tacker_mgmt_file_path(self, artifact_mgmt_driver):"},{"line_number":423,"context_line":"        try:"},{"line_number":424,"context_line":"            path \u003d inspect.getfile("},{"line_number":425,"context_line":"                self._mgmt_manager[artifact_mgmt_driver].__class__)"}],"source_content_type":"text/x-python","patch_set":14,"id":"399f25a7_8e7d8558","line":422,"updated":"2021-01-21 06:01:30.000000000","message":"This method is not necessary now.","commit_id":"1e8c3a4f46e80803a3dba5093d23fd41d2516b06"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"6c0fcb56733a0aa9f7911983adf6faefb9eb29da","unresolved":true,"context_lines":[{"line_number":432,"context_line":""},{"line_number":433,"context_line":"    def _check_mgmt_driver(self, implementation, artifacts_value,"},{"line_number":434,"context_line":"                           vnf_package_path):"},{"line_number":435,"context_line":"        # check implementation and artifacts exist in cfg.CONF.tacker"},{"line_number":436,"context_line":"        artifact_mgmt_driver \u003d implementation.get(\u0027implementation\u0027)"},{"line_number":437,"context_line":"        if artifact_mgmt_driver and artifact_mgmt_driver \\"},{"line_number":438,"context_line":"                not in self._mgmt_driver_hash.keys():"}],"source_content_type":"text/x-python","patch_set":14,"id":"1e2c021c_6c5cdb53","line":435,"updated":"2021-01-21 06:01:30.000000000","message":"related L.478 comment, note that implementation argument is changed its meaning.\n\nit may be better to change to artifact_mgmt_driver.","commit_id":"1e8c3a4f46e80803a3dba5093d23fd41d2516b06"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"6c0fcb56733a0aa9f7911983adf6faefb9eb29da","unresolved":true,"context_lines":[{"line_number":435,"context_line":"        # check implementation and artifacts exist in cfg.CONF.tacker"},{"line_number":436,"context_line":"        artifact_mgmt_driver \u003d implementation.get(\u0027implementation\u0027)"},{"line_number":437,"context_line":"        if artifact_mgmt_driver and artifact_mgmt_driver \\"},{"line_number":438,"context_line":"                not in self._mgmt_driver_hash.keys():"},{"line_number":439,"context_line":"            LOG.error(\u0027The {} specified in the VNFD \u0027"},{"line_number":440,"context_line":"                      \u0027is inconsistent with the MgmtDriver in \u0027"},{"line_number":441,"context_line":"                      \u0027the configuration file.\u0027.format(implementation))"}],"source_content_type":"text/x-python","patch_set":14,"id":"d83cc943_a5d448cd","line":438,"updated":"2021-01-21 06:01:30.000000000","message":"related L.478 comment,\nL.436-438;\nif artifact_mgmt_driver not in self._mgmt_driver_hash:    (note: keys() is not necessary)","commit_id":"1e8c3a4f46e80803a3dba5093d23fd41d2516b06"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"6c0fcb56733a0aa9f7911983adf6faefb9eb29da","unresolved":true,"context_lines":[{"line_number":446,"context_line":"        pkg_mgmt_driver_file \u003d artifacts_value.get("},{"line_number":447,"context_line":"            artifact_mgmt_driver).get(\u0027file\u0027)"},{"line_number":448,"context_line":"        pkg_mgmt_driver_path \u003d os.path.join("},{"line_number":449,"context_line":"            vnf_package_path, pkg_mgmt_driver_file)"},{"line_number":450,"context_line":"        pkg_mgmt_driver_hash \u003d self._get_file_hash(pkg_mgmt_driver_path)"},{"line_number":451,"context_line":"        if pkg_mgmt_driver_hash \u003d\u003d \\"},{"line_number":452,"context_line":"                self._mgmt_driver_hash[artifact_mgmt_driver]:"}],"source_content_type":"text/x-python","patch_set":14,"id":"ed516ba9_ee8c5c19","line":449,"updated":"2021-01-21 06:01:30.000000000","message":"L.446-449\nIt seems it assumes vnfd_dict is correct. i.e. artifaces_value has artifact_mgmg_driver and it has \u0027file\u0027. Then,\n\npkg_mgmt_driver_path \u003d os.path.join(\n    vnf_package_path,\n    artifacts_value[artifact_mgmg_driver][\u0027file\u0027])","commit_id":"1e8c3a4f46e80803a3dba5093d23fd41d2516b06"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"6c0fcb56733a0aa9f7911983adf6faefb9eb29da","unresolved":true,"context_lines":[{"line_number":456,"context_line":"                      \u0027and Tacker MgmtDriver does not match.\u0027)"},{"line_number":457,"context_line":"            raise exceptions.MgmtDriverHashMatchFailure()"},{"line_number":458,"context_line":""},{"line_number":459,"context_line":"    def _load_vnf_interfaces(self, context, method_name,"},{"line_number":460,"context_line":"                             vnf_instance, vnfd_dict):"},{"line_number":461,"context_line":"        VNF_value \u003d vnfd_dict[\u0027topology_template\u0027][\u0027node_templates\u0027][\u0027VNF\u0027]"},{"line_number":462,"context_line":"        method_name_start \u003d method_name + \u0027_start\u0027"}],"source_content_type":"text/x-python","patch_set":14,"id":"e2fbf805_3ac3ddad","line":459,"updated":"2021-01-21 06:01:30.000000000","message":"It seems it does not become efficient to handle \u0027start\u0027 and \u0027end\u0027 at the same time.\nI think it is better to handle one implementation at one call to enhance code readability.\n(def _load_vnf_interface(...):)\n(And then it will be able to handle other than \u0027_start\u0027 or \u0027_end\u0027 implementation.)","commit_id":"1e8c3a4f46e80803a3dba5093d23fd41d2516b06"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"6c0fcb56733a0aa9f7911983adf6faefb9eb29da","unresolved":true,"context_lines":[{"line_number":475,"context_line":"        vnf_package_path \u003d vnflcm_utils._get_vnf_package_path("},{"line_number":476,"context_line":"            context, vnf_instance.vnfd_id)"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        implementation_start \u003d interfaces_vnflcm_value.get(method_name_start)"},{"line_number":479,"context_line":"        implementation_end \u003d interfaces_vnflcm_value.get(method_name_end)"},{"line_number":480,"context_line":"        if not implementation_start and not implementation_end:"},{"line_number":481,"context_line":"            return vnflcm_interfaces"}],"source_content_type":"text/x-python","patch_set":14,"id":"b09476eb_275f7fb0","line":478,"updated":"2021-01-21 06:01:30.000000000","message":"How about get \u0027implementation\u0027 here too.\n\nimplemetation_start \u003d interfaces_vnflcm_value.get(\n   method_name_start, {}).get(\u0027implementation\u0027)","commit_id":"1e8c3a4f46e80803a3dba5093d23fd41d2516b06"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"6c0fcb56733a0aa9f7911983adf6faefb9eb29da","unresolved":true,"context_lines":[{"line_number":476,"context_line":"            context, vnf_instance.vnfd_id)"},{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        implementation_start \u003d interfaces_vnflcm_value.get(method_name_start)"},{"line_number":479,"context_line":"        implementation_end \u003d interfaces_vnflcm_value.get(method_name_end)"},{"line_number":480,"context_line":"        if not implementation_start and not implementation_end:"},{"line_number":481,"context_line":"            return vnflcm_interfaces"},{"line_number":482,"context_line":""}],"source_content_type":"text/x-python","patch_set":14,"id":"3011f53f_c9d12e9c","line":479,"updated":"2021-01-21 06:01:30.000000000","message":"same as L.478 comment.","commit_id":"1e8c3a4f46e80803a3dba5093d23fd41d2516b06"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"6c0fcb56733a0aa9f7911983adf6faefb9eb29da","unresolved":true,"context_lines":[{"line_number":477,"context_line":""},{"line_number":478,"context_line":"        implementation_start \u003d interfaces_vnflcm_value.get(method_name_start)"},{"line_number":479,"context_line":"        implementation_end \u003d interfaces_vnflcm_value.get(method_name_end)"},{"line_number":480,"context_line":"        if not implementation_start and not implementation_end:"},{"line_number":481,"context_line":"            return vnflcm_interfaces"},{"line_number":482,"context_line":""},{"line_number":483,"context_line":"        if implementation_start and implementation_start.get("}],"source_content_type":"text/x-python","patch_set":14,"id":"b7e58b6f_7387eefe","line":480,"updated":"2021-01-21 06:01:30.000000000","message":"nit: L.480-481 is not necessary.","commit_id":"1e8c3a4f46e80803a3dba5093d23fd41d2516b06"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"6c0fcb56733a0aa9f7911983adf6faefb9eb29da","unresolved":true,"context_lines":[{"line_number":484,"context_line":"                \u0027implementation\u0027):"},{"line_number":485,"context_line":"            vnflcm_interfaces[method_name_start] \u003d self._check_mgmt_driver("},{"line_number":486,"context_line":"                implementation_start, artifacts_value, vnf_package_path)"},{"line_number":487,"context_line":"        if implementation_end and implementation_end.get("},{"line_number":488,"context_line":"                \u0027implementation\u0027):"},{"line_number":489,"context_line":"            vnflcm_interfaces[method_name_end] \u003d self._check_mgmt_driver("},{"line_number":490,"context_line":"                implementation_end, artifacts_value, vnf_package_path)"}],"source_content_type":"text/x-python","patch_set":14,"id":"527f6963_e7ef8b9a","line":487,"updated":"2021-01-21 06:01:30.000000000","message":"same as L.484 comment.","commit_id":"1e8c3a4f46e80803a3dba5093d23fd41d2516b06"},{"author":{"_account_id":26222,"name":"Cong Phuoc Hoang","email":"hoangphuocbk2.07@gmail.com","username":"hoangphuoc"},"change_message_id":"21cd29b02de31b3afbba1ca9a282082e813aff3f","unresolved":true,"context_lines":[{"line_number":444,"context_line":"    def _load_vnf_interface(self, context, method_name,"},{"line_number":445,"context_line":"                            vnf_instance, vnfd_dict):"},{"line_number":446,"context_line":"        VNF_value \u003d vnfd_dict[\u0027topology_template\u0027][\u0027node_templates\u0027][\u0027VNF\u0027]"},{"line_number":447,"context_line":"        tacker_mgmt_driver \u003d \u0027vnflcm_noop\u0027"},{"line_number":448,"context_line":"        interfaces_vnflcm_value \u003d \\"},{"line_number":449,"context_line":"            VNF_value.get(\u0027interfaces\u0027, {}).get(\u0027Vnflcm\u0027, {})"},{"line_number":450,"context_line":"        if not interfaces_vnflcm_value:"}],"source_content_type":"text/x-python","patch_set":16,"id":"ec02cfa7_5e27bfe7","line":447,"range":{"start_line":447,"start_character":8,"end_line":447,"end_character":42},"updated":"2021-01-25 07:25:26.000000000","message":"it\u0027s better to define a CONST ( ex: DEFAULT_VNFLCM_MGMT_DRIVER) to store default value of \u0027vnflcm_noop\u0027","commit_id":"288230e0bed83c38548653e8eafa1c96bde84fb0"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"f6872892fc87c11253b7c1b787eae1c6a9497df9","unresolved":true,"context_lines":[{"line_number":444,"context_line":"    def _load_vnf_interface(self, context, method_name,"},{"line_number":445,"context_line":"                            vnf_instance, vnfd_dict):"},{"line_number":446,"context_line":"        VNF_value \u003d vnfd_dict[\u0027topology_template\u0027][\u0027node_templates\u0027][\u0027VNF\u0027]"},{"line_number":447,"context_line":"        tacker_mgmt_driver \u003d \u0027vnflcm_noop\u0027"},{"line_number":448,"context_line":"        interfaces_vnflcm_value \u003d \\"},{"line_number":449,"context_line":"            VNF_value.get(\u0027interfaces\u0027, {}).get(\u0027Vnflcm\u0027, {})"},{"line_number":450,"context_line":"        if not interfaces_vnflcm_value:"}],"source_content_type":"text/x-python","patch_set":16,"id":"5d5fd061_bc805860","line":447,"range":{"start_line":447,"start_character":8,"end_line":447,"end_character":42},"in_reply_to":"ec02cfa7_5e27bfe7","updated":"2021-01-26 06:45:24.000000000","message":"Thank you for your comments. \u0027DEFAULT_VNFLCM_MGMT_DRIVER\u0027 has been defined in the new patch.","commit_id":"288230e0bed83c38548653e8eafa1c96bde84fb0"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"3ceb9919c2e4b6af92a24f0c114cef1337b60b32","unresolved":true,"context_lines":[{"line_number":537,"context_line":"                          encodeutils.exception_to_unicode(exp))"},{"line_number":538,"context_line":"        self._mgmt_manager.invoke("},{"line_number":539,"context_line":"            self._load_vnf_interface("},{"line_number":540,"context_line":"                context, \u0027terminate_start\u0027, vnf_instance, vnfd_dict),"},{"line_number":541,"context_line":"            \u0027terminate_end\u0027, context\u003dcontext,"},{"line_number":542,"context_line":"            vnf_instance\u003dvnf_instance,"},{"line_number":543,"context_line":"            additional_params\u003dterminate_vnf_req.additional_params)"}],"source_content_type":"text/x-python","patch_set":16,"id":"5600fe26_6b945d62","line":540,"updated":"2021-01-25 02:12:26.000000000","message":"\u0027terminate_end\u0027","commit_id":"288230e0bed83c38548653e8eafa1c96bde84fb0"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"ff86c4949610665ae27f912d39d9a94b464edfbd","unresolved":false,"context_lines":[{"line_number":537,"context_line":"                          encodeutils.exception_to_unicode(exp))"},{"line_number":538,"context_line":"        self._mgmt_manager.invoke("},{"line_number":539,"context_line":"            self._load_vnf_interface("},{"line_number":540,"context_line":"                context, \u0027terminate_start\u0027, vnf_instance, vnfd_dict),"},{"line_number":541,"context_line":"            \u0027terminate_end\u0027, context\u003dcontext,"},{"line_number":542,"context_line":"            vnf_instance\u003dvnf_instance,"},{"line_number":543,"context_line":"            additional_params\u003dterminate_vnf_req.additional_params)"}],"source_content_type":"text/x-python","patch_set":16,"id":"6e43905e_09d8fae6","line":540,"in_reply_to":"5600fe26_6b945d62","updated":"2021-01-25 05:50:22.000000000","message":"Thank you for your comment, terminate_start is wrong, modify it to terminate_end.","commit_id":"288230e0bed83c38548653e8eafa1c96bde84fb0"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"3ceb9919c2e4b6af92a24f0c114cef1337b60b32","unresolved":true,"context_lines":[{"line_number":767,"context_line":"                    \u0027scale_start\u0027, context\u003dcontext,"},{"line_number":768,"context_line":"                    vnf_instance\u003dvnf_instance,"},{"line_number":769,"context_line":"                    additional_params\u003dscale_vnf_request.additional_params,"},{"line_number":770,"context_line":"                    **kwargs)"},{"line_number":771,"context_line":"        else:"},{"line_number":772,"context_line":"            vnf_info[\u0027action\u0027] \u003d \u0027out\u0027"},{"line_number":773,"context_line":"            scale_id_list \u003d self._vnf_manager.invoke("}],"source_content_type":"text/x-python","patch_set":16,"id":"684c817b_eef29141","line":770,"updated":"2021-01-25 02:12:26.000000000","message":"I can\u0027t judge this change is correct or not. Could you show the specification about this change ?","commit_id":"288230e0bed83c38548653e8eafa1c96bde84fb0"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"ff86c4949610665ae27f912d39d9a94b464edfbd","unresolved":false,"context_lines":[{"line_number":767,"context_line":"                    \u0027scale_start\u0027, context\u003dcontext,"},{"line_number":768,"context_line":"                    vnf_instance\u003dvnf_instance,"},{"line_number":769,"context_line":"                    additional_params\u003dscale_vnf_request.additional_params,"},{"line_number":770,"context_line":"                    **kwargs)"},{"line_number":771,"context_line":"        else:"},{"line_number":772,"context_line":"            vnf_info[\u0027action\u0027] \u003d \u0027out\u0027"},{"line_number":773,"context_line":"            scale_id_list \u003d self._vnf_manager.invoke("}],"source_content_type":"text/x-python","patch_set":16,"id":"c75c0a3c_6d845982","line":770,"in_reply_to":"684c817b_eef29141","updated":"2021-01-25 05:50:22.000000000","message":"The parameters stored in kwargs are used when Support scaling Kubernetes worker nodes with Mgmt driver. Remove them now, and then add them when scale-k8s is implemented later.","commit_id":"288230e0bed83c38548653e8eafa1c96bde84fb0"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"7cbfc94b2131ac08815de07e43165eafbaefd165","unresolved":true,"context_lines":[{"line_number":293,"context_line":"            help\u003d_(\u0027Hosting vnf drivers tacker plugin will use\u0027)"},{"line_number":294,"context_line":"        ),"},{"line_number":295,"context_line":"        cfg.ListOpt("},{"line_number":296,"context_line":"            \u0027vnflcm_mgmt_driver\u0027, default\u003d[\u0027vnflcm_noop\u0027],"},{"line_number":297,"context_line":"            help\u003d_(\u0027MGMT driver to communicate with \u0027"},{"line_number":298,"context_line":"                   \u0027Hosting VNF/logical service \u0027"},{"line_number":299,"context_line":"                   \u0027instance tacker plugin will use\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"cd60469e_db693da9","line":296,"updated":"2021-01-26 23:24:49.000000000","message":"nit:\ndefault\u003d[DEFAULT_VNFLCM_MGMT_DRIVER]","commit_id":"d242d205706747600d32f1845bcd1ce5a76ea685"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"939a4a066d49af23246aecc61a8f650969ecd809","unresolved":false,"context_lines":[{"line_number":293,"context_line":"            help\u003d_(\u0027Hosting vnf drivers tacker plugin will use\u0027)"},{"line_number":294,"context_line":"        ),"},{"line_number":295,"context_line":"        cfg.ListOpt("},{"line_number":296,"context_line":"            \u0027vnflcm_mgmt_driver\u0027, default\u003d[\u0027vnflcm_noop\u0027],"},{"line_number":297,"context_line":"            help\u003d_(\u0027MGMT driver to communicate with \u0027"},{"line_number":298,"context_line":"                   \u0027Hosting VNF/logical service \u0027"},{"line_number":299,"context_line":"                   \u0027instance tacker plugin will use\u0027)"}],"source_content_type":"text/x-python","patch_set":19,"id":"081a4488_28bd7e30","line":296,"in_reply_to":"cd60469e_db693da9","updated":"2021-02-03 02:51:47.000000000","message":"Done","commit_id":"d242d205706747600d32f1845bcd1ce5a76ea685"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"f535e1164242ea1738a2a109a602119b256bd183","unresolved":true,"context_lines":[{"line_number":293,"context_line":"            help\u003d_(\u0027Hosting vnf drivers tacker plugin will use\u0027)"},{"line_number":294,"context_line":"        ),"},{"line_number":295,"context_line":"        cfg.ListOpt("},{"line_number":296,"context_line":"            \u0027vnflcm_mgmt_driver\u0027, default\u003d[\u0027vnflcm_noop\u0027],"},{"line_number":297,"context_line":"            help\u003d_(\u0027MGMT driver to communicate with \u0027"},{"line_number":298,"context_line":"                   \u0027Hosting VNF/logical service \u0027"},{"line_number":299,"context_line":"                   \u0027instance tacker plugin will use\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"dba111d1_9e0abeaf","line":296,"range":{"start_line":296,"start_character":43,"end_line":296,"end_character":56},"updated":"2021-02-05 04:35:54.000000000","message":"It\u0027s wrongly reverted. Please confirm the comment from Itsuro again:)","commit_id":"e96a6b700d9a0eb5fc0e755a26831669194d610b"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"c5d460e1bfbc5916cbe9afabd4f212efdec1cdb6","unresolved":true,"context_lines":[{"line_number":293,"context_line":"            help\u003d_(\u0027Hosting vnf drivers tacker plugin will use\u0027)"},{"line_number":294,"context_line":"        ),"},{"line_number":295,"context_line":"        cfg.ListOpt("},{"line_number":296,"context_line":"            \u0027vnflcm_mgmt_driver\u0027, default\u003d[\u0027vnflcm_noop\u0027],"},{"line_number":297,"context_line":"            help\u003d_(\u0027MGMT driver to communicate with \u0027"},{"line_number":298,"context_line":"                   \u0027Hosting VNF/logical service \u0027"},{"line_number":299,"context_line":"                   \u0027instance tacker plugin will use\u0027)"}],"source_content_type":"text/x-python","patch_set":21,"id":"fb2c91d0_52cae302","line":296,"range":{"start_line":296,"start_character":43,"end_line":296,"end_character":56},"in_reply_to":"dba111d1_9e0abeaf","updated":"2021-02-09 00:36:17.000000000","message":"sorry for causing a revert, fixed in latest patch.","commit_id":"e96a6b700d9a0eb5fc0e755a26831669194d610b"}],"tacker/vnfm/mgmt_drivers/vnflcm_noop.py":[{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"7b53cbb9be355c2de099fb87ff45fdd4b376010c","unresolved":true,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_log import log as logging"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tacker.vnfm.mgmt_drivers import vnflcm_abstract_driver"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"8de87677_e4138fce","line":17,"updated":"2021-01-15 04:02:02.000000000","message":"from tacker.common import log","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"d7c9954db58cc94de9c252b6b10bf62a51795a52","unresolved":true,"context_lines":[{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"from oslo_log import log as logging"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"from tacker.vnfm.mgmt_drivers import vnflcm_abstract_driver"},{"line_number":19,"context_line":""},{"line_number":20,"context_line":""}],"source_content_type":"text/x-python","patch_set":12,"id":"826f2916_72e0b025","line":17,"in_reply_to":"8de87677_e4138fce","updated":"2021-01-18 08:32:08.000000000","message":"Thanks for comment!\nI will fix it in next patch.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"7b53cbb9be355c2de099fb87ff45fdd4b376010c","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def get_description(self):"},{"line_number":32,"context_line":"        return \u0027Tacker VNFMgmt VnflcmNoop Driver\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def instantiate_start(self, context, vnf_instance,"},{"line_number":35,"context_line":"                          additional_params, **kwargs):"},{"line_number":36,"context_line":"        LOG.debug(\u0027instantiate_start %(vnf_instance)s \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"5e8d9a77_498484ba","line":33,"updated":"2021-01-15 04:02:02.000000000","message":"@log.log","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"d7c9954db58cc94de9c252b6b10bf62a51795a52","unresolved":true,"context_lines":[{"line_number":30,"context_line":""},{"line_number":31,"context_line":"    def get_description(self):"},{"line_number":32,"context_line":"        return \u0027Tacker VNFMgmt VnflcmNoop Driver\u0027"},{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def instantiate_start(self, context, vnf_instance,"},{"line_number":35,"context_line":"                          additional_params, **kwargs):"},{"line_number":36,"context_line":"        LOG.debug(\u0027instantiate_start %(vnf_instance)s \u0027"}],"source_content_type":"text/x-python","patch_set":12,"id":"bbb0a0b6_66a33922","line":33,"in_reply_to":"5e8d9a77_498484ba","updated":"2021-01-18 08:32:08.000000000","message":"Thanks for comment!\nI will fix it in next patch.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":4149,"name":"Itsuro Oda","email":"oda@valinux.co.jp","username":"oda-g"},"change_message_id":"7b53cbb9be355c2de099fb87ff45fdd4b376010c","unresolved":true,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def instantiate_start(self, context, vnf_instance,"},{"line_number":35,"context_line":"                          additional_params, **kwargs):"},{"line_number":36,"context_line":"        LOG.debug(\u0027instantiate_start %(vnf_instance)s \u0027"},{"line_number":37,"context_line":"                  \u0027%(additional_params)s %(kwargs)s\u0027,"},{"line_number":38,"context_line":"                  {\u0027vnf_instance\u0027: vnf_instance,"},{"line_number":39,"context_line":"                   \u0027additional_params\u0027: additional_params, \u0027kwargs\u0027: kwargs})"}],"source_content_type":"text/x-python","patch_set":12,"id":"ec295704_9cebde2c","line":36,"updated":"2021-01-15 04:02:02.000000000","message":"use @log.log","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"},{"author":{"_account_id":31821,"name":"LiangLu","email":"lu.liang@jp.fujitsu.com","username":"LiangLu"},"change_message_id":"d7c9954db58cc94de9c252b6b10bf62a51795a52","unresolved":true,"context_lines":[{"line_number":33,"context_line":""},{"line_number":34,"context_line":"    def instantiate_start(self, context, vnf_instance,"},{"line_number":35,"context_line":"                          additional_params, **kwargs):"},{"line_number":36,"context_line":"        LOG.debug(\u0027instantiate_start %(vnf_instance)s \u0027"},{"line_number":37,"context_line":"                  \u0027%(additional_params)s %(kwargs)s\u0027,"},{"line_number":38,"context_line":"                  {\u0027vnf_instance\u0027: vnf_instance,"},{"line_number":39,"context_line":"                   \u0027additional_params\u0027: additional_params, \u0027kwargs\u0027: kwargs})"}],"source_content_type":"text/x-python","patch_set":12,"id":"c6cf367c_eeb5f509","line":36,"in_reply_to":"ec295704_9cebde2c","updated":"2021-01-18 08:32:08.000000000","message":"Thanks for comment!\nI will fix it in next patch.","commit_id":"9fbf089380332d10cc1859b3d4ef5cb799ecbbc2"}]}
