)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":14,"context_line":"for kubernetes cluster in the VNF."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"When instantiating CNF with service resource whose type is"},{"line_number":17,"context_line":"`NodePort` on vim deployed by kubespary, it\u0027s port must be added"},{"line_number":18,"context_line":"into Load Balancer\u0027s configuration and restart it. So this patch"},{"line_number":19,"context_line":"also provides a sample MgmtDriver and shell script to fix this"},{"line_number":20,"context_line":"problem."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"12aa50bd_d7d44f05","line":17,"range":{"start_line":17,"start_character":14,"end_line":17,"end_character":17},"updated":"2021-08-05 08:16:45.000000000","message":"nit. `VIM` for considering terminology.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":14,"context_line":"for kubernetes cluster in the VNF."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"When instantiating CNF with service resource whose type is"},{"line_number":17,"context_line":"`NodePort` on vim deployed by kubespary, it\u0027s port must be added"},{"line_number":18,"context_line":"into Load Balancer\u0027s configuration and restart it. So this patch"},{"line_number":19,"context_line":"also provides a sample MgmtDriver and shell script to fix this"},{"line_number":20,"context_line":"problem."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"538b2bc4_ba94c06d","line":17,"range":{"start_line":17,"start_character":43,"end_line":17,"end_character":44},"updated":"2021-08-05 08:16:45.000000000","message":"should be removed?","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":14,"context_line":"for kubernetes cluster in the VNF."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"When instantiating CNF with service resource whose type is"},{"line_number":17,"context_line":"`NodePort` on vim deployed by kubespary, it\u0027s port must be added"},{"line_number":18,"context_line":"into Load Balancer\u0027s configuration and restart it. So this patch"},{"line_number":19,"context_line":"also provides a sample MgmtDriver and shell script to fix this"},{"line_number":20,"context_line":"problem."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"e68bcdf2_a10a0ca5","line":17,"range":{"start_line":17,"start_character":14,"end_line":17,"end_character":17},"in_reply_to":"12aa50bd_d7d44f05","updated":"2021-08-11 07:47:59.000000000","message":"I have changed it to \u0027Kubernetes VIM\u0027 in patch 7.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":14,"context_line":"for kubernetes cluster in the VNF."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"When instantiating CNF with service resource whose type is"},{"line_number":17,"context_line":"`NodePort` on vim deployed by kubespary, it\u0027s port must be added"},{"line_number":18,"context_line":"into Load Balancer\u0027s configuration and restart it. So this patch"},{"line_number":19,"context_line":"also provides a sample MgmtDriver and shell script to fix this"},{"line_number":20,"context_line":"problem."}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"fe08cfe4_2c6c71ab","line":17,"range":{"start_line":17,"start_character":43,"end_line":17,"end_character":44},"in_reply_to":"538b2bc4_ba94c06d","updated":"2021-08-11 07:47:59.000000000","message":"Yes. I have removed it.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"}],"samples/mgmt_driver/kubespary/cnf_nodeport_setting/cnf_nodeport_mgmt.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":63,"context_line":"    def _check_input_parameters(self, additional_param, vnf_package_path):"},{"line_number":64,"context_line":"        for key, value in additional_param.items():"},{"line_number":65,"context_line":"            if \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":66,"context_line":"                if not value.get(\u0027ssh_username\u0027):"},{"line_number":67,"context_line":"                    LOG.error(\u0027The ssh_username of {} in the \u0027"},{"line_number":68,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":69,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":70,"context_line":"                        param\u003d\u0027ssh_username\u0027)"},{"line_number":71,"context_line":"                if not value.get(\u0027ssh_password\u0027):"},{"line_number":72,"context_line":"                    LOG.error(\u0027The ssh_password of {} in the \u0027"},{"line_number":73,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":74,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":75,"context_line":"                        param\u003d\u0027ssh_password\u0027)"},{"line_number":76,"context_line":"                if not value.get(\u0027ssh_ip\u0027):"},{"line_number":77,"context_line":"                    LOG.error(\u0027The ssh_ip of {} in the \u0027"},{"line_number":78,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":79,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":80,"context_line":"                        param\u003d\u0027ssh_ip\u0027)"},{"line_number":81,"context_line":"                if value.get(\u0027ssh_ip\u0027):"},{"line_number":82,"context_line":"                    self._check_is_cidr("},{"line_number":83,"context_line":"                        key, \u0027ssh_ip\u0027, value.get(\u0027ssh_ip\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"e2a9ffb3_e8989cfa","line":80,"range":{"start_line":66,"start_character":0,"end_line":80,"end_character":39},"updated":"2021-08-05 08:16:45.000000000","message":"You can check it in more conscious way like as below.\n\n```\nattr in [\u0027ssh_username\u0027, \u0027ssh_password\u0027, \u0027ssh_ip\u0027]:\n    if not value.get(attr):\n        LOG.error(....)\n        ...\n```","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":63,"context_line":"    def _check_input_parameters(self, additional_param, vnf_package_path):"},{"line_number":64,"context_line":"        for key, value in additional_param.items():"},{"line_number":65,"context_line":"            if \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":66,"context_line":"                if not value.get(\u0027ssh_username\u0027):"},{"line_number":67,"context_line":"                    LOG.error(\u0027The ssh_username of {} in the \u0027"},{"line_number":68,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":69,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":70,"context_line":"                        param\u003d\u0027ssh_username\u0027)"},{"line_number":71,"context_line":"                if not value.get(\u0027ssh_password\u0027):"},{"line_number":72,"context_line":"                    LOG.error(\u0027The ssh_password of {} in the \u0027"},{"line_number":73,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":74,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":75,"context_line":"                        param\u003d\u0027ssh_password\u0027)"},{"line_number":76,"context_line":"                if not value.get(\u0027ssh_ip\u0027):"},{"line_number":77,"context_line":"                    LOG.error(\u0027The ssh_ip of {} in the \u0027"},{"line_number":78,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":79,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":80,"context_line":"                        param\u003d\u0027ssh_ip\u0027)"},{"line_number":81,"context_line":"                if value.get(\u0027ssh_ip\u0027):"},{"line_number":82,"context_line":"                    self._check_is_cidr("},{"line_number":83,"context_line":"                        key, \u0027ssh_ip\u0027, value.get(\u0027ssh_ip\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"d391cf9a_ccaf0c17","line":80,"range":{"start_line":66,"start_character":0,"end_line":80,"end_character":39},"in_reply_to":"e2a9ffb3_e8989cfa","updated":"2021-08-11 07:47:59.000000000","message":"Thank you for advice. I have fixed these codes in patch 7.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":106,"context_line":"                    connect \u003d paramiko.Transport(host, 22)"},{"line_number":107,"context_line":"                    connect.connect(username\u003duser, password\u003dpassword)"},{"line_number":108,"context_line":"                    sftp \u003d paramiko.SFTPClient.from_transport(connect)"},{"line_number":109,"context_line":"                    if vnf_package_path and script_path:"},{"line_number":110,"context_line":"                        sftp.put(os.path.join(vnf_package_path, script_path),"},{"line_number":111,"context_line":"                                 \"/tmp/{}\".format("},{"line_number":112,"context_line":"                                     script_path.replace(\u0027Scripts\u0027, \u0027\u0027)))"}],"source_content_type":"text/x-python","patch_set":6,"id":"dc6913db_07664594","line":109,"range":{"start_line":109,"start_character":20,"end_line":109,"end_character":56},"updated":"2021-08-05 08:16:45.000000000","message":"It\u0027s already checked at L.105.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":106,"context_line":"                    connect \u003d paramiko.Transport(host, 22)"},{"line_number":107,"context_line":"                    connect.connect(username\u003duser, password\u003dpassword)"},{"line_number":108,"context_line":"                    sftp \u003d paramiko.SFTPClient.from_transport(connect)"},{"line_number":109,"context_line":"                    if vnf_package_path and script_path:"},{"line_number":110,"context_line":"                        sftp.put(os.path.join(vnf_package_path, script_path),"},{"line_number":111,"context_line":"                                 \"/tmp/{}\".format("},{"line_number":112,"context_line":"                                     script_path.replace(\u0027Scripts\u0027, \u0027\u0027)))"}],"source_content_type":"text/x-python","patch_set":6,"id":"da9bd2c8_af29879d","line":109,"range":{"start_line":109,"start_character":20,"end_line":109,"end_character":56},"in_reply_to":"dc6913db_07664594","updated":"2021-08-11 07:47:59.000000000","message":"I have deleted this check in patch 7.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":269,"context_line":"                      grant_request, **kwargs):"},{"line_number":270,"context_line":"        vnf_package_path \u003d vnflcm_utils._get_vnf_package_path("},{"line_number":271,"context_line":"            context, vnf_instance.vnfd_id)"},{"line_number":272,"context_line":"        additional_param \u003d {}"},{"line_number":273,"context_line":"        if hasattr(terminate_vnf_request, \u0027additional_params\u0027):"},{"line_number":274,"context_line":"            if terminate_vnf_request.additional_params:"},{"line_number":275,"context_line":"                additional_params \u003d terminate_vnf_request.additional_params"}],"source_content_type":"text/x-python","patch_set":6,"id":"189cc6f3_6bea2604","line":272,"updated":"2021-08-05 08:16:45.000000000","message":"It\u0027s a little bit confusing in this case. There are many `additional_param` and `additional_params`. I\u0027d suggest to rename, `param` or `add_param` is enough.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":269,"context_line":"                      grant_request, **kwargs):"},{"line_number":270,"context_line":"        vnf_package_path \u003d vnflcm_utils._get_vnf_package_path("},{"line_number":271,"context_line":"            context, vnf_instance.vnfd_id)"},{"line_number":272,"context_line":"        additional_param \u003d {}"},{"line_number":273,"context_line":"        if hasattr(terminate_vnf_request, \u0027additional_params\u0027):"},{"line_number":274,"context_line":"            if terminate_vnf_request.additional_params:"},{"line_number":275,"context_line":"                additional_params \u003d terminate_vnf_request.additional_params"}],"source_content_type":"text/x-python","patch_set":6,"id":"4257eeb2_82305d60","line":272,"in_reply_to":"189cc6f3_6bea2604","updated":"2021-08-11 07:47:59.000000000","message":"Thank you for your advice. I have changed it to \u0027add_param\u0027 in patch 7.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7244ccc21642bcaecfc760f35a2ea10c6437e374","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import eventlet"},{"line_number":17,"context_line":"import ipaddress"},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"import paramiko"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":"import yaml"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"b02560f8_9a18b087","line":21,"range":{"start_line":16,"start_character":0,"end_line":21,"end_character":11},"updated":"2021-08-20 08:24:44.000000000","message":"Sort `import` in alphabetical order.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"9222ff9107e478d1ae4be32dee616ec7c1f2a342","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import eventlet"},{"line_number":17,"context_line":"import ipaddress"},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"import paramiko"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":"import yaml"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"bb7771a1_235d05c1","line":21,"range":{"start_line":16,"start_character":0,"end_line":21,"end_character":11},"in_reply_to":"b02560f8_9a18b087","updated":"2021-08-26 01:57:17.000000000","message":"Sorry, this is a wrong comment. The correct comment is below:\n\nModule `ipaddress`, `os` and `time` are standard library of python, thus import statements of those modules should be placed before `import eventlet` and separate by a blank line.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import eventlet"},{"line_number":17,"context_line":"import ipaddress"},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"import paramiko"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":"import yaml"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"28659478_34764c93","line":21,"range":{"start_line":16,"start_character":0,"end_line":21,"end_character":11},"in_reply_to":"bb7771a1_235d05c1","updated":"2021-08-30 02:34:42.000000000","message":"I have fixed the sort in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7244ccc21642bcaecfc760f35a2ea10c6437e374","unresolved":true,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _check_input_parameters(self, additional_param, vnf_package_path):"},{"line_number":64,"context_line":"        for key, value in additional_param.items():"},{"line_number":65,"context_line":"            if \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":66,"context_line":"                for attr in [\u0027ssh_username\u0027, \u0027ssh_password\u0027, \u0027ssh_ip\u0027]:"},{"line_number":67,"context_line":"                    if not value.get(attr):"},{"line_number":68,"context_line":"                        LOG.error("}],"source_content_type":"text/x-python","patch_set":7,"id":"bbd49d4f_147b719a","line":65,"updated":"2021-08-20 08:24:44.000000000","message":"The condition should be like this:\n\n```\nif key \u003d\u003d \u0027external_lb_param\u0027:\n    ....\n```","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":62,"context_line":""},{"line_number":63,"context_line":"    def _check_input_parameters(self, additional_param, vnf_package_path):"},{"line_number":64,"context_line":"        for key, value in additional_param.items():"},{"line_number":65,"context_line":"            if \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":66,"context_line":"                for attr in [\u0027ssh_username\u0027, \u0027ssh_password\u0027, \u0027ssh_ip\u0027]:"},{"line_number":67,"context_line":"                    if not value.get(attr):"},{"line_number":68,"context_line":"                        LOG.error("}],"source_content_type":"text/x-python","patch_set":7,"id":"da383285_bde4c3fe","line":65,"in_reply_to":"bbd49d4f_147b719a","updated":"2021-08-30 02:34:42.000000000","message":"I have modified the codes in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"3747524641abe49446cd77b20398b71c27746dc0","unresolved":true,"context_lines":[{"line_number":76,"context_line":"                        key, \u0027ssh_ip\u0027, value.get(\u0027ssh_ip\u0027))"},{"line_number":77,"context_line":"        if not additional_param.get(\u0027script_path\u0027):"},{"line_number":78,"context_line":"            LOG.error(\u0027The script_path of {} in the \u0027"},{"line_number":79,"context_line":"                      \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":80,"context_line":"            raise exceptions.MgmtDriverNotFound("},{"line_number":81,"context_line":"                param\u003d\u0027script_path\u0027)"},{"line_number":82,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"c68b4245_622d3b8a","line":79,"updated":"2021-08-26 06:50:53.000000000","message":"`key` is possibly undefined variable because definition of `key` written in L64 uses `dict.items()`, which returns nothing (including definition of `key` and `value`) when `additional_param` is empty. This method should check whether `additional_param` is empty at first.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":76,"context_line":"                        key, \u0027ssh_ip\u0027, value.get(\u0027ssh_ip\u0027))"},{"line_number":77,"context_line":"        if not additional_param.get(\u0027script_path\u0027):"},{"line_number":78,"context_line":"            LOG.error(\u0027The script_path of {} in the \u0027"},{"line_number":79,"context_line":"                      \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":80,"context_line":"            raise exceptions.MgmtDriverNotFound("},{"line_number":81,"context_line":"                param\u003d\u0027script_path\u0027)"},{"line_number":82,"context_line":"        else:"}],"source_content_type":"text/x-python","patch_set":7,"id":"cd34e5f8_6fc178ba","line":79,"in_reply_to":"c68b4245_622d3b8a","updated":"2021-08-30 02:34:42.000000000","message":"Thank you for your advice. I have added the check of additional_param in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7244ccc21642bcaecfc760f35a2ea10c6437e374","unresolved":true,"context_lines":[{"line_number":79,"context_line":"                      \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":80,"context_line":"            raise exceptions.MgmtDriverNotFound("},{"line_number":81,"context_line":"                param\u003d\u0027script_path\u0027)"},{"line_number":82,"context_line":"        else:"},{"line_number":83,"context_line":"            abs_script_path \u003d os.path.join("},{"line_number":84,"context_line":"                vnf_package_path, additional_param.get(\u0027script_path\u0027))"},{"line_number":85,"context_line":"            if not os.path.exists(abs_script_path):"}],"source_content_type":"text/x-python","patch_set":7,"id":"ec73a48c_532cca85","line":82,"updated":"2021-08-20 08:24:44.000000000","message":"Is `else` clause required? If `additional_param.get(\u0027script_path\u0027)` has no value, this `if` clause throws an exception by `raise`, thus `else` does nothing in this workflow.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":79,"context_line":"                      \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":80,"context_line":"            raise exceptions.MgmtDriverNotFound("},{"line_number":81,"context_line":"                param\u003d\u0027script_path\u0027)"},{"line_number":82,"context_line":"        else:"},{"line_number":83,"context_line":"            abs_script_path \u003d os.path.join("},{"line_number":84,"context_line":"                vnf_package_path, additional_param.get(\u0027script_path\u0027))"},{"line_number":85,"context_line":"            if not os.path.exists(abs_script_path):"}],"source_content_type":"text/x-python","patch_set":7,"id":"989d3ebe_135cf744","line":82,"in_reply_to":"ec73a48c_532cca85","updated":"2021-08-30 02:34:42.000000000","message":"I have modified this logic in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":92,"context_line":"    def _init_commander_and_set_script(self, user, password, host,"},{"line_number":93,"context_line":"                                       timeout, vnf_package_path\u003dNone,"},{"line_number":94,"context_line":"                                       script_path\u003dNone):"},{"line_number":95,"context_line":"        retry \u003d 4"},{"line_number":96,"context_line":"        while retry \u003e 0:"},{"line_number":97,"context_line":"            try:"},{"line_number":98,"context_line":"                if (vnf_package_path and script_path):"}],"source_content_type":"text/x-python","patch_set":7,"id":"4639a3f9_2e5c6fa1","line":95,"range":{"start_line":95,"start_character":16,"end_line":95,"end_character":17},"updated":"2021-08-20 06:26:55.000000000","message":"Why don\u0027t you define constant instead of direct value?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":92,"context_line":"    def _init_commander_and_set_script(self, user, password, host,"},{"line_number":93,"context_line":"                                       timeout, vnf_package_path\u003dNone,"},{"line_number":94,"context_line":"                                       script_path\u003dNone):"},{"line_number":95,"context_line":"        retry \u003d 4"},{"line_number":96,"context_line":"        while retry \u003e 0:"},{"line_number":97,"context_line":"            try:"},{"line_number":98,"context_line":"                if (vnf_package_path and script_path):"}],"source_content_type":"text/x-python","patch_set":7,"id":"e24c1b24_77bf66dc","line":95,"range":{"start_line":95,"start_character":16,"end_line":95,"end_character":17},"in_reply_to":"3e6690ca_d1358b65","updated":"2021-08-31 05:35:17.000000000","message":"I\u0027ve confirmed.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":92,"context_line":"    def _init_commander_and_set_script(self, user, password, host,"},{"line_number":93,"context_line":"                                       timeout, vnf_package_path\u003dNone,"},{"line_number":94,"context_line":"                                       script_path\u003dNone):"},{"line_number":95,"context_line":"        retry \u003d 4"},{"line_number":96,"context_line":"        while retry \u003e 0:"},{"line_number":97,"context_line":"            try:"},{"line_number":98,"context_line":"                if (vnf_package_path and script_path):"}],"source_content_type":"text/x-python","patch_set":7,"id":"3e6690ca_d1358b65","line":95,"range":{"start_line":95,"start_character":16,"end_line":95,"end_character":17},"in_reply_to":"4639a3f9_2e5c6fa1","updated":"2021-08-30 02:34:42.000000000","message":"I have defined a constant \u0027CONNECT_REMOTE_SERVER_RETRY_COUNT\u0027 in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":134,"context_line":"                    raise exceptions.MgmtDriverOtherError("},{"line_number":135,"context_line":"                        error_message\u003d\u0027It is time out, When execute command: \u0027"},{"line_number":136,"context_line":"                                      \u0027{}.\u0027.format(ssh_command))"},{"line_number":137,"context_line":"                time.sleep(30)"},{"line_number":138,"context_line":"        if type \u003d\u003d \u0027common\u0027:"},{"line_number":139,"context_line":"            if result.get_return_code() !\u003d 0:"},{"line_number":140,"context_line":"                err \u003d result.get_stderr()"}],"source_content_type":"text/x-python","patch_set":7,"id":"e2ce386b_dbbe4ca2","line":137,"range":{"start_line":137,"start_character":27,"end_line":137,"end_character":29},"updated":"2021-08-20 06:26:55.000000000","message":"Why don\u0027t you define constant instead of direct value?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":134,"context_line":"                    raise exceptions.MgmtDriverOtherError("},{"line_number":135,"context_line":"                        error_message\u003d\u0027It is time out, When execute command: \u0027"},{"line_number":136,"context_line":"                                      \u0027{}.\u0027.format(ssh_command))"},{"line_number":137,"context_line":"                time.sleep(30)"},{"line_number":138,"context_line":"        if type \u003d\u003d \u0027common\u0027:"},{"line_number":139,"context_line":"            if result.get_return_code() !\u003d 0:"},{"line_number":140,"context_line":"                err \u003d result.get_stderr()"}],"source_content_type":"text/x-python","patch_set":7,"id":"c6e5cfb8_38e68915","line":137,"range":{"start_line":137,"start_character":27,"end_line":137,"end_character":29},"in_reply_to":"9e434395_f42aa544","updated":"2021-08-31 05:35:17.000000000","message":"I\u0027ve confirmed.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":134,"context_line":"                    raise exceptions.MgmtDriverOtherError("},{"line_number":135,"context_line":"                        error_message\u003d\u0027It is time out, When execute command: \u0027"},{"line_number":136,"context_line":"                                      \u0027{}.\u0027.format(ssh_command))"},{"line_number":137,"context_line":"                time.sleep(30)"},{"line_number":138,"context_line":"        if type \u003d\u003d \u0027common\u0027:"},{"line_number":139,"context_line":"            if result.get_return_code() !\u003d 0:"},{"line_number":140,"context_line":"                err \u003d result.get_stderr()"}],"source_content_type":"text/x-python","patch_set":7,"id":"9e434395_f42aa544","line":137,"range":{"start_line":137,"start_character":27,"end_line":137,"end_character":29},"in_reply_to":"e2ce386b_dbbe4ca2","updated":"2021-08-30 02:34:42.000000000","message":"I have defined a constant \u0027COMMAND_WAIT_RETRY_TIME\u0027 in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"}],"samples/mgmt_driver/kubespary/cnf_nodeport_setting/cnf_nodeport_setting_vnf_package/Definitions/helloworld3_types.yaml":[{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        default: [ Tacker ]"},{"line_number":39,"context_line":"      flavour_id:"},{"line_number":40,"context_line":"        type: string"},{"line_number":41,"context_line":"        constraints: [ valid_values: [ simple,complex ] ]"},{"line_number":42,"context_line":"        default: simple"},{"line_number":43,"context_line":"      flavour_description:"},{"line_number":44,"context_line":"        type: string"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"9a242707_76008235","line":41,"range":{"start_line":41,"start_character":46,"end_line":41,"end_character":54},"updated":"2021-08-20 06:26:55.000000000","message":"Isn\u0027t \u0027complex\u0027 flavour unnecessary?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        default: [ Tacker ]"},{"line_number":39,"context_line":"      flavour_id:"},{"line_number":40,"context_line":"        type: string"},{"line_number":41,"context_line":"        constraints: [ valid_values: [ simple,complex ] ]"},{"line_number":42,"context_line":"        default: simple"},{"line_number":43,"context_line":"      flavour_description:"},{"line_number":44,"context_line":"        type: string"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"fff8df8d_d204d266","line":41,"range":{"start_line":41,"start_character":46,"end_line":41,"end_character":54},"in_reply_to":"9a242707_76008235","updated":"2021-08-30 02:34:42.000000000","message":"I have deleted the \u0027complex\u0027 value in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":38,"context_line":"        default: [ Tacker ]"},{"line_number":39,"context_line":"      flavour_id:"},{"line_number":40,"context_line":"        type: string"},{"line_number":41,"context_line":"        constraints: [ valid_values: [ simple,complex ] ]"},{"line_number":42,"context_line":"        default: simple"},{"line_number":43,"context_line":"      flavour_description:"},{"line_number":44,"context_line":"        type: string"}],"source_content_type":"text/x-yaml","patch_set":7,"id":"08abc08f_68c16aca","line":41,"range":{"start_line":41,"start_character":46,"end_line":41,"end_character":54},"in_reply_to":"fff8df8d_d204d266","updated":"2021-08-31 05:35:17.000000000","message":"I\u0027ve confirmed.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"}],"samples/mgmt_driver/kubespary/cnf_nodeport_setting/configure_lb.sh":[{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":49,"context_line":"    while getopts doi:a:h OPT; do"},{"line_number":50,"context_line":"        case $OPT in"},{"line_number":51,"context_line":"        i)"},{"line_number":52,"context_line":"            NODEPORTSTR\u003d$OPTARG # defalut,test,8080,8011#mynamespace,nginx,8012"},{"line_number":53,"context_line":"            NODEPORTS\u003d(${NODEPORTSTR//#/ })"},{"line_number":54,"context_line":"            ;;"},{"line_number":55,"context_line":"        a)"}],"source_content_type":"text/x-sh","patch_set":7,"id":"9cd410ae_26d25b17","line":52,"range":{"start_line":52,"start_character":32,"end_line":52,"end_character":79},"updated":"2021-08-20 06:26:55.000000000","message":"What does this comment mean? Is it an example of NODEPORTSTR?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"37b474e67ddf052c52179643059637bebf0b9b58","unresolved":true,"context_lines":[{"line_number":49,"context_line":"    while getopts doi:a:h OPT; do"},{"line_number":50,"context_line":"        case $OPT in"},{"line_number":51,"context_line":"        i)"},{"line_number":52,"context_line":"            NODEPORTSTR\u003d$OPTARG # defalut,test,8080,8011#mynamespace,nginx,8012"},{"line_number":53,"context_line":"            NODEPORTS\u003d(${NODEPORTSTR//#/ })"},{"line_number":54,"context_line":"            ;;"},{"line_number":55,"context_line":"        a)"}],"source_content_type":"text/x-sh","patch_set":7,"id":"c3ad8bdd_843db395","line":52,"range":{"start_line":52,"start_character":32,"end_line":52,"end_character":79},"in_reply_to":"329ec4c5_5bdf578a","updated":"2021-09-02 05:05:07.000000000","message":"At the beginning of the design, it was planned to use\u0027/\u0027 to separate, so the description in the code is\u0027/\u0027, but in the actual script test, it is found that the\u0027/\u0027 is easy to conflict with the code of the shell script. The processing is more troublesome, so I changed it to\u0027#\u0027, but forgot to modify the description sentence.\nIf you use\u0027/\u0027, you need to re-test the script, modify the MgmtDriver file, and test again, so my personal opinion is that it is more appropriate to use\u0027#\u0027, so I modified the description in PS12.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":true,"context_lines":[{"line_number":49,"context_line":"    while getopts doi:a:h OPT; do"},{"line_number":50,"context_line":"        case $OPT in"},{"line_number":51,"context_line":"        i)"},{"line_number":52,"context_line":"            NODEPORTSTR\u003d$OPTARG # defalut,test,8080,8011#mynamespace,nginx,8012"},{"line_number":53,"context_line":"            NODEPORTS\u003d(${NODEPORTSTR//#/ })"},{"line_number":54,"context_line":"            ;;"},{"line_number":55,"context_line":"        a)"}],"source_content_type":"text/x-sh","patch_set":7,"id":"329ec4c5_5bdf578a","line":52,"range":{"start_line":52,"start_character":32,"end_line":52,"end_character":79},"in_reply_to":"45980ed1_7ab013a8","updated":"2021-08-31 05:35:17.000000000","message":"I got it, but NODEPORTSTR is described as following in usage,\n```\nall nodePort info(use \"/\" to separate)\n```\n\nShouldn\u0027t it be the following? (replace \"#\" to \"/\")\n```\ndefalut,test,8080,8011/mynamespace,nginx,8012\n```","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":49,"context_line":"    while getopts doi:a:h OPT; do"},{"line_number":50,"context_line":"        case $OPT in"},{"line_number":51,"context_line":"        i)"},{"line_number":52,"context_line":"            NODEPORTSTR\u003d$OPTARG # defalut,test,8080,8011#mynamespace,nginx,8012"},{"line_number":53,"context_line":"            NODEPORTS\u003d(${NODEPORTSTR//#/ })"},{"line_number":54,"context_line":"            ;;"},{"line_number":55,"context_line":"        a)"}],"source_content_type":"text/x-sh","patch_set":7,"id":"45980ed1_7ab013a8","line":52,"range":{"start_line":52,"start_character":32,"end_line":52,"end_character":79},"in_reply_to":"9cd410ae_26d25b17","updated":"2021-08-30 02:34:42.000000000","message":"Yes. It\u0027s an example for NODEPORTSTR.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"8ed9fd156374d5fcd5f9bb826172a0aa450ffce0","unresolved":false,"context_lines":[{"line_number":49,"context_line":"    while getopts doi:a:h OPT; do"},{"line_number":50,"context_line":"        case $OPT in"},{"line_number":51,"context_line":"        i)"},{"line_number":52,"context_line":"            NODEPORTSTR\u003d$OPTARG # defalut,test,8080,8011#mynamespace,nginx,8012"},{"line_number":53,"context_line":"            NODEPORTS\u003d(${NODEPORTSTR//#/ })"},{"line_number":54,"context_line":"            ;;"},{"line_number":55,"context_line":"        a)"}],"source_content_type":"text/x-sh","patch_set":7,"id":"eb1b4596_5d6aa78d","line":52,"range":{"start_line":52,"start_character":32,"end_line":52,"end_character":79},"in_reply_to":"c3ad8bdd_843db395","updated":"2021-09-10 08:38:40.000000000","message":"Thanks for your explanation. I got it and confirmed the modified description.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":55,"context_line":"        a)"},{"line_number":56,"context_line":"            ADD_CONFIGURE_FLAG\u003d$OPTARG"},{"line_number":57,"context_line":"            ;;"},{"line_number":58,"context_line":"        d)"},{"line_number":59,"context_line":"            DEBUG_MODE\u003d\"True\" # start debug"},{"line_number":60,"context_line":"            ;;"},{"line_number":61,"context_line":"        o)"},{"line_number":62,"context_line":"            OUTPUT_LOGFILE\u003d\"True\" # output log file"},{"line_number":63,"context_line":"            ;;"},{"line_number":64,"context_line":"        h)"},{"line_number":65,"context_line":"            echo \"h option. display help\""},{"line_number":66,"context_line":"            usage"}],"source_content_type":"text/x-sh","patch_set":7,"id":"15d7f50f_c402dea8","line":63,"range":{"start_line":58,"start_character":0,"end_line":63,"end_character":14},"updated":"2021-08-20 06:26:55.000000000","message":"These two options do not appear to be used. Could you delete it, or forgot to implement?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":55,"context_line":"        a)"},{"line_number":56,"context_line":"            ADD_CONFIGURE_FLAG\u003d$OPTARG"},{"line_number":57,"context_line":"            ;;"},{"line_number":58,"context_line":"        d)"},{"line_number":59,"context_line":"            DEBUG_MODE\u003d\"True\" # start debug"},{"line_number":60,"context_line":"            ;;"},{"line_number":61,"context_line":"        o)"},{"line_number":62,"context_line":"            OUTPUT_LOGFILE\u003d\"True\" # output log file"},{"line_number":63,"context_line":"            ;;"},{"line_number":64,"context_line":"        h)"},{"line_number":65,"context_line":"            echo \"h option. display help\""},{"line_number":66,"context_line":"            usage"}],"source_content_type":"text/x-sh","patch_set":7,"id":"ab8d1749_782f7c94","line":63,"range":{"start_line":58,"start_character":0,"end_line":63,"end_character":14},"in_reply_to":"15d7f50f_c402dea8","updated":"2021-08-30 02:34:42.000000000","message":"I have deleted them in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":55,"context_line":"        a)"},{"line_number":56,"context_line":"            ADD_CONFIGURE_FLAG\u003d$OPTARG"},{"line_number":57,"context_line":"            ;;"},{"line_number":58,"context_line":"        d)"},{"line_number":59,"context_line":"            DEBUG_MODE\u003d\"True\" # start debug"},{"line_number":60,"context_line":"            ;;"},{"line_number":61,"context_line":"        o)"},{"line_number":62,"context_line":"            OUTPUT_LOGFILE\u003d\"True\" # output log file"},{"line_number":63,"context_line":"            ;;"},{"line_number":64,"context_line":"        h)"},{"line_number":65,"context_line":"            echo \"h option. display help\""},{"line_number":66,"context_line":"            usage"}],"source_content_type":"text/x-sh","patch_set":7,"id":"515b29d4_ba5211d5","line":63,"range":{"start_line":58,"start_character":0,"end_line":63,"end_character":14},"in_reply_to":"ab8d1749_782f7c94","updated":"2021-08-31 05:35:17.000000000","message":"I\u0027ve confirmed.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"}],"samples/mgmt_driver/kubespary/install_external_lb.sh":[{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":56,"context_line":"            WORKER_IPADDRS\u003d$OPTARG # 192.168.120.2,192.168.120.3"},{"line_number":57,"context_line":"            WORKER_IPS\u003d(${WORKER_IPADDRS//,/ })"},{"line_number":58,"context_line":"            ;;"},{"line_number":59,"context_line":"        d)"},{"line_number":60,"context_line":"            DEBUG_MODE\u003d\"True\" # start debug"},{"line_number":61,"context_line":"            ;;"},{"line_number":62,"context_line":"        o)"},{"line_number":63,"context_line":"            OUTPUT_LOGFILE\u003d\"True\" # output log file"},{"line_number":64,"context_line":"            ;;"},{"line_number":65,"context_line":"        h)"},{"line_number":66,"context_line":"            echo \"h option. display help\""},{"line_number":67,"context_line":"            usage"}],"source_content_type":"text/x-sh","patch_set":7,"id":"8db01307_aeffa459","line":64,"range":{"start_line":59,"start_character":0,"end_line":64,"end_character":14},"updated":"2021-08-20 06:26:55.000000000","message":"These two options do not appear to be used. Could you delete it or forgot to implement?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":56,"context_line":"            WORKER_IPADDRS\u003d$OPTARG # 192.168.120.2,192.168.120.3"},{"line_number":57,"context_line":"            WORKER_IPS\u003d(${WORKER_IPADDRS//,/ })"},{"line_number":58,"context_line":"            ;;"},{"line_number":59,"context_line":"        d)"},{"line_number":60,"context_line":"            DEBUG_MODE\u003d\"True\" # start debug"},{"line_number":61,"context_line":"            ;;"},{"line_number":62,"context_line":"        o)"},{"line_number":63,"context_line":"            OUTPUT_LOGFILE\u003d\"True\" # output log file"},{"line_number":64,"context_line":"            ;;"},{"line_number":65,"context_line":"        h)"},{"line_number":66,"context_line":"            echo \"h option. display help\""},{"line_number":67,"context_line":"            usage"}],"source_content_type":"text/x-sh","patch_set":7,"id":"396d97a4_292db69d","line":64,"range":{"start_line":59,"start_character":0,"end_line":64,"end_character":14},"in_reply_to":"6d487e6a_ea6f3871","updated":"2021-08-31 05:35:17.000000000","message":"I\u0027ve confirmed.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":56,"context_line":"            WORKER_IPADDRS\u003d$OPTARG # 192.168.120.2,192.168.120.3"},{"line_number":57,"context_line":"            WORKER_IPS\u003d(${WORKER_IPADDRS//,/ })"},{"line_number":58,"context_line":"            ;;"},{"line_number":59,"context_line":"        d)"},{"line_number":60,"context_line":"            DEBUG_MODE\u003d\"True\" # start debug"},{"line_number":61,"context_line":"            ;;"},{"line_number":62,"context_line":"        o)"},{"line_number":63,"context_line":"            OUTPUT_LOGFILE\u003d\"True\" # output log file"},{"line_number":64,"context_line":"            ;;"},{"line_number":65,"context_line":"        h)"},{"line_number":66,"context_line":"            echo \"h option. display help\""},{"line_number":67,"context_line":"            usage"}],"source_content_type":"text/x-sh","patch_set":7,"id":"6d487e6a_ea6f3871","line":64,"range":{"start_line":59,"start_character":0,"end_line":64,"end_character":14},"in_reply_to":"8db01307_aeffa459","updated":"2021-08-30 02:34:42.000000000","message":"I have deleted them in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"}],"samples/mgmt_driver/kubespary/kubespary_mgmt.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":83,"context_line":"        for key, value in additional_param.items():"},{"line_number":84,"context_line":"            if \u0027proxy\u0027 !\u003d key and \u0027external_lb_param\u0027 !\u003d key and\\"},{"line_number":85,"context_line":"                    \u0027vim_name\u0027 !\u003d key:"},{"line_number":86,"context_line":"                if not value.get(\u0027username\u0027):"},{"line_number":87,"context_line":"                    LOG.error(\u0027The username of {} in the \u0027"},{"line_number":88,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":89,"context_line":"                    raise exceptions.MgmtDriverNotFound(param\u003d\u0027username\u0027)"},{"line_number":90,"context_line":"                if not value.get(\u0027password\u0027):"},{"line_number":91,"context_line":"                    LOG.error(\u0027The password of {} in the \u0027"},{"line_number":92,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":93,"context_line":"                    raise exceptions.MgmtDriverNotFound(param\u003d\u0027password\u0027)"},{"line_number":94,"context_line":"            if \u0027master_node\u0027 \u003d\u003d key or \u0027worker_node\u0027 \u003d\u003d key \\"},{"line_number":95,"context_line":"                    or \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":96,"context_line":"                if not value.get(\u0027ssh_cp_name\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"3f788824_d770031b","line":93,"range":{"start_line":86,"start_character":16,"end_line":93,"end_character":73},"updated":"2021-08-05 08:16:45.000000000","message":"You can make it shorter as similar to [1], and also following lines. I think it\u0027s better to define a local function before for checking and value, logging and exception.\n\n[1] https://review.opendev.org/c/openstack/tacker/+/801421/6/samples/mgmt_driver/kubespary/cnf_nodeport_setting/cnf_nodeport_mgmt.py#66","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":83,"context_line":"        for key, value in additional_param.items():"},{"line_number":84,"context_line":"            if \u0027proxy\u0027 !\u003d key and \u0027external_lb_param\u0027 !\u003d key and\\"},{"line_number":85,"context_line":"                    \u0027vim_name\u0027 !\u003d key:"},{"line_number":86,"context_line":"                if not value.get(\u0027username\u0027):"},{"line_number":87,"context_line":"                    LOG.error(\u0027The username of {} in the \u0027"},{"line_number":88,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":89,"context_line":"                    raise exceptions.MgmtDriverNotFound(param\u003d\u0027username\u0027)"},{"line_number":90,"context_line":"                if not value.get(\u0027password\u0027):"},{"line_number":91,"context_line":"                    LOG.error(\u0027The password of {} in the \u0027"},{"line_number":92,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":93,"context_line":"                    raise exceptions.MgmtDriverNotFound(param\u003d\u0027password\u0027)"},{"line_number":94,"context_line":"            if \u0027master_node\u0027 \u003d\u003d key or \u0027worker_node\u0027 \u003d\u003d key \\"},{"line_number":95,"context_line":"                    or \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":96,"context_line":"                if not value.get(\u0027ssh_cp_name\u0027):"}],"source_content_type":"text/x-python","patch_set":6,"id":"ba4c0b5b_bd4c99c2","line":93,"range":{"start_line":86,"start_character":16,"end_line":93,"end_character":73},"in_reply_to":"3f788824_d770031b","updated":"2021-08-11 07:47:59.000000000","message":"Thank you for advice. I have fixed these codes and defined a common function to check values in patch 7.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":93,"context_line":"                    raise exceptions.MgmtDriverNotFound(param\u003d\u0027password\u0027)"},{"line_number":94,"context_line":"            if \u0027master_node\u0027 \u003d\u003d key or \u0027worker_node\u0027 \u003d\u003d key \\"},{"line_number":95,"context_line":"                    or \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":96,"context_line":"                if not value.get(\u0027ssh_cp_name\u0027):"},{"line_number":97,"context_line":"                    LOG.error(\u0027The ssh_cp_name of {} in the \u0027"},{"line_number":98,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":99,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":100,"context_line":"                        param\u003d\u0027ssh_cp_name\u0027)"},{"line_number":101,"context_line":"            if \u0027ansible\u0027 \u003d\u003d key:"},{"line_number":102,"context_line":"                if not value.get(\u0027ip_address\u0027):"},{"line_number":103,"context_line":"                    LOG.error(\u0027The ip_address of {} in the \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"ee679254_4d107a6c","line":100,"range":{"start_line":96,"start_character":16,"end_line":100,"end_character":44},"updated":"2021-08-05 08:16:45.000000000","message":"ditto","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":93,"context_line":"                    raise exceptions.MgmtDriverNotFound(param\u003d\u0027password\u0027)"},{"line_number":94,"context_line":"            if \u0027master_node\u0027 \u003d\u003d key or \u0027worker_node\u0027 \u003d\u003d key \\"},{"line_number":95,"context_line":"                    or \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":96,"context_line":"                if not value.get(\u0027ssh_cp_name\u0027):"},{"line_number":97,"context_line":"                    LOG.error(\u0027The ssh_cp_name of {} in the \u0027"},{"line_number":98,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":99,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":100,"context_line":"                        param\u003d\u0027ssh_cp_name\u0027)"},{"line_number":101,"context_line":"            if \u0027ansible\u0027 \u003d\u003d key:"},{"line_number":102,"context_line":"                if not value.get(\u0027ip_address\u0027):"},{"line_number":103,"context_line":"                    LOG.error(\u0027The ip_address of {} in the \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"c7dce373_0a45530b","line":100,"range":{"start_line":96,"start_character":16,"end_line":100,"end_character":44},"in_reply_to":"ee679254_4d107a6c","updated":"2021-08-11 07:47:59.000000000","message":"ditto","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":99,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":100,"context_line":"                        param\u003d\u0027ssh_cp_name\u0027)"},{"line_number":101,"context_line":"            if \u0027ansible\u0027 \u003d\u003d key:"},{"line_number":102,"context_line":"                if not value.get(\u0027ip_address\u0027):"},{"line_number":103,"context_line":"                    LOG.error(\u0027The ip_address of {} in the \u0027"},{"line_number":104,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":105,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":106,"context_line":"                        param\u003d\u0027ip_address\u0027)"},{"line_number":107,"context_line":"                if not value.get(\u0027kubespray_root_path\u0027):"},{"line_number":108,"context_line":"                    LOG.error(\u0027The kubespray_root_path of {} in the \u0027"},{"line_number":109,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":110,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":111,"context_line":"                        param\u003d\u0027kubespray_root_path\u0027)"},{"line_number":112,"context_line":"                if not value.get(\u0027transferring_inventory_path\u0027):"},{"line_number":113,"context_line":"                    LOG.error(\u0027The transferring_inventory_path of {} in the \u0027"},{"line_number":114,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":115,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":116,"context_line":"                        param\u003d\u0027transferring_inventory_path\u0027)"},{"line_number":117,"context_line":"            if \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":118,"context_line":"                if not value.get(\u0027ssh_username\u0027):"},{"line_number":119,"context_line":"                    LOG.error(\u0027The ssh_username of {} in the \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"9aafdd3d_a80eb20f","line":116,"range":{"start_line":102,"start_character":16,"end_line":116,"end_character":60},"updated":"2021-08-05 08:16:45.000000000","message":"ditto","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":99,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":100,"context_line":"                        param\u003d\u0027ssh_cp_name\u0027)"},{"line_number":101,"context_line":"            if \u0027ansible\u0027 \u003d\u003d key:"},{"line_number":102,"context_line":"                if not value.get(\u0027ip_address\u0027):"},{"line_number":103,"context_line":"                    LOG.error(\u0027The ip_address of {} in the \u0027"},{"line_number":104,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":105,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":106,"context_line":"                        param\u003d\u0027ip_address\u0027)"},{"line_number":107,"context_line":"                if not value.get(\u0027kubespray_root_path\u0027):"},{"line_number":108,"context_line":"                    LOG.error(\u0027The kubespray_root_path of {} in the \u0027"},{"line_number":109,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":110,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":111,"context_line":"                        param\u003d\u0027kubespray_root_path\u0027)"},{"line_number":112,"context_line":"                if not value.get(\u0027transferring_inventory_path\u0027):"},{"line_number":113,"context_line":"                    LOG.error(\u0027The transferring_inventory_path of {} in the \u0027"},{"line_number":114,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":115,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":116,"context_line":"                        param\u003d\u0027transferring_inventory_path\u0027)"},{"line_number":117,"context_line":"            if \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":118,"context_line":"                if not value.get(\u0027ssh_username\u0027):"},{"line_number":119,"context_line":"                    LOG.error(\u0027The ssh_username of {} in the \u0027"}],"source_content_type":"text/x-python","patch_set":6,"id":"c31a42e4_b68edc86","line":116,"range":{"start_line":102,"start_character":16,"end_line":116,"end_character":60},"in_reply_to":"9aafdd3d_a80eb20f","updated":"2021-08-11 07:47:59.000000000","message":"ditto","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":115,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":116,"context_line":"                        param\u003d\u0027transferring_inventory_path\u0027)"},{"line_number":117,"context_line":"            if \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":118,"context_line":"                if not value.get(\u0027ssh_username\u0027):"},{"line_number":119,"context_line":"                    LOG.error(\u0027The ssh_username of {} in the \u0027"},{"line_number":120,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":121,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":122,"context_line":"                        param\u003d\u0027ssh_username\u0027)"},{"line_number":123,"context_line":"                if not value.get(\u0027ssh_password\u0027):"},{"line_number":124,"context_line":"                    LOG.error(\u0027The ssh_password of {} in the \u0027"},{"line_number":125,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":126,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":127,"context_line":"                        param\u003d\u0027ssh_password\u0027)"},{"line_number":128,"context_line":"                if not value.get(\u0027script_path\u0027):"},{"line_number":129,"context_line":"                    LOG.error(\u0027The script_path of {} in the \u0027"},{"line_number":130,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":131,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":132,"context_line":"                        param\u003d\u0027script_path\u0027)"},{"line_number":133,"context_line":"                if value.get(\u0027script_path\u0027):"},{"line_number":134,"context_line":"                    abs_script_path \u003d os.path.join("},{"line_number":135,"context_line":"                        vnf_package_path, value.get(\u0027script_path\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"aa901804_5c59c4c2","line":132,"range":{"start_line":118,"start_character":16,"end_line":132,"end_character":44},"updated":"2021-08-05 08:16:45.000000000","message":"ditto","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":115,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":116,"context_line":"                        param\u003d\u0027transferring_inventory_path\u0027)"},{"line_number":117,"context_line":"            if \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":118,"context_line":"                if not value.get(\u0027ssh_username\u0027):"},{"line_number":119,"context_line":"                    LOG.error(\u0027The ssh_username of {} in the \u0027"},{"line_number":120,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":121,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":122,"context_line":"                        param\u003d\u0027ssh_username\u0027)"},{"line_number":123,"context_line":"                if not value.get(\u0027ssh_password\u0027):"},{"line_number":124,"context_line":"                    LOG.error(\u0027The ssh_password of {} in the \u0027"},{"line_number":125,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":126,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":127,"context_line":"                        param\u003d\u0027ssh_password\u0027)"},{"line_number":128,"context_line":"                if not value.get(\u0027script_path\u0027):"},{"line_number":129,"context_line":"                    LOG.error(\u0027The script_path of {} in the \u0027"},{"line_number":130,"context_line":"                              \u0027additionalParams cannot be None.\u0027.format(key))"},{"line_number":131,"context_line":"                    raise exceptions.MgmtDriverNotFound("},{"line_number":132,"context_line":"                        param\u003d\u0027script_path\u0027)"},{"line_number":133,"context_line":"                if value.get(\u0027script_path\u0027):"},{"line_number":134,"context_line":"                    abs_script_path \u003d os.path.join("},{"line_number":135,"context_line":"                        vnf_package_path, value.get(\u0027script_path\u0027))"}],"source_content_type":"text/x-python","patch_set":6,"id":"f6c38dd5_9a458ea9","line":132,"range":{"start_line":118,"start_character":16,"end_line":132,"end_character":44},"in_reply_to":"aa901804_5c59c4c2","updated":"2021-08-11 07:47:59.000000000","message":"ditto","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":165,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":166,"context_line":"                error_message\u003d\"Failed to get\""},{"line_number":167,"context_line":"                              \" the master\u0027s ssh ip.\")"},{"line_number":168,"context_line":"        if not node.get(\u0027nic_cp_name\u0027):"},{"line_number":169,"context_line":"            nic_ip \u003d ssh_ip"},{"line_number":170,"context_line":"        else:"},{"line_number":171,"context_line":"            nic_ip \u003d heatclient.resources.get("},{"line_number":172,"context_line":"                stack_id\u003dstack_id,"},{"line_number":173,"context_line":"                resource_name\u003dnode.get(\u0027nic_cp_name\u0027)).attributes.get("},{"line_number":174,"context_line":"                \u0027fixed_ips\u0027)[0].get(\u0027ip_address\u0027)"},{"line_number":175,"context_line":"        return ssh_ip, nic_ip"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def _get_group_resources_list("}],"source_content_type":"text/x-python","patch_set":6,"id":"eac712f2_d7bc2a9a","line":174,"range":{"start_line":168,"start_character":8,"end_line":174,"end_character":49},"updated":"2021-08-05 08:16:45.000000000","message":"Could I confirm that we should raise if `not nic_ip` is not True as similar to L.163?","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":165,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":166,"context_line":"                error_message\u003d\"Failed to get\""},{"line_number":167,"context_line":"                              \" the master\u0027s ssh ip.\")"},{"line_number":168,"context_line":"        if not node.get(\u0027nic_cp_name\u0027):"},{"line_number":169,"context_line":"            nic_ip \u003d ssh_ip"},{"line_number":170,"context_line":"        else:"},{"line_number":171,"context_line":"            nic_ip \u003d heatclient.resources.get("},{"line_number":172,"context_line":"                stack_id\u003dstack_id,"},{"line_number":173,"context_line":"                resource_name\u003dnode.get(\u0027nic_cp_name\u0027)).attributes.get("},{"line_number":174,"context_line":"                \u0027fixed_ips\u0027)[0].get(\u0027ip_address\u0027)"},{"line_number":175,"context_line":"        return ssh_ip, nic_ip"},{"line_number":176,"context_line":""},{"line_number":177,"context_line":"    def _get_group_resources_list("}],"source_content_type":"text/x-python","patch_set":6,"id":"119f8f38_7de0fe52","line":174,"range":{"start_line":168,"start_character":8,"end_line":174,"end_character":49},"in_reply_to":"eac712f2_d7bc2a9a","updated":"2021-08-11 07:47:59.000000000","message":"Yes. I have added this check in patch 7.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":187,"context_line":"            if nest_resources.resource_name \u003d\u003d group_stack_name:"},{"line_number":188,"context_line":"                group_stack_id \u003d nest_resources.physical_resource_id"},{"line_number":189,"context_line":"        if not group_stack_id:"},{"line_number":190,"context_line":"            LOG.error(\u0027No stack id matching the group was found.\u0027)"},{"line_number":191,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":192,"context_line":"                error_message\u003d\"No stack id matching the group was found\")"},{"line_number":193,"context_line":"        group_resources_list \u003d heatclient.resources.list("}],"source_content_type":"text/x-python","patch_set":6,"id":"ff1ef0d7_9052d410","line":190,"updated":"2021-08-05 08:16:45.000000000","message":"Why don\u0027t you include the `group_stack_id` in the message?","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":187,"context_line":"            if nest_resources.resource_name \u003d\u003d group_stack_name:"},{"line_number":188,"context_line":"                group_stack_id \u003d nest_resources.physical_resource_id"},{"line_number":189,"context_line":"        if not group_stack_id:"},{"line_number":190,"context_line":"            LOG.error(\u0027No stack id matching the group was found.\u0027)"},{"line_number":191,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":192,"context_line":"                error_message\u003d\"No stack id matching the group was found\")"},{"line_number":193,"context_line":"        group_resources_list \u003d heatclient.resources.list("}],"source_content_type":"text/x-python","patch_set":6,"id":"6c3dbe20_fe1d92f6","line":190,"in_reply_to":"ff1ef0d7_9052d410","updated":"2021-08-11 07:47:59.000000000","message":"Thank you for your advice. I have added the \u0027group_stack_id\u0027 in the message in patch 7.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":189,"context_line":"        if not group_stack_id:"},{"line_number":190,"context_line":"            LOG.error(\u0027No stack id matching the group was found.\u0027)"},{"line_number":191,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":192,"context_line":"                error_message\u003d\"No stack id matching the group was found\")"},{"line_number":193,"context_line":"        group_resources_list \u003d heatclient.resources.list("},{"line_number":194,"context_line":"            stack_id\u003dgroup_stack_id)"},{"line_number":195,"context_line":"        return group_resources_list"}],"source_content_type":"text/x-python","patch_set":6,"id":"a4cde70b_0f3b7ef7","line":192,"range":{"start_line":192,"start_character":30,"end_line":192,"end_character":72},"updated":"2021-08-05 08:16:45.000000000","message":"and also here.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":189,"context_line":"        if not group_stack_id:"},{"line_number":190,"context_line":"            LOG.error(\u0027No stack id matching the group was found.\u0027)"},{"line_number":191,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":192,"context_line":"                error_message\u003d\"No stack id matching the group was found\")"},{"line_number":193,"context_line":"        group_resources_list \u003d heatclient.resources.list("},{"line_number":194,"context_line":"            stack_id\u003dgroup_stack_id)"},{"line_number":195,"context_line":"        return group_resources_list"}],"source_content_type":"text/x-python","patch_set":6,"id":"98354bc5_a4198a75","line":192,"range":{"start_line":192,"start_character":30,"end_line":192,"end_character":72},"in_reply_to":"a4cde70b_0f3b7ef7","updated":"2021-08-11 07:47:59.000000000","message":"ditto.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                                 \"/tmp/{}\".format("},{"line_number":249,"context_line":"                                     script_path.replace(\u0027Scripts\u0027, \u0027\u0027)))"},{"line_number":250,"context_line":"                    if token_flag:"},{"line_number":251,"context_line":"                        sftp.put(os.path.join("},{"line_number":252,"context_line":"                            os.path.dirname(os.path.abspath(__file__)),"},{"line_number":253,"context_line":"                            \"../../../samples/mgmt_driver/\""},{"line_number":254,"context_line":"                            \"create_admin_token.yaml\"),"},{"line_number":255,"context_line":"                            \"/tmp/create_admin_token.yaml\")"},{"line_number":256,"context_line":"                    connect.close()"},{"line_number":257,"context_line":"                commander \u003d cmd_executer.RemoteCommandExecutor("},{"line_number":258,"context_line":"                    user\u003duser, password\u003dpassword, host\u003dhost,"}],"source_content_type":"text/x-python","patch_set":6,"id":"f582a1d9_1ebdf6b8","line":255,"range":{"start_line":251,"start_character":0,"end_line":255,"end_character":59},"updated":"2021-08-05 08:16:45.000000000","message":"It\u0027s helpful for maintainers to revise it like as following.\n\n```\nfname \u003d \u0027create_admin_token.yaml\u0027\nsftp.put(os.path.join(\n    os.path.dirname(os.path.abspath(__file__)),\n    \"../../../samples/mgmt_driver/{}\".format(fname)),\n    \"/tmp/{}\".format(fname)\n```","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":248,"context_line":"                                 \"/tmp/{}\".format("},{"line_number":249,"context_line":"                                     script_path.replace(\u0027Scripts\u0027, \u0027\u0027)))"},{"line_number":250,"context_line":"                    if token_flag:"},{"line_number":251,"context_line":"                        sftp.put(os.path.join("},{"line_number":252,"context_line":"                            os.path.dirname(os.path.abspath(__file__)),"},{"line_number":253,"context_line":"                            \"../../../samples/mgmt_driver/\""},{"line_number":254,"context_line":"                            \"create_admin_token.yaml\"),"},{"line_number":255,"context_line":"                            \"/tmp/create_admin_token.yaml\")"},{"line_number":256,"context_line":"                    connect.close()"},{"line_number":257,"context_line":"                commander \u003d cmd_executer.RemoteCommandExecutor("},{"line_number":258,"context_line":"                    user\u003duser, password\u003dpassword, host\u003dhost,"}],"source_content_type":"text/x-python","patch_set":6,"id":"dc048452_3b24ffd7","line":255,"range":{"start_line":251,"start_character":0,"end_line":255,"end_character":59},"in_reply_to":"f582a1d9_1ebdf6b8","updated":"2021-08-11 07:47:59.000000000","message":"Thank you for your advice. I have modified these codes in patch 7.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":267,"context_line":"                    raise paramiko.SSHException()"},{"line_number":268,"context_line":"                time.sleep(SERVER_WAIT_COMPLETE_TIME)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    def _send_and_receive_file(self, host, user, password,"},{"line_number":271,"context_line":"                               remote_file, local_file, operation):"},{"line_number":272,"context_line":"        connect \u003d paramiko.Transport(host, 22)"},{"line_number":273,"context_line":"        connect.connect(username\u003duser, password\u003dpassword)"}],"source_content_type":"text/x-python","patch_set":6,"id":"6349373f_70d4ac02","line":270,"range":{"start_line":270,"start_character":8,"end_line":270,"end_character":30},"updated":"2021-08-05 08:16:45.000000000","message":"`_send_or_receive_file` correctly?","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":267,"context_line":"                    raise paramiko.SSHException()"},{"line_number":268,"context_line":"                time.sleep(SERVER_WAIT_COMPLETE_TIME)"},{"line_number":269,"context_line":""},{"line_number":270,"context_line":"    def _send_and_receive_file(self, host, user, password,"},{"line_number":271,"context_line":"                               remote_file, local_file, operation):"},{"line_number":272,"context_line":"        connect \u003d paramiko.Transport(host, 22)"},{"line_number":273,"context_line":"        connect.connect(username\u003duser, password\u003dpassword)"}],"source_content_type":"text/x-python","patch_set":6,"id":"8a95a75e_92deee94","line":270,"range":{"start_line":270,"start_character":8,"end_line":270,"end_character":30},"in_reply_to":"6349373f_70d4ac02","updated":"2021-08-11 07:47:59.000000000","message":"Yes. I have modified the name in patch 7.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":334,"context_line":"                           worker_node, worker_vm_dict_list):"},{"line_number":335,"context_line":"        hosts_yaml_content \u003d {}"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        hosts_yaml_content[\u0027all\u0027] \u003d {\u0027hosts\u0027: {},"},{"line_number":338,"context_line":"                                     \u0027children\u0027:"},{"line_number":339,"context_line":"                                         {\u0027kube-master\u0027: {"},{"line_number":340,"context_line":"                                             \u0027hosts\u0027: {}},"},{"line_number":341,"context_line":"                                         \u0027kube-node\u0027: {"},{"line_number":342,"context_line":"                                             \u0027hosts\u0027: {}},"},{"line_number":343,"context_line":"                                         \u0027etcd\u0027: {"},{"line_number":344,"context_line":"                                             \u0027hosts\u0027: {}},"},{"line_number":345,"context_line":"                                         \u0027k8s-cluster\u0027: {"},{"line_number":346,"context_line":"                                             \u0027children\u0027: {"},{"line_number":347,"context_line":"                                                 \u0027kube-master\u0027: None,"},{"line_number":348,"context_line":"                                                 \u0027kube-node\u0027: None}},"},{"line_number":349,"context_line":"                                         \u0027calico-rr\u0027: {\u0027hosts\u0027: {}}}"},{"line_number":350,"context_line":"                                     }"},{"line_number":351,"context_line":"        for master_vm in master_vm_dict_list:"},{"line_number":352,"context_line":"            key \u003d \u0027master\u0027 + master_vm.get(\u0027nic_ip\u0027).split(\u0027.\u0027)[-1]"}],"source_content_type":"text/x-python","patch_set":6,"id":"840720dc_5125900f","line":349,"range":{"start_line":337,"start_character":8,"end_line":349,"end_character":68},"updated":"2021-08-05 08:16:45.000000000","message":"nit. It\u0027s better to understand to put key and value in the same line as possible.\n```\n        hosts_yaml_content[\u0027all\u0027] \u003d {\n            \u0027hosts\u0027: {},\n            \u0027children\u0027: {\n                \u0027kube-master\u0027: {\u0027hosts\u0027: {}},\n                \u0027kube-node\u0027: {\u0027hosts\u0027: {}},\n                \u0027etcd\u0027: {\u0027hosts\u0027: {}},\n                \u0027k8s-cluster\u0027: {\n                    \u0027children\u0027: {\u0027kube-master\u0027: None, \u0027kube-node\u0027: None}},\n                \u0027calico-rr\u0027: {\u0027hosts\u0027: {}}}}\n```","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":334,"context_line":"                           worker_node, worker_vm_dict_list):"},{"line_number":335,"context_line":"        hosts_yaml_content \u003d {}"},{"line_number":336,"context_line":""},{"line_number":337,"context_line":"        hosts_yaml_content[\u0027all\u0027] \u003d {\u0027hosts\u0027: {},"},{"line_number":338,"context_line":"                                     \u0027children\u0027:"},{"line_number":339,"context_line":"                                         {\u0027kube-master\u0027: {"},{"line_number":340,"context_line":"                                             \u0027hosts\u0027: {}},"},{"line_number":341,"context_line":"                                         \u0027kube-node\u0027: {"},{"line_number":342,"context_line":"                                             \u0027hosts\u0027: {}},"},{"line_number":343,"context_line":"                                         \u0027etcd\u0027: {"},{"line_number":344,"context_line":"                                             \u0027hosts\u0027: {}},"},{"line_number":345,"context_line":"                                         \u0027k8s-cluster\u0027: {"},{"line_number":346,"context_line":"                                             \u0027children\u0027: {"},{"line_number":347,"context_line":"                                                 \u0027kube-master\u0027: None,"},{"line_number":348,"context_line":"                                                 \u0027kube-node\u0027: None}},"},{"line_number":349,"context_line":"                                         \u0027calico-rr\u0027: {\u0027hosts\u0027: {}}}"},{"line_number":350,"context_line":"                                     }"},{"line_number":351,"context_line":"        for master_vm in master_vm_dict_list:"},{"line_number":352,"context_line":"            key \u003d \u0027master\u0027 + master_vm.get(\u0027nic_ip\u0027).split(\u0027.\u0027)[-1]"}],"source_content_type":"text/x-python","patch_set":6,"id":"dccfa141_3966e8b0","line":349,"range":{"start_line":337,"start_character":8,"end_line":349,"end_character":68},"in_reply_to":"840720dc_5125900f","updated":"2021-08-11 07:47:59.000000000","message":"Thank you for your advice. I have changed the format in patch 7.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020 FUJITSU"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":7,"id":"7a3cda86_3b25a6fa","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":21},"updated":"2021-08-20 06:26:55.000000000","message":"nit: 2021?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020 FUJITSU"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":7,"id":"da93ec05_fefab897","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":21},"in_reply_to":"7a3cda86_3b25a6fa","updated":"2021-08-30 02:34:42.000000000","message":"I have modified it to 2021.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":1,"context_line":"# Copyright (C) 2020 FUJITSU"},{"line_number":2,"context_line":"# All Rights Reserved."},{"line_number":3,"context_line":"#"},{"line_number":4,"context_line":"#    Licensed under the Apache License, Version 2.0 (the \"License\"); you may"}],"source_content_type":"text/x-python","patch_set":7,"id":"2e373310_fc4f4da2","line":1,"range":{"start_line":1,"start_character":16,"end_line":1,"end_character":21},"in_reply_to":"da93ec05_fefab897","updated":"2021-08-31 05:35:17.000000000","message":"I\u0027ve confirmed.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7244ccc21642bcaecfc760f35a2ea10c6437e374","unresolved":true,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import eventlet"},{"line_number":17,"context_line":"import ipaddress"},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"import paramiko"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":"import yaml"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":"from oslo_utils import uuidutils"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"9c33d326_e3ecb776","line":22,"range":{"start_line":15,"start_character":0,"end_line":22,"end_character":0},"updated":"2021-08-20 08:24:44.000000000","message":"Sort `import` in alphabetical order.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"9222ff9107e478d1ae4be32dee616ec7c1f2a342","unresolved":true,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import eventlet"},{"line_number":17,"context_line":"import ipaddress"},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"import paramiko"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":"import yaml"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":"from oslo_utils import uuidutils"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"88722506_2f32d498","line":22,"range":{"start_line":15,"start_character":0,"end_line":22,"end_character":0},"in_reply_to":"9c33d326_e3ecb776","updated":"2021-08-26 01:57:17.000000000","message":"Sorry, this is a wrong comment. The correct comment is below:\n\nModule `ipaddress`, `os` and `time` are standard library of python, thus import statements of those modules should be placed before `import eventlet` and separate by a blank line.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":12,"context_line":"#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the"},{"line_number":13,"context_line":"#    License for the specific language governing permissions and limitations"},{"line_number":14,"context_line":"#    under the License."},{"line_number":15,"context_line":""},{"line_number":16,"context_line":"import eventlet"},{"line_number":17,"context_line":"import ipaddress"},{"line_number":18,"context_line":"import os"},{"line_number":19,"context_line":"import paramiko"},{"line_number":20,"context_line":"import time"},{"line_number":21,"context_line":"import yaml"},{"line_number":22,"context_line":""},{"line_number":23,"context_line":"from oslo_log import log as logging"},{"line_number":24,"context_line":"from oslo_utils import uuidutils"},{"line_number":25,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"88d44d29_77acbae2","line":22,"range":{"start_line":15,"start_character":0,"end_line":22,"end_character":0},"in_reply_to":"9c33d326_e3ecb776","updated":"2021-08-30 02:34:42.000000000","message":"Thank you for your advice. I have fixed the sort in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7244ccc21642bcaecfc760f35a2ea10c6437e374","unresolved":true,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def _get_vim_connection_info(self, context, instantiate_vnf_req):"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        vim_info \u003d vnflcm_utils._get_vim(context,"},{"line_number":65,"context_line":"                instantiate_vnf_req.vim_connection_info)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        vim_connection_info \u003d objects.VimConnectionInfo.obj_from_primitive("}],"source_content_type":"text/x-python","patch_set":7,"id":"0722a4bf_8f05e2f6","line":64,"updated":"2021-08-20 08:24:44.000000000","message":"It seems that `_get_vim` is a protected method in `tacker.vnflcm.utils`. Even if this operation works correctly in python, you should use other ways to retrieve VIM information instead of accessing the protected method.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":61,"context_line":""},{"line_number":62,"context_line":"    def _get_vim_connection_info(self, context, instantiate_vnf_req):"},{"line_number":63,"context_line":""},{"line_number":64,"context_line":"        vim_info \u003d vnflcm_utils._get_vim(context,"},{"line_number":65,"context_line":"                instantiate_vnf_req.vim_connection_info)"},{"line_number":66,"context_line":""},{"line_number":67,"context_line":"        vim_connection_info \u003d objects.VimConnectionInfo.obj_from_primitive("}],"source_content_type":"text/x-python","patch_set":7,"id":"7d17d1b6_a5d287f1","line":64,"in_reply_to":"0722a4bf_8f05e2f6","updated":"2021-08-30 02:34:42.000000000","message":"I have added a public function in tacker.vnflcm.utils. I think others will use it in future.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7244ccc21642bcaecfc760f35a2ea10c6437e374","unresolved":true,"context_lines":[{"line_number":92,"context_line":"    def _check_input_parameters(self, additional_param, vnf_package_path):"},{"line_number":93,"context_line":"        for key, value in additional_param.items():"},{"line_number":94,"context_line":"            attr_list \u003d []"},{"line_number":95,"context_line":"            if \u0027proxy\u0027 !\u003d key and \u0027external_lb_param\u0027 !\u003d key and\\"},{"line_number":96,"context_line":"                    \u0027vim_name\u0027 !\u003d key:"},{"line_number":97,"context_line":"                attr_list.extend([\u0027username\u0027, \u0027password\u0027])"},{"line_number":98,"context_line":"            if \u0027master_node\u0027 \u003d\u003d key or \u0027worker_node\u0027 \u003d\u003d key \\"},{"line_number":99,"context_line":"                    or \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":100,"context_line":"                attr_list.extend([\u0027ssh_cp_name\u0027])"},{"line_number":101,"context_line":"            if \u0027ansible\u0027 \u003d\u003d key:"},{"line_number":102,"context_line":"                attr_list.extend([\u0027ip_address\u0027, \u0027kubespray_root_path\u0027,"},{"line_number":103,"context_line":"                                 \u0027transferring_inventory_path\u0027])"},{"line_number":104,"context_line":"            if \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":105,"context_line":"                attr_list.extend([\u0027ssh_username\u0027, \u0027ssh_password\u0027,"},{"line_number":106,"context_line":"                                  \u0027script_path\u0027])"},{"line_number":107,"context_line":"                if value.get(\u0027script_path\u0027):"},{"line_number":108,"context_line":"                    abs_script_path \u003d os.path.join("},{"line_number":109,"context_line":"                        vnf_package_path, value.get(\u0027script_path\u0027))"},{"line_number":110,"context_line":"                    if not os.path.exists(abs_script_path):"},{"line_number":111,"context_line":"                        LOG.error(\u0027The path of external_lb_param\u0027"},{"line_number":112,"context_line":"                                  \u0027 script is invalid.\u0027)"},{"line_number":113,"context_line":"                        raise exceptions.MgmtDriverOtherError("},{"line_number":114,"context_line":"                            error_message\u003d\"The path of external_lb_param\""},{"line_number":115,"context_line":"                                          \" script is invalid\")"},{"line_number":116,"context_line":"            if \u0027master_node\u0027 \u003d\u003d key or \u0027ansible\u0027 \u003d\u003d key:"},{"line_number":117,"context_line":"                for attr in [\u0027pod_cidr\u0027, \u0027cluster_cidr\u0027, \u0027ip_address\u0027]:"},{"line_number":118,"context_line":"                    if value.get(attr):"},{"line_number":119,"context_line":"                        self._check_is_cidr("},{"line_number":120,"context_line":"                            key, attr, value.get(attr))"},{"line_number":121,"context_line":"            if attr_list:"},{"line_number":122,"context_line":"                self._check_value_exist(attr_list, value, key)"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"2eeacf09_745921a4","line":120,"range":{"start_line":95,"start_character":0,"end_line":120,"end_character":55},"updated":"2021-08-20 08:24:44.000000000","message":"Conditions in those `if` clauses are little bit strange; You should write them like\n\n```\nif key !\u003d \u0027proxy\u0027 and key !\u003d \u0027external_lb_param\u0027 and\\\n....\n```","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":92,"context_line":"    def _check_input_parameters(self, additional_param, vnf_package_path):"},{"line_number":93,"context_line":"        for key, value in additional_param.items():"},{"line_number":94,"context_line":"            attr_list \u003d []"},{"line_number":95,"context_line":"            if \u0027proxy\u0027 !\u003d key and \u0027external_lb_param\u0027 !\u003d key and\\"},{"line_number":96,"context_line":"                    \u0027vim_name\u0027 !\u003d key:"},{"line_number":97,"context_line":"                attr_list.extend([\u0027username\u0027, \u0027password\u0027])"},{"line_number":98,"context_line":"            if \u0027master_node\u0027 \u003d\u003d key or \u0027worker_node\u0027 \u003d\u003d key \\"},{"line_number":99,"context_line":"                    or \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":100,"context_line":"                attr_list.extend([\u0027ssh_cp_name\u0027])"},{"line_number":101,"context_line":"            if \u0027ansible\u0027 \u003d\u003d key:"},{"line_number":102,"context_line":"                attr_list.extend([\u0027ip_address\u0027, \u0027kubespray_root_path\u0027,"},{"line_number":103,"context_line":"                                 \u0027transferring_inventory_path\u0027])"},{"line_number":104,"context_line":"            if \u0027external_lb_param\u0027 \u003d\u003d key:"},{"line_number":105,"context_line":"                attr_list.extend([\u0027ssh_username\u0027, \u0027ssh_password\u0027,"},{"line_number":106,"context_line":"                                  \u0027script_path\u0027])"},{"line_number":107,"context_line":"                if value.get(\u0027script_path\u0027):"},{"line_number":108,"context_line":"                    abs_script_path \u003d os.path.join("},{"line_number":109,"context_line":"                        vnf_package_path, value.get(\u0027script_path\u0027))"},{"line_number":110,"context_line":"                    if not os.path.exists(abs_script_path):"},{"line_number":111,"context_line":"                        LOG.error(\u0027The path of external_lb_param\u0027"},{"line_number":112,"context_line":"                                  \u0027 script is invalid.\u0027)"},{"line_number":113,"context_line":"                        raise exceptions.MgmtDriverOtherError("},{"line_number":114,"context_line":"                            error_message\u003d\"The path of external_lb_param\""},{"line_number":115,"context_line":"                                          \" script is invalid\")"},{"line_number":116,"context_line":"            if \u0027master_node\u0027 \u003d\u003d key or \u0027ansible\u0027 \u003d\u003d key:"},{"line_number":117,"context_line":"                for attr in [\u0027pod_cidr\u0027, \u0027cluster_cidr\u0027, \u0027ip_address\u0027]:"},{"line_number":118,"context_line":"                    if value.get(attr):"},{"line_number":119,"context_line":"                        self._check_is_cidr("},{"line_number":120,"context_line":"                            key, attr, value.get(attr))"},{"line_number":121,"context_line":"            if attr_list:"},{"line_number":122,"context_line":"                self._check_value_exist(attr_list, value, key)"},{"line_number":123,"context_line":""}],"source_content_type":"text/x-python","patch_set":7,"id":"42fe5f6b_85d27b58","line":120,"range":{"start_line":95,"start_character":0,"end_line":120,"end_character":55},"in_reply_to":"2eeacf09_745921a4","updated":"2021-08-30 02:34:42.000000000","message":"I have modifed these codes in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":126,"context_line":"            stack_id\u003dstack_id,"},{"line_number":127,"context_line":"            resource_name\u003dnode.get(\u0027ssh_cp_name\u0027))"},{"line_number":128,"context_line":"        if resource_info.attributes.get(\u0027floating_ip_address\u0027):"},{"line_number":129,"context_line":"            self.FLOATING_IP_FLAG \u003d True"},{"line_number":130,"context_line":"            ssh_ip \u003d resource_info.attributes.get(\u0027floating_ip_address\u0027)"},{"line_number":131,"context_line":"        else:"},{"line_number":132,"context_line":"            ssh_ip \u003d resource_info.attributes.get("}],"source_content_type":"text/x-python","patch_set":7,"id":"df5da75e_d47eed7d","line":129,"range":{"start_line":129,"start_character":12,"end_line":129,"end_character":40},"updated":"2021-08-20 06:26:55.000000000","message":"It seems be unused flag in this file. Could you delete it if possible?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7244ccc21642bcaecfc760f35a2ea10c6437e374","unresolved":true,"context_lines":[{"line_number":126,"context_line":"            stack_id\u003dstack_id,"},{"line_number":127,"context_line":"            resource_name\u003dnode.get(\u0027ssh_cp_name\u0027))"},{"line_number":128,"context_line":"        if resource_info.attributes.get(\u0027floating_ip_address\u0027):"},{"line_number":129,"context_line":"            self.FLOATING_IP_FLAG \u003d True"},{"line_number":130,"context_line":"            ssh_ip \u003d resource_info.attributes.get(\u0027floating_ip_address\u0027)"},{"line_number":131,"context_line":"        else:"},{"line_number":132,"context_line":"            ssh_ip \u003d resource_info.attributes.get("}],"source_content_type":"text/x-python","patch_set":7,"id":"ea630d79_f2060327","line":129,"updated":"2021-08-20 08:24:44.000000000","message":"Moreover, if this flag is required, please check the followings:\n- Use snake_case variable name (i.e. floating_ip_flag).\n- Instance attribute should be defined in __init__.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":126,"context_line":"            stack_id\u003dstack_id,"},{"line_number":127,"context_line":"            resource_name\u003dnode.get(\u0027ssh_cp_name\u0027))"},{"line_number":128,"context_line":"        if resource_info.attributes.get(\u0027floating_ip_address\u0027):"},{"line_number":129,"context_line":"            self.FLOATING_IP_FLAG \u003d True"},{"line_number":130,"context_line":"            ssh_ip \u003d resource_info.attributes.get(\u0027floating_ip_address\u0027)"},{"line_number":131,"context_line":"        else:"},{"line_number":132,"context_line":"            ssh_ip \u003d resource_info.attributes.get("}],"source_content_type":"text/x-python","patch_set":7,"id":"d691cad7_eb9e9b82","line":129,"range":{"start_line":129,"start_character":12,"end_line":129,"end_character":40},"in_reply_to":"5d4424f9_cece8dcd","updated":"2021-08-31 05:35:17.000000000","message":"I\u0027ve confirmed.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":126,"context_line":"            stack_id\u003dstack_id,"},{"line_number":127,"context_line":"            resource_name\u003dnode.get(\u0027ssh_cp_name\u0027))"},{"line_number":128,"context_line":"        if resource_info.attributes.get(\u0027floating_ip_address\u0027):"},{"line_number":129,"context_line":"            self.FLOATING_IP_FLAG \u003d True"},{"line_number":130,"context_line":"            ssh_ip \u003d resource_info.attributes.get(\u0027floating_ip_address\u0027)"},{"line_number":131,"context_line":"        else:"},{"line_number":132,"context_line":"            ssh_ip \u003d resource_info.attributes.get("}],"source_content_type":"text/x-python","patch_set":7,"id":"5d4424f9_cece8dcd","line":129,"range":{"start_line":129,"start_character":12,"end_line":129,"end_character":40},"in_reply_to":"df5da75e_d47eed7d","updated":"2021-08-30 02:34:42.000000000","message":"I have deleted it in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":126,"context_line":"            stack_id\u003dstack_id,"},{"line_number":127,"context_line":"            resource_name\u003dnode.get(\u0027ssh_cp_name\u0027))"},{"line_number":128,"context_line":"        if resource_info.attributes.get(\u0027floating_ip_address\u0027):"},{"line_number":129,"context_line":"            self.FLOATING_IP_FLAG \u003d True"},{"line_number":130,"context_line":"            ssh_ip \u003d resource_info.attributes.get(\u0027floating_ip_address\u0027)"},{"line_number":131,"context_line":"        else:"},{"line_number":132,"context_line":"            ssh_ip \u003d resource_info.attributes.get("}],"source_content_type":"text/x-python","patch_set":7,"id":"8cd83563_43d31b85","line":129,"in_reply_to":"ea630d79_f2060327","updated":"2021-08-30 02:34:42.000000000","message":"This flag is not required.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":214,"context_line":"    def _init_commander_and_set_script(self, user, password, host,"},{"line_number":215,"context_line":"                                       timeout, vnf_package_path\u003dNone,"},{"line_number":216,"context_line":"                                       script_path\u003dNone, token_flag\u003dFalse):"},{"line_number":217,"context_line":"        retry \u003d 4"},{"line_number":218,"context_line":"        while retry \u003e 0:"},{"line_number":219,"context_line":"            try:"},{"line_number":220,"context_line":"                if (vnf_package_path and script_path) or token_flag:"}],"source_content_type":"text/x-python","patch_set":7,"id":"518530e6_c3f13281","line":217,"range":{"start_line":217,"start_character":16,"end_line":217,"end_character":17},"updated":"2021-08-20 06:26:55.000000000","message":"Why don\u0027t you define constant instead of direct value?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":214,"context_line":"    def _init_commander_and_set_script(self, user, password, host,"},{"line_number":215,"context_line":"                                       timeout, vnf_package_path\u003dNone,"},{"line_number":216,"context_line":"                                       script_path\u003dNone, token_flag\u003dFalse):"},{"line_number":217,"context_line":"        retry \u003d 4"},{"line_number":218,"context_line":"        while retry \u003e 0:"},{"line_number":219,"context_line":"            try:"},{"line_number":220,"context_line":"                if (vnf_package_path and script_path) or token_flag:"}],"source_content_type":"text/x-python","patch_set":7,"id":"9ba7814b_5cc4380f","line":217,"range":{"start_line":217,"start_character":16,"end_line":217,"end_character":17},"in_reply_to":"518530e6_c3f13281","updated":"2021-08-30 02:34:42.000000000","message":"I have defined a constant value.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":214,"context_line":"    def _init_commander_and_set_script(self, user, password, host,"},{"line_number":215,"context_line":"                                       timeout, vnf_package_path\u003dNone,"},{"line_number":216,"context_line":"                                       script_path\u003dNone, token_flag\u003dFalse):"},{"line_number":217,"context_line":"        retry \u003d 4"},{"line_number":218,"context_line":"        while retry \u003e 0:"},{"line_number":219,"context_line":"            try:"},{"line_number":220,"context_line":"                if (vnf_package_path and script_path) or token_flag:"}],"source_content_type":"text/x-python","patch_set":7,"id":"e1bd06b9_4a11906f","line":217,"range":{"start_line":217,"start_character":16,"end_line":217,"end_character":17},"in_reply_to":"9ba7814b_5cc4380f","updated":"2021-08-31 05:35:17.000000000","message":"I\u0027ve confirmed.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":274,"context_line":"                    raise exceptions.MgmtDriverOtherError("},{"line_number":275,"context_line":"                        error_message\u003d\u0027It is time out, When execute command: \u0027"},{"line_number":276,"context_line":"                                      \u0027{}.\u0027.format(ssh_command))"},{"line_number":277,"context_line":"                time.sleep(30)"},{"line_number":278,"context_line":"        if type \u003d\u003d \u0027common\u0027:"},{"line_number":279,"context_line":"            if result.get_return_code() !\u003d 0:"},{"line_number":280,"context_line":"                err \u003d result.get_stderr()"}],"source_content_type":"text/x-python","patch_set":7,"id":"92f736a6_27478c47","line":277,"range":{"start_line":277,"start_character":27,"end_line":277,"end_character":29},"updated":"2021-08-20 06:26:55.000000000","message":"Why don\u0027t you define constant instead of direct value?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":274,"context_line":"                    raise exceptions.MgmtDriverOtherError("},{"line_number":275,"context_line":"                        error_message\u003d\u0027It is time out, When execute command: \u0027"},{"line_number":276,"context_line":"                                      \u0027{}.\u0027.format(ssh_command))"},{"line_number":277,"context_line":"                time.sleep(30)"},{"line_number":278,"context_line":"        if type \u003d\u003d \u0027common\u0027:"},{"line_number":279,"context_line":"            if result.get_return_code() !\u003d 0:"},{"line_number":280,"context_line":"                err \u003d result.get_stderr()"}],"source_content_type":"text/x-python","patch_set":7,"id":"e63b82a3_e851e4df","line":277,"range":{"start_line":277,"start_character":27,"end_line":277,"end_character":29},"in_reply_to":"2ffd9f73_c1a12679","updated":"2021-08-31 05:35:17.000000000","message":"I\u0027ve confirmed.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":274,"context_line":"                    raise exceptions.MgmtDriverOtherError("},{"line_number":275,"context_line":"                        error_message\u003d\u0027It is time out, When execute command: \u0027"},{"line_number":276,"context_line":"                                      \u0027{}.\u0027.format(ssh_command))"},{"line_number":277,"context_line":"                time.sleep(30)"},{"line_number":278,"context_line":"        if type \u003d\u003d \u0027common\u0027:"},{"line_number":279,"context_line":"            if result.get_return_code() !\u003d 0:"},{"line_number":280,"context_line":"                err \u003d result.get_stderr()"}],"source_content_type":"text/x-python","patch_set":7,"id":"2ffd9f73_c1a12679","line":277,"range":{"start_line":277,"start_character":27,"end_line":277,"end_character":29},"in_reply_to":"92f736a6_27478c47","updated":"2021-08-30 02:34:42.000000000","message":"I have defined a constant value.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":364,"context_line":"        master_commander.close_session()"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"        # create inventory/hosts.yaml"},{"line_number":367,"context_line":"        ansibe_commander \u003d self._init_commander_and_set_script("},{"line_number":368,"context_line":"            ansible.get(\u0027username\u0027), ansible.get(\u0027password\u0027),"},{"line_number":369,"context_line":"            ansible.get(\u0027ip_address\u0027), K8S_CMD_TIMEOUT)"},{"line_number":370,"context_line":"        ssh_command \u003d \"ls -l {}\".format("}],"source_content_type":"text/x-python","patch_set":7,"id":"45cd4fd5_22dda1a0","line":367,"range":{"start_line":367,"start_character":8,"end_line":367,"end_character":14},"updated":"2021-08-20 06:26:55.000000000","message":"ansible?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":364,"context_line":"        master_commander.close_session()"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"        # create inventory/hosts.yaml"},{"line_number":367,"context_line":"        ansibe_commander \u003d self._init_commander_and_set_script("},{"line_number":368,"context_line":"            ansible.get(\u0027username\u0027), ansible.get(\u0027password\u0027),"},{"line_number":369,"context_line":"            ansible.get(\u0027ip_address\u0027), K8S_CMD_TIMEOUT)"},{"line_number":370,"context_line":"        ssh_command \u003d \"ls -l {}\".format("}],"source_content_type":"text/x-python","patch_set":7,"id":"79690f6d_f31bd8a0","line":367,"range":{"start_line":367,"start_character":8,"end_line":367,"end_character":14},"in_reply_to":"3fedcf33_ee0e1719","updated":"2021-08-31 05:35:17.000000000","message":"I\u0027ve confirmed.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":364,"context_line":"        master_commander.close_session()"},{"line_number":365,"context_line":""},{"line_number":366,"context_line":"        # create inventory/hosts.yaml"},{"line_number":367,"context_line":"        ansibe_commander \u003d self._init_commander_and_set_script("},{"line_number":368,"context_line":"            ansible.get(\u0027username\u0027), ansible.get(\u0027password\u0027),"},{"line_number":369,"context_line":"            ansible.get(\u0027ip_address\u0027), K8S_CMD_TIMEOUT)"},{"line_number":370,"context_line":"        ssh_command \u003d \"ls -l {}\".format("}],"source_content_type":"text/x-python","patch_set":7,"id":"3fedcf33_ee0e1719","line":367,"range":{"start_line":367,"start_character":8,"end_line":367,"end_character":14},"in_reply_to":"45cd4fd5_22dda1a0","updated":"2021-08-30 02:34:42.000000000","message":"I have fixed it.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":419,"context_line":"            cluster_cidr \u003d external_lb_param.get("},{"line_number":420,"context_line":"                \u0027cluster_cidr\u0027).replace(\u0027/\u0027, \u0027\\\\/\u0027)"},{"line_number":421,"context_line":"            ssh_command \u003d \u0027sed -i \"s/kube_service_addresses:\u0027 \\"},{"line_number":422,"context_line":"                          \u0027 10.233.0.0\\\\/18/\u0027 \\"},{"line_number":423,"context_line":"                          \u0027kube_service_addresses: {k8s_service_address}/g\"\u0027 \\"},{"line_number":424,"context_line":"                          \u0027 {k8s_cluster_file_path}\u0027.format("},{"line_number":425,"context_line":"                              k8s_service_address\u003dcluster_cidr,"}],"source_content_type":"text/x-python","patch_set":7,"id":"d446a5d8_60749cb0","line":422,"range":{"start_line":422,"start_character":28,"end_line":422,"end_character":38},"updated":"2021-08-20 06:26:55.000000000","message":"Just a question, will this value be the same in any environment?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":419,"context_line":"            cluster_cidr \u003d external_lb_param.get("},{"line_number":420,"context_line":"                \u0027cluster_cidr\u0027).replace(\u0027/\u0027, \u0027\\\\/\u0027)"},{"line_number":421,"context_line":"            ssh_command \u003d \u0027sed -i \"s/kube_service_addresses:\u0027 \\"},{"line_number":422,"context_line":"                          \u0027 10.233.0.0\\\\/18/\u0027 \\"},{"line_number":423,"context_line":"                          \u0027kube_service_addresses: {k8s_service_address}/g\"\u0027 \\"},{"line_number":424,"context_line":"                          \u0027 {k8s_cluster_file_path}\u0027.format("},{"line_number":425,"context_line":"                              k8s_service_address\u003dcluster_cidr,"}],"source_content_type":"text/x-python","patch_set":7,"id":"dd765b63_ca0fc0fc","line":422,"range":{"start_line":422,"start_character":28,"end_line":422,"end_character":38},"in_reply_to":"5e242ae7_de0930db","updated":"2021-08-31 05:35:17.000000000","message":"I got it, thanks.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":419,"context_line":"            cluster_cidr \u003d external_lb_param.get("},{"line_number":420,"context_line":"                \u0027cluster_cidr\u0027).replace(\u0027/\u0027, \u0027\\\\/\u0027)"},{"line_number":421,"context_line":"            ssh_command \u003d \u0027sed -i \"s/kube_service_addresses:\u0027 \\"},{"line_number":422,"context_line":"                          \u0027 10.233.0.0\\\\/18/\u0027 \\"},{"line_number":423,"context_line":"                          \u0027kube_service_addresses: {k8s_service_address}/g\"\u0027 \\"},{"line_number":424,"context_line":"                          \u0027 {k8s_cluster_file_path}\u0027.format("},{"line_number":425,"context_line":"                              k8s_service_address\u003dcluster_cidr,"}],"source_content_type":"text/x-python","patch_set":7,"id":"5e242ae7_de0930db","line":422,"range":{"start_line":422,"start_character":28,"end_line":422,"end_character":38},"in_reply_to":"d446a5d8_60749cb0","updated":"2021-08-30 02:34:42.000000000","message":"Yes. It\u0027s kubespary\u0027s default value.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":459,"context_line":"        ansibe_commander.close_session()"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"        # install k8s cluster"},{"line_number":462,"context_line":"        time.sleep(120)"},{"line_number":463,"context_line":"        install_timeout \u003d K8S_INSTALL_TIMEOUT * ("},{"line_number":464,"context_line":"            len(master_vm_dict_list) + len(worker_vm_dict_list))"},{"line_number":465,"context_line":"        ansibe_commander \u003d self._init_commander_and_set_script("}],"source_content_type":"text/x-python","patch_set":7,"id":"db620490_ad47d81f","line":462,"range":{"start_line":462,"start_character":8,"end_line":462,"end_character":23},"updated":"2021-08-20 06:26:55.000000000","message":"What are you waiting for? And why don\u0027t you define constant instead of direct value?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":459,"context_line":"        ansibe_commander.close_session()"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"        # install k8s cluster"},{"line_number":462,"context_line":"        time.sleep(120)"},{"line_number":463,"context_line":"        install_timeout \u003d K8S_INSTALL_TIMEOUT * ("},{"line_number":464,"context_line":"            len(master_vm_dict_list) + len(worker_vm_dict_list))"},{"line_number":465,"context_line":"        ansibe_commander \u003d self._init_commander_and_set_script("}],"source_content_type":"text/x-python","patch_set":7,"id":"f011ed5c_88728b37","line":462,"range":{"start_line":462,"start_character":8,"end_line":462,"end_character":23},"in_reply_to":"23634d54_80eea3fd","updated":"2021-08-31 05:35:17.000000000","message":"I\u0027ve confirmed.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":459,"context_line":"        ansibe_commander.close_session()"},{"line_number":460,"context_line":""},{"line_number":461,"context_line":"        # install k8s cluster"},{"line_number":462,"context_line":"        time.sleep(120)"},{"line_number":463,"context_line":"        install_timeout \u003d K8S_INSTALL_TIMEOUT * ("},{"line_number":464,"context_line":"            len(master_vm_dict_list) + len(worker_vm_dict_list))"},{"line_number":465,"context_line":"        ansibe_commander \u003d self._init_commander_and_set_script("}],"source_content_type":"text/x-python","patch_set":7,"id":"23634d54_80eea3fd","line":462,"range":{"start_line":462,"start_character":8,"end_line":462,"end_character":23},"in_reply_to":"db620490_ad47d81f","updated":"2021-08-30 02:34:42.000000000","message":"It is for FT test to show some logs. Here is not required. I have deleted in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"5a32e7cce280326c8bc559d49c715557329228f8","unresolved":true,"context_lines":[{"line_number":483,"context_line":"        ssh_command \u003d \"sudo kubectl create -f /tmp/create_admin_token.yaml\""},{"line_number":484,"context_line":"        self._execute_command("},{"line_number":485,"context_line":"            master_commander, ssh_command, K8S_CMD_TIMEOUT, \u0027common\u0027, 0)"},{"line_number":486,"context_line":"        time.sleep(30)"},{"line_number":487,"context_line":"        ssh_command \u003d \"sudo kubectl get secret -n kube-system \" \\"},{"line_number":488,"context_line":"                      \"| grep \u0027^admin-token\u0027 \" \\"},{"line_number":489,"context_line":"                      \"| awk \u0027{print $1}\u0027 \" \\"}],"source_content_type":"text/x-python","patch_set":7,"id":"abd37aee_ab3110fd","line":486,"range":{"start_line":486,"start_character":8,"end_line":486,"end_character":22},"updated":"2021-08-20 06:26:55.000000000","message":"What are you waiting for? And why don\u0027t you define constant instead of direct value?","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":483,"context_line":"        ssh_command \u003d \"sudo kubectl create -f /tmp/create_admin_token.yaml\""},{"line_number":484,"context_line":"        self._execute_command("},{"line_number":485,"context_line":"            master_commander, ssh_command, K8S_CMD_TIMEOUT, \u0027common\u0027, 0)"},{"line_number":486,"context_line":"        time.sleep(30)"},{"line_number":487,"context_line":"        ssh_command \u003d \"sudo kubectl get secret -n kube-system \" \\"},{"line_number":488,"context_line":"                      \"| grep \u0027^admin-token\u0027 \" \\"},{"line_number":489,"context_line":"                      \"| awk \u0027{print $1}\u0027 \" \\"}],"source_content_type":"text/x-python","patch_set":7,"id":"b7923286_629f840e","line":486,"range":{"start_line":486,"start_character":8,"end_line":486,"end_character":22},"in_reply_to":"abd37aee_ab3110fd","updated":"2021-08-30 02:34:42.000000000","message":"It is waiting for token create completely. I have defined a constant \u0027TOKEN_CREATE_WAIT_TIME\u0027 in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":false,"context_lines":[{"line_number":483,"context_line":"        ssh_command \u003d \"sudo kubectl create -f /tmp/create_admin_token.yaml\""},{"line_number":484,"context_line":"        self._execute_command("},{"line_number":485,"context_line":"            master_commander, ssh_command, K8S_CMD_TIMEOUT, \u0027common\u0027, 0)"},{"line_number":486,"context_line":"        time.sleep(30)"},{"line_number":487,"context_line":"        ssh_command \u003d \"sudo kubectl get secret -n kube-system \" \\"},{"line_number":488,"context_line":"                      \"| grep \u0027^admin-token\u0027 \" \\"},{"line_number":489,"context_line":"                      \"| awk \u0027{print $1}\u0027 \" \\"}],"source_content_type":"text/x-python","patch_set":7,"id":"fa4e244e_ba79f472","line":486,"range":{"start_line":486,"start_character":8,"end_line":486,"end_character":22},"in_reply_to":"b7923286_629f840e","updated":"2021-08-31 05:35:17.000000000","message":"I\u0027ve confirmed.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7244ccc21642bcaecfc760f35a2ea10c6437e374","unresolved":true,"context_lines":[{"line_number":510,"context_line":"            script_path\u003dexternal_lb_param.get(\u0027script_path\u0027))"},{"line_number":511,"context_line":"        master_ssh_ips_str \u003d \u0027,\u0027.join([vm_dict.get("},{"line_number":512,"context_line":"            \u0027nic_ip\u0027) for vm_dict in master_vm_dict_list])"},{"line_number":513,"context_line":"        worker_ssh_ips_Str \u003d \u0027,\u0027.join([vm_dict.get("},{"line_number":514,"context_line":"            \u0027nic_ip\u0027) for vm_dict in worker_vm_dict_list])"},{"line_number":515,"context_line":"        if proxy.get(\u0027http_proxy\u0027) and proxy.get(\u0027https_proxy\u0027):"},{"line_number":516,"context_line":"            ssh_command \u003d \\"}],"source_content_type":"text/x-python","patch_set":7,"id":"aafc845e_4481329d","line":513,"updated":"2021-08-20 08:24:44.000000000","message":"Use snake_case for variable name. -\u003e `worker_ssh_ips_str`","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":510,"context_line":"            script_path\u003dexternal_lb_param.get(\u0027script_path\u0027))"},{"line_number":511,"context_line":"        master_ssh_ips_str \u003d \u0027,\u0027.join([vm_dict.get("},{"line_number":512,"context_line":"            \u0027nic_ip\u0027) for vm_dict in master_vm_dict_list])"},{"line_number":513,"context_line":"        worker_ssh_ips_Str \u003d \u0027,\u0027.join([vm_dict.get("},{"line_number":514,"context_line":"            \u0027nic_ip\u0027) for vm_dict in worker_vm_dict_list])"},{"line_number":515,"context_line":"        if proxy.get(\u0027http_proxy\u0027) and proxy.get(\u0027https_proxy\u0027):"},{"line_number":516,"context_line":"            ssh_command \u003d \\"}],"source_content_type":"text/x-python","patch_set":7,"id":"044f49c9_e155995a","line":513,"in_reply_to":"aafc845e_4481329d","updated":"2021-08-30 02:34:42.000000000","message":"Yes. It\u0027s a mistake. I have modified this variable name in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7244ccc21642bcaecfc760f35a2ea10c6437e374","unresolved":true,"context_lines":[{"line_number":639,"context_line":"        proxy \u003d additional_param.get(\u0027proxy\u0027, {})"},{"line_number":640,"context_line":"        ansible \u003d additional_param.get(\u0027ansible\u0027, {})"},{"line_number":641,"context_line":"        external_lb_param \u003d additional_param.get(\u0027external_lb_param\u0027, {})"},{"line_number":642,"context_line":"        vnf_package_path \u003d vnflcm_utils._get_vnf_package_path("},{"line_number":643,"context_line":"            context, vnf_instance.vnfd_id)"},{"line_number":644,"context_line":"        self._check_input_parameters(additional_param, vnf_package_path)"},{"line_number":645,"context_line":"        nest_stack_id \u003d vnf_instance.instantiated_vnf_info.instance_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"7720c3cd_10b54f31","line":642,"updated":"2021-08-20 08:24:44.000000000","message":"`_get_vnf_package_path()` is a protected method in `tacker.vnflcm.utils`. Please avoid using protected method from outside.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":639,"context_line":"        proxy \u003d additional_param.get(\u0027proxy\u0027, {})"},{"line_number":640,"context_line":"        ansible \u003d additional_param.get(\u0027ansible\u0027, {})"},{"line_number":641,"context_line":"        external_lb_param \u003d additional_param.get(\u0027external_lb_param\u0027, {})"},{"line_number":642,"context_line":"        vnf_package_path \u003d vnflcm_utils._get_vnf_package_path("},{"line_number":643,"context_line":"            context, vnf_instance.vnfd_id)"},{"line_number":644,"context_line":"        self._check_input_parameters(additional_param, vnf_package_path)"},{"line_number":645,"context_line":"        nest_stack_id \u003d vnf_instance.instantiated_vnf_info.instance_id"}],"source_content_type":"text/x-python","patch_set":7,"id":"6d2fd137_c4a58ab0","line":642,"in_reply_to":"7720c3cd_10b54f31","updated":"2021-08-30 02:34:42.000000000","message":"I have added myown function in kubespary_mgmt.py in PS 8.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7244ccc21642bcaecfc760f35a2ea10c6437e374","unresolved":true,"context_lines":[{"line_number":685,"context_line":""},{"line_number":686,"context_line":"    def _get_vim_by_name(self, context, k8s_vim_name):"},{"line_number":687,"context_line":"        common_db_api \u003d CommonDbMixin()"},{"line_number":688,"context_line":"        result \u003d common_db_api._get_by_name("},{"line_number":689,"context_line":"            context, nfvo_db.Vim, k8s_vim_name)"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"        if not result:"}],"source_content_type":"text/x-python","patch_set":7,"id":"ed62d9c6_02a124a8","line":688,"updated":"2021-08-20 08:24:44.000000000","message":"ditto","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":685,"context_line":""},{"line_number":686,"context_line":"    def _get_vim_by_name(self, context, k8s_vim_name):"},{"line_number":687,"context_line":"        common_db_api \u003d CommonDbMixin()"},{"line_number":688,"context_line":"        result \u003d common_db_api._get_by_name("},{"line_number":689,"context_line":"            context, nfvo_db.Vim, k8s_vim_name)"},{"line_number":690,"context_line":""},{"line_number":691,"context_line":"        if not result:"}],"source_content_type":"text/x-python","patch_set":7,"id":"372b3f6d_cd65b21e","line":688,"in_reply_to":"ed62d9c6_02a124a8","updated":"2021-08-30 02:34:42.000000000","message":"I have added a public funcition in db_base.py in PS 8. I think others will use it in future.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"8ed9fd156374d5fcd5f9bb826172a0aa450ffce0","unresolved":true,"context_lines":[{"line_number":201,"context_line":"        group_stack_name \u003d node.get(\"aspect_id\")"},{"line_number":202,"context_line":"        if \u0027lcm-operation-user-data\u0027 in additional_params.keys() and \\"},{"line_number":203,"context_line":"                \u0027lcm-operation-user-data-class\u0027 in additional_params.keys():"},{"line_number":204,"context_line":"            group_stack_name \u003d group_stack_name + \u0027_group\u0027"},{"line_number":205,"context_line":"        group_stack_id \u003d \"\""},{"line_number":206,"context_line":"        for nest_resources in nest_resources_list:"},{"line_number":207,"context_line":"            if nest_resources.resource_name \u003d\u003d group_stack_name:"}],"source_content_type":"text/x-python","patch_set":13,"id":"30f9d1af_d05957a8","line":204,"range":{"start_line":204,"start_character":47,"end_line":204,"end_character":58},"updated":"2021-09-10 08:38:40.000000000","message":"A restriction of scaling group name has been deleted in an already merged patch [1].\n[1] https://review.opendev.org/c/openstack/tacker/+/787779\n\nDoes this code work correctly?","commit_id":"fb42d278605b9edb0efc5c36e9607127f40df411"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"2082f7c30ebf11bd5ce90b8b22f337a50fa815fc","unresolved":true,"context_lines":[{"line_number":201,"context_line":"        group_stack_name \u003d node.get(\"aspect_id\")"},{"line_number":202,"context_line":"        if \u0027lcm-operation-user-data\u0027 in additional_params.keys() and \\"},{"line_number":203,"context_line":"                \u0027lcm-operation-user-data-class\u0027 in additional_params.keys():"},{"line_number":204,"context_line":"            group_stack_name \u003d group_stack_name + \u0027_group\u0027"},{"line_number":205,"context_line":"        group_stack_id \u003d \"\""},{"line_number":206,"context_line":"        for nest_resources in nest_resources_list:"},{"line_number":207,"context_line":"            if nest_resources.resource_name \u003d\u003d group_stack_name:"}],"source_content_type":"text/x-python","patch_set":13,"id":"e4ba94e6_08b52799","line":204,"range":{"start_line":204,"start_character":47,"end_line":204,"end_character":58},"in_reply_to":"30f9d1af_d05957a8","updated":"2021-09-17 01:57:52.000000000","message":"I have removed `_group` rule in PS 17.","commit_id":"fb42d278605b9edb0efc5c36e9607127f40df411"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"e3d86de4619bc20ee28ede0a5c366f638b086f5c","unresolved":false,"context_lines":[{"line_number":201,"context_line":"        group_stack_name \u003d node.get(\"aspect_id\")"},{"line_number":202,"context_line":"        if \u0027lcm-operation-user-data\u0027 in additional_params.keys() and \\"},{"line_number":203,"context_line":"                \u0027lcm-operation-user-data-class\u0027 in additional_params.keys():"},{"line_number":204,"context_line":"            group_stack_name \u003d group_stack_name + \u0027_group\u0027"},{"line_number":205,"context_line":"        group_stack_id \u003d \"\""},{"line_number":206,"context_line":"        for nest_resources in nest_resources_list:"},{"line_number":207,"context_line":"            if nest_resources.resource_name \u003d\u003d group_stack_name:"}],"source_content_type":"text/x-python","patch_set":13,"id":"78f3e685_0f2543ed","line":204,"range":{"start_line":204,"start_character":47,"end_line":204,"end_character":58},"in_reply_to":"e4ba94e6_08b52799","updated":"2021-09-17 03:17:13.000000000","message":"I\u0027ve confirmed in PS17.","commit_id":"fb42d278605b9edb0efc5c36e9607127f40df411"}],"samples/mgmt_driver/kubespary/kubespary_vnf_package/BaseHOT/simple/base_hot_top.yaml":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":83,"context_line":"      floating_network: public"},{"line_number":84,"context_line":"      port_id:"},{"line_number":85,"context_line":"        get_resource: externalLB_CP3"},{"line_number":86,"context_line":"      "},{"line_number":87,"context_line":"outputs: {}"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"e6b7d8f3_5899d659","line":86,"updated":"2021-08-05 08:16:45.000000000","message":"nit. useless while spaces.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":83,"context_line":"      floating_network: public"},{"line_number":84,"context_line":"      port_id:"},{"line_number":85,"context_line":"        get_resource: externalLB_CP3"},{"line_number":86,"context_line":"      "},{"line_number":87,"context_line":"outputs: {}"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"1dd58dc3_395806b6","line":86,"in_reply_to":"e6b7d8f3_5899d659","updated":"2021-08-11 07:47:59.000000000","message":"I have deleted these white spaces.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"}],"samples/mgmt_driver/kubespary/kubespary_vnf_package/Definitions/sample_kubernetes_df_simple.yaml":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":102,"context_line":"              num_virtual_cpu: 2"},{"line_number":103,"context_line":"            virtual_local_storage:"},{"line_number":104,"context_line":"              - size_of_storage: 10 GB"},{"line_number":105,"context_line":"       "},{"line_number":106,"context_line":"    masterNode:"},{"line_number":107,"context_line":"      type: tosca.nodes.nfv.Vdu.Compute"},{"line_number":108,"context_line":"      properties:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ed4a7530_91a89057","line":105,"updated":"2021-08-05 08:16:45.000000000","message":"nit. useless while spaces.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":102,"context_line":"              num_virtual_cpu: 2"},{"line_number":103,"context_line":"            virtual_local_storage:"},{"line_number":104,"context_line":"              - size_of_storage: 10 GB"},{"line_number":105,"context_line":"       "},{"line_number":106,"context_line":"    masterNode:"},{"line_number":107,"context_line":"      type: tosca.nodes.nfv.Vdu.Compute"},{"line_number":108,"context_line":"      properties:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"19142937_6dfc0211","line":105,"in_reply_to":"ed4a7530_91a89057","updated":"2021-08-11 07:47:59.000000000","message":"I have deleted these white spaces in patch 7.","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":221,"context_line":"          initial_delta:"},{"line_number":222,"context_line":"            number_of_instances: 1"},{"line_number":223,"context_line":"        targets: [ masterNode ]"},{"line_number":224,"context_line":"        "},{"line_number":225,"context_line":"    - workerNode_initial_delta:"},{"line_number":226,"context_line":"        type: tosca.policies.nfv.VduInitialDelta"},{"line_number":227,"context_line":"        properties:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"7a75d1e3_6c7ec82e","line":224,"updated":"2021-08-05 08:16:45.000000000","message":"ditto","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":221,"context_line":"          initial_delta:"},{"line_number":222,"context_line":"            number_of_instances: 1"},{"line_number":223,"context_line":"        targets: [ masterNode ]"},{"line_number":224,"context_line":"        "},{"line_number":225,"context_line":"    - workerNode_initial_delta:"},{"line_number":226,"context_line":"        type: tosca.policies.nfv.VduInitialDelta"},{"line_number":227,"context_line":"        properties:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"0adcd500_bda2eebd","line":224,"in_reply_to":"7a75d1e3_6c7ec82e","updated":"2021-08-11 07:47:59.000000000","message":"ditto","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":228,"context_line":"          initial_delta:"},{"line_number":229,"context_line":"            number_of_instances: 2"},{"line_number":230,"context_line":"        targets: [ workerNode ]"},{"line_number":231,"context_line":"        "},{"line_number":232,"context_line":"    - masterNode_scaling_aspect_deltas:"},{"line_number":233,"context_line":"        type: tosca.policies.nfv.VduScalingAspectDeltas"},{"line_number":234,"context_line":"        properties:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"ada19a95_fcd0112c","line":231,"updated":"2021-08-05 08:16:45.000000000","message":"ditto","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":228,"context_line":"          initial_delta:"},{"line_number":229,"context_line":"            number_of_instances: 2"},{"line_number":230,"context_line":"        targets: [ workerNode ]"},{"line_number":231,"context_line":"        "},{"line_number":232,"context_line":"    - masterNode_scaling_aspect_deltas:"},{"line_number":233,"context_line":"        type: tosca.policies.nfv.VduScalingAspectDeltas"},{"line_number":234,"context_line":"        properties:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"dc2257c9_4a7c173e","line":231,"in_reply_to":"ada19a95_fcd0112c","updated":"2021-08-11 07:47:59.000000000","message":"ditto","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"5906d6d499db73a778782f6929b4035019c668aa","unresolved":true,"context_lines":[{"line_number":237,"context_line":"            delta_1:"},{"line_number":238,"context_line":"              number_of_instances: 1"},{"line_number":239,"context_line":"        targets: [ masterNode ]"},{"line_number":240,"context_line":"        "},{"line_number":241,"context_line":"    - workerNode_scaling_aspect_deltas:"},{"line_number":242,"context_line":"        type: tosca.policies.nfv.VduScalingAspectDeltas"},{"line_number":243,"context_line":"        properties:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"b96cc00d_9b648ca0","line":240,"updated":"2021-08-05 08:16:45.000000000","message":"ditto","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"8400955294c19c1c287eec9d4b0d5ec8b46e27a9","unresolved":true,"context_lines":[{"line_number":237,"context_line":"            delta_1:"},{"line_number":238,"context_line":"              number_of_instances: 1"},{"line_number":239,"context_line":"        targets: [ masterNode ]"},{"line_number":240,"context_line":"        "},{"line_number":241,"context_line":"    - workerNode_scaling_aspect_deltas:"},{"line_number":242,"context_line":"        type: tosca.policies.nfv.VduScalingAspectDeltas"},{"line_number":243,"context_line":"        properties:"}],"source_content_type":"text/x-yaml","patch_set":6,"id":"3f8fd07f_d4651b5f","line":240,"in_reply_to":"b96cc00d_9b648ca0","updated":"2021-08-11 07:47:59.000000000","message":"ditto","commit_id":"f838fed42f799af4a0d7ad6ddc424e17511906a6"}],"samples/mgmt_driver/kubespray/cnf_nodeport_setting/cnf_nodeport_mgmt.py":[{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"ab316c33ab0febfae98e56a93481f1d890f28053","unresolved":true,"context_lines":[{"line_number":191,"context_line":"        for artifact_file in artifact_files:"},{"line_number":192,"context_line":"            artiface_file_path \u003d os.path.join("},{"line_number":193,"context_line":"                vnf_package_path, artifact_file)"},{"line_number":194,"context_line":"            with open(artiface_file_path) as f:"},{"line_number":195,"context_line":"                yaml_content_all \u003d yaml.safe_load_all(f.read())"},{"line_number":196,"context_line":"            for yaml_content in yaml_content_all:"},{"line_number":197,"context_line":"                if yaml_content.get(\u0027kind\u0027) \u003d\u003d \u0027Service\u0027 and \\"}],"source_content_type":"text/x-python","patch_set":15,"id":"742637fa_ccc48c58","line":194,"updated":"2021-09-13 12:59:15.000000000","message":"Should use `open` with encoding.","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"1860b13bdc03dc21ca46013c4a19ec237f32702f","unresolved":false,"context_lines":[{"line_number":191,"context_line":"        for artifact_file in artifact_files:"},{"line_number":192,"context_line":"            artiface_file_path \u003d os.path.join("},{"line_number":193,"context_line":"                vnf_package_path, artifact_file)"},{"line_number":194,"context_line":"            with open(artiface_file_path) as f:"},{"line_number":195,"context_line":"                yaml_content_all \u003d yaml.safe_load_all(f.read())"},{"line_number":196,"context_line":"            for yaml_content in yaml_content_all:"},{"line_number":197,"context_line":"                if yaml_content.get(\u0027kind\u0027) \u003d\u003d \u0027Service\u0027 and \\"}],"source_content_type":"text/x-python","patch_set":15,"id":"52b28b92_be5cc4e5","line":194,"in_reply_to":"6786635d_2fe426eb","updated":"2021-09-17 04:01:30.000000000","message":"Ack","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"2082f7c30ebf11bd5ce90b8b22f337a50fa815fc","unresolved":true,"context_lines":[{"line_number":191,"context_line":"        for artifact_file in artifact_files:"},{"line_number":192,"context_line":"            artiface_file_path \u003d os.path.join("},{"line_number":193,"context_line":"                vnf_package_path, artifact_file)"},{"line_number":194,"context_line":"            with open(artiface_file_path) as f:"},{"line_number":195,"context_line":"                yaml_content_all \u003d yaml.safe_load_all(f.read())"},{"line_number":196,"context_line":"            for yaml_content in yaml_content_all:"},{"line_number":197,"context_line":"                if yaml_content.get(\u0027kind\u0027) \u003d\u003d \u0027Service\u0027 and \\"}],"source_content_type":"text/x-python","patch_set":15,"id":"6786635d_2fe426eb","line":194,"in_reply_to":"742637fa_ccc48c58","updated":"2021-09-17 01:57:52.000000000","message":"I have added `encoding` in PS 16.","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"}],"samples/mgmt_driver/kubespray/kubespray_mgmt.py":[{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"ab316c33ab0febfae98e56a93481f1d890f28053","unresolved":true,"context_lines":[{"line_number":137,"context_line":"                              \"additionalParams is invalid. It must be dict.\")"},{"line_number":138,"context_line":"        for key, value in additional_param.items():"},{"line_number":139,"context_line":"            attr_list \u003d []"},{"line_number":140,"context_line":"            if key !\u003d \u0027proxy\u0027 and key !\u003d \u0027external_lb_param\u0027 and \\"},{"line_number":141,"context_line":"                    key !\u003d \u0027vim_name\u0027:"},{"line_number":142,"context_line":"                attr_list.extend([\u0027username\u0027, \u0027password\u0027])"},{"line_number":143,"context_line":"            if key \u003d\u003d \u0027master_node\u0027 or key \u003d\u003d \u0027worker_node\u0027 \\"},{"line_number":144,"context_line":"                    or key \u003d\u003d \u0027external_lb_param\u0027:"}],"source_content_type":"text/x-python","patch_set":15,"id":"349048bd_fa76813f","line":141,"range":{"start_line":140,"start_character":0,"end_line":141,"end_character":38},"updated":"2021-09-13 12:59:15.000000000","message":"Why don\u0027t you use `key not in (\u0027proxy\u0027, \u0027external_lb_param\u0027, \u0027vim_name\u0027)`?","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"2082f7c30ebf11bd5ce90b8b22f337a50fa815fc","unresolved":true,"context_lines":[{"line_number":137,"context_line":"                              \"additionalParams is invalid. It must be dict.\")"},{"line_number":138,"context_line":"        for key, value in additional_param.items():"},{"line_number":139,"context_line":"            attr_list \u003d []"},{"line_number":140,"context_line":"            if key !\u003d \u0027proxy\u0027 and key !\u003d \u0027external_lb_param\u0027 and \\"},{"line_number":141,"context_line":"                    key !\u003d \u0027vim_name\u0027:"},{"line_number":142,"context_line":"                attr_list.extend([\u0027username\u0027, \u0027password\u0027])"},{"line_number":143,"context_line":"            if key \u003d\u003d \u0027master_node\u0027 or key \u003d\u003d \u0027worker_node\u0027 \\"},{"line_number":144,"context_line":"                    or key \u003d\u003d \u0027external_lb_param\u0027:"}],"source_content_type":"text/x-python","patch_set":15,"id":"92c7c8ba_db759a00","line":141,"range":{"start_line":140,"start_character":0,"end_line":141,"end_character":38},"in_reply_to":"349048bd_fa76813f","updated":"2021-09-17 01:57:52.000000000","message":"I fixed it in PS 17.","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"1860b13bdc03dc21ca46013c4a19ec237f32702f","unresolved":false,"context_lines":[{"line_number":137,"context_line":"                              \"additionalParams is invalid. It must be dict.\")"},{"line_number":138,"context_line":"        for key, value in additional_param.items():"},{"line_number":139,"context_line":"            attr_list \u003d []"},{"line_number":140,"context_line":"            if key !\u003d \u0027proxy\u0027 and key !\u003d \u0027external_lb_param\u0027 and \\"},{"line_number":141,"context_line":"                    key !\u003d \u0027vim_name\u0027:"},{"line_number":142,"context_line":"                attr_list.extend([\u0027username\u0027, \u0027password\u0027])"},{"line_number":143,"context_line":"            if key \u003d\u003d \u0027master_node\u0027 or key \u003d\u003d \u0027worker_node\u0027 \\"},{"line_number":144,"context_line":"                    or key \u003d\u003d \u0027external_lb_param\u0027:"}],"source_content_type":"text/x-python","patch_set":15,"id":"2982cd4f_9b40b4b6","line":141,"range":{"start_line":140,"start_character":0,"end_line":141,"end_character":38},"in_reply_to":"92c7c8ba_db759a00","updated":"2021-09-17 04:01:30.000000000","message":"Ack","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"ab316c33ab0febfae98e56a93481f1d890f28053","unresolved":true,"context_lines":[{"line_number":140,"context_line":"            if key !\u003d \u0027proxy\u0027 and key !\u003d \u0027external_lb_param\u0027 and \\"},{"line_number":141,"context_line":"                    key !\u003d \u0027vim_name\u0027:"},{"line_number":142,"context_line":"                attr_list.extend([\u0027username\u0027, \u0027password\u0027])"},{"line_number":143,"context_line":"            if key \u003d\u003d \u0027master_node\u0027 or key \u003d\u003d \u0027worker_node\u0027 \\"},{"line_number":144,"context_line":"                    or key \u003d\u003d \u0027external_lb_param\u0027:"},{"line_number":145,"context_line":"                attr_list.extend([\u0027ssh_cp_name\u0027])"},{"line_number":146,"context_line":"            if key \u003d\u003d \u0027ansible\u0027:"},{"line_number":147,"context_line":"                attr_list.extend([\u0027ip_address\u0027, \u0027kubespray_root_path\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"08b37ba4_8707487e","line":144,"range":{"start_line":143,"start_character":0,"end_line":144,"end_character":50},"updated":"2021-09-13 12:59:15.000000000","message":"ditto, but use `key in ....`","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"2082f7c30ebf11bd5ce90b8b22f337a50fa815fc","unresolved":true,"context_lines":[{"line_number":140,"context_line":"            if key !\u003d \u0027proxy\u0027 and key !\u003d \u0027external_lb_param\u0027 and \\"},{"line_number":141,"context_line":"                    key !\u003d \u0027vim_name\u0027:"},{"line_number":142,"context_line":"                attr_list.extend([\u0027username\u0027, \u0027password\u0027])"},{"line_number":143,"context_line":"            if key \u003d\u003d \u0027master_node\u0027 or key \u003d\u003d \u0027worker_node\u0027 \\"},{"line_number":144,"context_line":"                    or key \u003d\u003d \u0027external_lb_param\u0027:"},{"line_number":145,"context_line":"                attr_list.extend([\u0027ssh_cp_name\u0027])"},{"line_number":146,"context_line":"            if key \u003d\u003d \u0027ansible\u0027:"},{"line_number":147,"context_line":"                attr_list.extend([\u0027ip_address\u0027, \u0027kubespray_root_path\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"7b6baf01_77a5a038","line":144,"range":{"start_line":143,"start_character":0,"end_line":144,"end_character":50},"in_reply_to":"08b37ba4_8707487e","updated":"2021-09-17 01:57:52.000000000","message":"ditto","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"1860b13bdc03dc21ca46013c4a19ec237f32702f","unresolved":false,"context_lines":[{"line_number":140,"context_line":"            if key !\u003d \u0027proxy\u0027 and key !\u003d \u0027external_lb_param\u0027 and \\"},{"line_number":141,"context_line":"                    key !\u003d \u0027vim_name\u0027:"},{"line_number":142,"context_line":"                attr_list.extend([\u0027username\u0027, \u0027password\u0027])"},{"line_number":143,"context_line":"            if key \u003d\u003d \u0027master_node\u0027 or key \u003d\u003d \u0027worker_node\u0027 \\"},{"line_number":144,"context_line":"                    or key \u003d\u003d \u0027external_lb_param\u0027:"},{"line_number":145,"context_line":"                attr_list.extend([\u0027ssh_cp_name\u0027])"},{"line_number":146,"context_line":"            if key \u003d\u003d \u0027ansible\u0027:"},{"line_number":147,"context_line":"                attr_list.extend([\u0027ip_address\u0027, \u0027kubespray_root_path\u0027,"}],"source_content_type":"text/x-python","patch_set":15,"id":"8fdbb32a_3ca42a15","line":144,"range":{"start_line":143,"start_character":0,"end_line":144,"end_character":50},"in_reply_to":"7b6baf01_77a5a038","updated":"2021-09-17 04:01:30.000000000","message":"Ack","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"ab316c33ab0febfae98e56a93481f1d890f28053","unresolved":true,"context_lines":[{"line_number":158,"context_line":"                        raise exceptions.MgmtDriverOtherError("},{"line_number":159,"context_line":"                            error_message\u003d\"The path of external_lb_param\""},{"line_number":160,"context_line":"                                          \" script is invalid\")"},{"line_number":161,"context_line":"            if key \u003d\u003d \u0027master_node\u0027 or key \u003d\u003d \u0027ansible\u0027:"},{"line_number":162,"context_line":"                for attr in [\u0027pod_cidr\u0027, \u0027cluster_cidr\u0027, \u0027ip_address\u0027]:"},{"line_number":163,"context_line":"                    if value.get(attr):"},{"line_number":164,"context_line":"                        self._check_is_cidr("}],"source_content_type":"text/x-python","patch_set":15,"id":"3b945efc_dc9cfd71","line":161,"updated":"2021-09-13 12:59:15.000000000","message":"ditto","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"2082f7c30ebf11bd5ce90b8b22f337a50fa815fc","unresolved":true,"context_lines":[{"line_number":158,"context_line":"                        raise exceptions.MgmtDriverOtherError("},{"line_number":159,"context_line":"                            error_message\u003d\"The path of external_lb_param\""},{"line_number":160,"context_line":"                                          \" script is invalid\")"},{"line_number":161,"context_line":"            if key \u003d\u003d \u0027master_node\u0027 or key \u003d\u003d \u0027ansible\u0027:"},{"line_number":162,"context_line":"                for attr in [\u0027pod_cidr\u0027, \u0027cluster_cidr\u0027, \u0027ip_address\u0027]:"},{"line_number":163,"context_line":"                    if value.get(attr):"},{"line_number":164,"context_line":"                        self._check_is_cidr("}],"source_content_type":"text/x-python","patch_set":15,"id":"869bd7d3_a8210f9f","line":161,"in_reply_to":"3b945efc_dc9cfd71","updated":"2021-09-17 01:57:52.000000000","message":"ditto","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"1860b13bdc03dc21ca46013c4a19ec237f32702f","unresolved":false,"context_lines":[{"line_number":158,"context_line":"                        raise exceptions.MgmtDriverOtherError("},{"line_number":159,"context_line":"                            error_message\u003d\"The path of external_lb_param\""},{"line_number":160,"context_line":"                                          \" script is invalid\")"},{"line_number":161,"context_line":"            if key \u003d\u003d \u0027master_node\u0027 or key \u003d\u003d \u0027ansible\u0027:"},{"line_number":162,"context_line":"                for attr in [\u0027pod_cidr\u0027, \u0027cluster_cidr\u0027, \u0027ip_address\u0027]:"},{"line_number":163,"context_line":"                    if value.get(attr):"},{"line_number":164,"context_line":"                        self._check_is_cidr("}],"source_content_type":"text/x-python","patch_set":15,"id":"574ccf4e_cf72cf47","line":161,"in_reply_to":"869bd7d3_a8210f9f","updated":"2021-09-17 04:01:30.000000000","message":"Ack","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"ab316c33ab0febfae98e56a93481f1d890f28053","unresolved":true,"context_lines":[{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def _create_hosts_yaml(self, master_node, master_vm_dict_list,"},{"line_number":356,"context_line":"                           worker_node, worker_vm_dict_list):"},{"line_number":357,"context_line":"        hosts_yaml_content \u003d {}"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        hosts_yaml_content[\u0027all\u0027] \u003d {"},{"line_number":360,"context_line":"            \u0027hosts\u0027: {},"},{"line_number":361,"context_line":"            \u0027children\u0027: {"},{"line_number":362,"context_line":"                \u0027kube-master\u0027: {\u0027hosts\u0027: {}},"},{"line_number":363,"context_line":"                \u0027kube-node\u0027: {\u0027hosts\u0027: {}},"},{"line_number":364,"context_line":"                \u0027etcd\u0027: {\u0027hosts\u0027: {}},"},{"line_number":365,"context_line":"                \u0027k8s-cluster\u0027: {"},{"line_number":366,"context_line":"                    \u0027children\u0027: {\u0027kube-master\u0027: None, \u0027kube-node\u0027: None}},"},{"line_number":367,"context_line":"                \u0027calico-rr\u0027: {\u0027hosts\u0027: {}}}}"},{"line_number":368,"context_line":"        for master_vm in master_vm_dict_list:"},{"line_number":369,"context_line":"            key \u003d \u0027master\u0027 + master_vm.get(\u0027nic_ip\u0027).split(\u0027.\u0027)[-1]"},{"line_number":370,"context_line":"            hosts_yaml_content[\u0027all\u0027][\u0027hosts\u0027][key] \u003d {"}],"source_content_type":"text/x-python","patch_set":15,"id":"65158763_f9023d5a","line":367,"range":{"start_line":357,"start_character":0,"end_line":367,"end_character":44},"updated":"2021-09-13 12:59:15.000000000","message":"Why don\u0027t you initialize `hosts_yaml_content` with a single statement such as below?\n\n```\nhosts_yaml_content \u003d {\n    \u0027all\u0027: {\n        \u0027hosts\u0027: {}\n        ....\n```","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"1860b13bdc03dc21ca46013c4a19ec237f32702f","unresolved":false,"context_lines":[{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def _create_hosts_yaml(self, master_node, master_vm_dict_list,"},{"line_number":356,"context_line":"                           worker_node, worker_vm_dict_list):"},{"line_number":357,"context_line":"        hosts_yaml_content \u003d {}"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        hosts_yaml_content[\u0027all\u0027] \u003d {"},{"line_number":360,"context_line":"            \u0027hosts\u0027: {},"},{"line_number":361,"context_line":"            \u0027children\u0027: {"},{"line_number":362,"context_line":"                \u0027kube-master\u0027: {\u0027hosts\u0027: {}},"},{"line_number":363,"context_line":"                \u0027kube-node\u0027: {\u0027hosts\u0027: {}},"},{"line_number":364,"context_line":"                \u0027etcd\u0027: {\u0027hosts\u0027: {}},"},{"line_number":365,"context_line":"                \u0027k8s-cluster\u0027: {"},{"line_number":366,"context_line":"                    \u0027children\u0027: {\u0027kube-master\u0027: None, \u0027kube-node\u0027: None}},"},{"line_number":367,"context_line":"                \u0027calico-rr\u0027: {\u0027hosts\u0027: {}}}}"},{"line_number":368,"context_line":"        for master_vm in master_vm_dict_list:"},{"line_number":369,"context_line":"            key \u003d \u0027master\u0027 + master_vm.get(\u0027nic_ip\u0027).split(\u0027.\u0027)[-1]"},{"line_number":370,"context_line":"            hosts_yaml_content[\u0027all\u0027][\u0027hosts\u0027][key] \u003d {"}],"source_content_type":"text/x-python","patch_set":15,"id":"7bc02738_fe4475c4","line":367,"range":{"start_line":357,"start_character":0,"end_line":367,"end_character":44},"in_reply_to":"05caa34e_234bfdf1","updated":"2021-09-17 04:01:30.000000000","message":"Ack","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"2082f7c30ebf11bd5ce90b8b22f337a50fa815fc","unresolved":true,"context_lines":[{"line_number":354,"context_line":""},{"line_number":355,"context_line":"    def _create_hosts_yaml(self, master_node, master_vm_dict_list,"},{"line_number":356,"context_line":"                           worker_node, worker_vm_dict_list):"},{"line_number":357,"context_line":"        hosts_yaml_content \u003d {}"},{"line_number":358,"context_line":""},{"line_number":359,"context_line":"        hosts_yaml_content[\u0027all\u0027] \u003d {"},{"line_number":360,"context_line":"            \u0027hosts\u0027: {},"},{"line_number":361,"context_line":"            \u0027children\u0027: {"},{"line_number":362,"context_line":"                \u0027kube-master\u0027: {\u0027hosts\u0027: {}},"},{"line_number":363,"context_line":"                \u0027kube-node\u0027: {\u0027hosts\u0027: {}},"},{"line_number":364,"context_line":"                \u0027etcd\u0027: {\u0027hosts\u0027: {}},"},{"line_number":365,"context_line":"                \u0027k8s-cluster\u0027: {"},{"line_number":366,"context_line":"                    \u0027children\u0027: {\u0027kube-master\u0027: None, \u0027kube-node\u0027: None}},"},{"line_number":367,"context_line":"                \u0027calico-rr\u0027: {\u0027hosts\u0027: {}}}}"},{"line_number":368,"context_line":"        for master_vm in master_vm_dict_list:"},{"line_number":369,"context_line":"            key \u003d \u0027master\u0027 + master_vm.get(\u0027nic_ip\u0027).split(\u0027.\u0027)[-1]"},{"line_number":370,"context_line":"            hosts_yaml_content[\u0027all\u0027][\u0027hosts\u0027][key] \u003d {"}],"source_content_type":"text/x-python","patch_set":15,"id":"05caa34e_234bfdf1","line":367,"range":{"start_line":357,"start_character":0,"end_line":367,"end_character":44},"in_reply_to":"65158763_f9023d5a","updated":"2021-09-17 01:57:52.000000000","message":"I fixed it in PS 17.","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":31730,"name":"Naoaki Horie","email":"naoaki.h.opst@gmail.com","username":"naoaki-horie"},"change_message_id":"9c82b2fdba0555455d3faa1db22dd037052d8e57","unresolved":true,"context_lines":[{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        return hosts_yaml_content"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"    def _install_k8s_cluster_and_set_config("},{"line_number":395,"context_line":"            self, master_node, worker_node, proxy, ansible,"},{"line_number":396,"context_line":"            external_lb_param, master_vm_dict_list, worker_vm_dict_list):"},{"line_number":397,"context_line":"        # get mtu value"}],"source_content_type":"text/x-python","patch_set":15,"id":"8a697626_eff78c0d","line":394,"updated":"2021-09-14 14:14:11.000000000","message":"Why don\u0027t we add a note for the version of kubespray? I think it\u0027s better to add the latest version information (e.g. v2.16.0) and the link to the git repository of kubespray[1]. \n\n[1] https://github.com/kubernetes-sigs/kubespray/tree/v2.16.0","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":31730,"name":"Naoaki Horie","email":"naoaki.h.opst@gmail.com","username":"naoaki-horie"},"change_message_id":"1e69d13068946061c233874423191293b2858031","unresolved":false,"context_lines":[{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        return hosts_yaml_content"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"    def _install_k8s_cluster_and_set_config("},{"line_number":395,"context_line":"            self, master_node, worker_node, proxy, ansible,"},{"line_number":396,"context_line":"            external_lb_param, master_vm_dict_list, worker_vm_dict_list):"},{"line_number":397,"context_line":"        # get mtu value"}],"source_content_type":"text/x-python","patch_set":15,"id":"f79a5bb8_74ce35aa","line":394,"in_reply_to":"12ae05fb_2eacfd63","updated":"2021-09-17 04:05:04.000000000","message":"I have confirmed it.","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"2082f7c30ebf11bd5ce90b8b22f337a50fa815fc","unresolved":true,"context_lines":[{"line_number":391,"context_line":""},{"line_number":392,"context_line":"        return hosts_yaml_content"},{"line_number":393,"context_line":""},{"line_number":394,"context_line":"    def _install_k8s_cluster_and_set_config("},{"line_number":395,"context_line":"            self, master_node, worker_node, proxy, ansible,"},{"line_number":396,"context_line":"            external_lb_param, master_vm_dict_list, worker_vm_dict_list):"},{"line_number":397,"context_line":"        # get mtu value"}],"source_content_type":"text/x-python","patch_set":15,"id":"12ae05fb_2eacfd63","line":394,"in_reply_to":"8a697626_eff78c0d","updated":"2021-09-17 01:57:52.000000000","message":"I have added a description of Kubespray at the top of this function.","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"ab316c33ab0febfae98e56a93481f1d890f28053","unresolved":true,"context_lines":[{"line_number":428,"context_line":"            master_node, master_vm_dict_list,"},{"line_number":429,"context_line":"            worker_node, worker_vm_dict_list)"},{"line_number":430,"context_line":"        local_hosts_yaml_path \u003d \u0027/tmp/hosts.yaml\u0027"},{"line_number":431,"context_line":"        with open(local_hosts_yaml_path, \u0027w\u0027) as nf:"},{"line_number":432,"context_line":"            yaml.safe_dump(hosts_yaml_content, nf, default_flow_style\u003dFalse)"},{"line_number":433,"context_line":"        remote_hosts_yaml_path \u003d ansible.get("},{"line_number":434,"context_line":"            \u0027transferring_inventory_path\u0027) + \u0027/hosts.yaml\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"adc23090_38d718f1","line":431,"updated":"2021-09-13 12:59:15.000000000","message":"Should use `open` with encoding.","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"1860b13bdc03dc21ca46013c4a19ec237f32702f","unresolved":false,"context_lines":[{"line_number":428,"context_line":"            master_node, master_vm_dict_list,"},{"line_number":429,"context_line":"            worker_node, worker_vm_dict_list)"},{"line_number":430,"context_line":"        local_hosts_yaml_path \u003d \u0027/tmp/hosts.yaml\u0027"},{"line_number":431,"context_line":"        with open(local_hosts_yaml_path, \u0027w\u0027) as nf:"},{"line_number":432,"context_line":"            yaml.safe_dump(hosts_yaml_content, nf, default_flow_style\u003dFalse)"},{"line_number":433,"context_line":"        remote_hosts_yaml_path \u003d ansible.get("},{"line_number":434,"context_line":"            \u0027transferring_inventory_path\u0027) + \u0027/hosts.yaml\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"f4c85542_632b5af7","line":431,"in_reply_to":"432b91ad_ac57fa23","updated":"2021-09-17 04:01:30.000000000","message":"Ack","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"2082f7c30ebf11bd5ce90b8b22f337a50fa815fc","unresolved":true,"context_lines":[{"line_number":428,"context_line":"            master_node, master_vm_dict_list,"},{"line_number":429,"context_line":"            worker_node, worker_vm_dict_list)"},{"line_number":430,"context_line":"        local_hosts_yaml_path \u003d \u0027/tmp/hosts.yaml\u0027"},{"line_number":431,"context_line":"        with open(local_hosts_yaml_path, \u0027w\u0027) as nf:"},{"line_number":432,"context_line":"            yaml.safe_dump(hosts_yaml_content, nf, default_flow_style\u003dFalse)"},{"line_number":433,"context_line":"        remote_hosts_yaml_path \u003d ansible.get("},{"line_number":434,"context_line":"            \u0027transferring_inventory_path\u0027) + \u0027/hosts.yaml\u0027"}],"source_content_type":"text/x-python","patch_set":15,"id":"432b91ad_ac57fa23","line":431,"in_reply_to":"adc23090_38d718f1","updated":"2021-09-17 01:57:52.000000000","message":"I added \u0027encoding\u0027 in PS 17.","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"ab316c33ab0febfae98e56a93481f1d890f28053","unresolved":true,"context_lines":[{"line_number":530,"context_line":"        ssh_command \u003d \"sudo kubectl get secret -n kube-system \" \\"},{"line_number":531,"context_line":"                      \"| grep \u0027^admin-token\u0027 \" \\"},{"line_number":532,"context_line":"                      \"| awk \u0027{print $1}\u0027 \" \\"},{"line_number":533,"context_line":"                      \"| xargs -i sudo kubectl describe secret {} \" \\"},{"line_number":534,"context_line":"                      \"-n kube-system\" \\"},{"line_number":535,"context_line":"                      \"| grep \u0027token:\u0027 | awk \u0027{print $2}\u0027\""},{"line_number":536,"context_line":"        bearer_token \u003d self._execute_command("},{"line_number":537,"context_line":"            master_commander, ssh_command,"},{"line_number":538,"context_line":"            K8S_CMD_TIMEOUT, \u0027common\u0027, 0)[0].replace(\u0027\\n\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"3c8db738_37eb4f31","line":535,"range":{"start_line":533,"start_character":0,"end_line":535,"end_character":58},"updated":"2021-09-13 12:59:15.000000000","message":"nit: Please consider fetching tokens from secrets with jsonpath.\n\n```\n....\n\"| xargs -i sudo kubectl get secret {} -n kube-system\" \\\n\"-ojsonpath\u003d{.data.token} | base64 -d\"\n```\n\nThis can reduce one command from the original pipeline.","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"2082f7c30ebf11bd5ce90b8b22f337a50fa815fc","unresolved":true,"context_lines":[{"line_number":530,"context_line":"        ssh_command \u003d \"sudo kubectl get secret -n kube-system \" \\"},{"line_number":531,"context_line":"                      \"| grep \u0027^admin-token\u0027 \" \\"},{"line_number":532,"context_line":"                      \"| awk \u0027{print $1}\u0027 \" \\"},{"line_number":533,"context_line":"                      \"| xargs -i sudo kubectl describe secret {} \" \\"},{"line_number":534,"context_line":"                      \"-n kube-system\" \\"},{"line_number":535,"context_line":"                      \"| grep \u0027token:\u0027 | awk \u0027{print $2}\u0027\""},{"line_number":536,"context_line":"        bearer_token \u003d self._execute_command("},{"line_number":537,"context_line":"            master_commander, ssh_command,"},{"line_number":538,"context_line":"            K8S_CMD_TIMEOUT, \u0027common\u0027, 0)[0].replace(\u0027\\n\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"9dd93594_95c14eec","line":535,"range":{"start_line":533,"start_character":0,"end_line":535,"end_character":58},"in_reply_to":"3c8db738_37eb4f31","updated":"2021-09-17 01:57:52.000000000","message":"Thank you for your advice. I have modifed this command in PS 17.","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"1860b13bdc03dc21ca46013c4a19ec237f32702f","unresolved":false,"context_lines":[{"line_number":530,"context_line":"        ssh_command \u003d \"sudo kubectl get secret -n kube-system \" \\"},{"line_number":531,"context_line":"                      \"| grep \u0027^admin-token\u0027 \" \\"},{"line_number":532,"context_line":"                      \"| awk \u0027{print $1}\u0027 \" \\"},{"line_number":533,"context_line":"                      \"| xargs -i sudo kubectl describe secret {} \" \\"},{"line_number":534,"context_line":"                      \"-n kube-system\" \\"},{"line_number":535,"context_line":"                      \"| grep \u0027token:\u0027 | awk \u0027{print $2}\u0027\""},{"line_number":536,"context_line":"        bearer_token \u003d self._execute_command("},{"line_number":537,"context_line":"            master_commander, ssh_command,"},{"line_number":538,"context_line":"            K8S_CMD_TIMEOUT, \u0027common\u0027, 0)[0].replace(\u0027\\n\u0027, \u0027\u0027)"}],"source_content_type":"text/x-python","patch_set":15,"id":"6ba6b849_c5a5dbdf","line":535,"range":{"start_line":533,"start_character":0,"end_line":535,"end_character":58},"in_reply_to":"9dd93594_95c14eec","updated":"2021-09-17 04:01:30.000000000","message":"Ack","commit_id":"e0e85c94b142f321b29cc01cd6296861647ba5d1"}],"tacker/vnflcm/utils.py":[{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"01287ec29d4c7cdcf8bcc46496af921d06f2b73c","unresolved":true,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def get_vnfd_dict(context, vnfd_id, flavour_id):"},{"line_number":77,"context_line":"    return get_vnfd_dict(context, vnfd_id, flavour_id)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def _get_vnflcm_interface(context, interface, vnf_instance, flavour_id):"}],"source_content_type":"text/x-python","patch_set":10,"id":"b9e80883_7256b989","line":77,"range":{"start_line":77,"start_character":11,"end_line":77,"end_character":24},"updated":"2021-08-31 05:35:17.000000000","message":"I think this part is wrong, here should call `_get_vnfd_dict` method.","commit_id":"f536795cdef9b5a7c0ee00f14b0692635d2a9542"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"37b474e67ddf052c52179643059637bebf0b9b58","unresolved":true,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def get_vnfd_dict(context, vnfd_id, flavour_id):"},{"line_number":77,"context_line":"    return get_vnfd_dict(context, vnfd_id, flavour_id)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def _get_vnflcm_interface(context, interface, vnf_instance, flavour_id):"}],"source_content_type":"text/x-python","patch_set":10,"id":"f6a12fff_246e7290","line":77,"range":{"start_line":77,"start_character":11,"end_line":77,"end_character":24},"in_reply_to":"b9e80883_7256b989","updated":"2021-09-02 05:05:07.000000000","message":"My mistake. I have modified it in the PS12.","commit_id":"f536795cdef9b5a7c0ee00f14b0692635d2a9542"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"8ed9fd156374d5fcd5f9bb826172a0aa450ffce0","unresolved":false,"context_lines":[{"line_number":74,"context_line":""},{"line_number":75,"context_line":""},{"line_number":76,"context_line":"def get_vnfd_dict(context, vnfd_id, flavour_id):"},{"line_number":77,"context_line":"    return get_vnfd_dict(context, vnfd_id, flavour_id)"},{"line_number":78,"context_line":""},{"line_number":79,"context_line":""},{"line_number":80,"context_line":"def _get_vnflcm_interface(context, interface, vnf_instance, flavour_id):"}],"source_content_type":"text/x-python","patch_set":10,"id":"7cf8e256_16e96897","line":77,"range":{"start_line":77,"start_character":11,"end_line":77,"end_character":24},"in_reply_to":"f6a12fff_246e7290","updated":"2021-09-10 08:38:40.000000000","message":"I\u0027ve confirmed.","commit_id":"f536795cdef9b5a7c0ee00f14b0692635d2a9542"}],"tacker/vnflcm/vnflcm_driver.py":[{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"7244ccc21642bcaecfc760f35a2ea10c6437e374","unresolved":true,"context_lines":[{"line_number":1646,"context_line":"                                    vim_connection_info)"},{"line_number":1647,"context_line":""},{"line_number":1648,"context_line":"        else:"},{"line_number":1649,"context_line":"            vnfd_dict \u003d vnflcm_utils._get_vnfd_dict("},{"line_number":1650,"context_line":"                context, vnf_instance.vnfd_id,"},{"line_number":1651,"context_line":"                vnf_instance.instantiated_vnf_info.flavour_id)"},{"line_number":1652,"context_line":"            # TODO(LiangLu): grant_request and grant here is planned to"}],"source_content_type":"text/x-python","patch_set":7,"id":"98adc586_b8a1b50e","line":1649,"updated":"2021-08-20 08:24:44.000000000","message":"`_get_vnfd_dict()` is a protected method in `tacker.vnflcm.utils`. Please avoid using protected methods from outside if possible.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"7868e04dfd90075747d1696e2473f963ae7ee6e2","unresolved":true,"context_lines":[{"line_number":1646,"context_line":"                                    vim_connection_info)"},{"line_number":1647,"context_line":""},{"line_number":1648,"context_line":"        else:"},{"line_number":1649,"context_line":"            vnfd_dict \u003d vnflcm_utils._get_vnfd_dict("},{"line_number":1650,"context_line":"                context, vnf_instance.vnfd_id,"},{"line_number":1651,"context_line":"                vnf_instance.instantiated_vnf_info.flavour_id)"},{"line_number":1652,"context_line":"            # TODO(LiangLu): grant_request and grant here is planned to"}],"source_content_type":"text/x-python","patch_set":7,"id":"82be2b24_b051c917","line":1649,"in_reply_to":"98adc586_b8a1b50e","updated":"2021-08-30 02:34:42.000000000","message":"I have added a public function in `tacker.vnflcm.utils` in PS 8. I think others will use it in future.\nBy the way, there are many such usages in existing code. \nE.g:\nhttps://review.opendev.org/c/openstack/tacker/+/801421/7/tacker/vnflcm/vnflcm_driver.py#1519\nBut they have nothing to do with my current patch. So I did not fix them.","commit_id":"b5690a3dd32c1e3aefeef70aa5785e920bf7a28b"}]}
