)]}'
{"releasenotes/notes/support-pv-k8s-cluster-2893a5619ea9e91c.yaml":[{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"593987f05c7e80ffbb4b7e3368d931bc766bc50d","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    Support deploying Kubernetes cluster VNF which has a storage server with"},{"line_number":5,"context_line":"    Cinder volume. This feature enables users to deploy CNF which has"},{"line_number":6,"context_line":"    PersistentVolume on it. The following changes are added for MgmtDriver."},{"line_number":7,"context_line":"    1.Create a storage server VM with Cinder volume."},{"line_number":8,"context_line":"    2.Expose Cinder volume as NFS shared directories in the storage server."},{"line_number":9,"context_line":"    3.Register NFS shared directories as Kubernetes PersistentVolumes."},{"line_number":10,"context_line":"    4.Install NFS client on newly created Master/Worker VMs in all LCM"},{"line_number":11,"context_line":"    operations."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"e9475a4e_8dc2aae3","line":11,"range":{"start_line":7,"start_character":0,"end_line":11,"end_character":15},"updated":"2021-09-14 14:15:37.000000000","message":"After html conversion [1], this part is connected and hard to see.\n\n[1] https://533af28489c6c884e340-96014bb03d0d1d77acb4f54ff709644b.ssl.cf1.rackcdn.com/806133/3/check/build-openstack-releasenotes/e370a9d/docs/unreleased.html\n\nWhy don\u0027t you change to itemize like [2]?\n[2] https://opendev.org/openstack/tacker/src/branch/master/releasenotes/notes/bp-support-etsi-nfv-specs-1f603efcf6d1599e.yaml#L23-L25","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":31857,"name":"Ayumu Ueha","email":"ueha.ayumu@fujitsu.com","username":"ueha"},"change_message_id":"a58c2deedc5971b94eeb76afcd946db25c1f1f43","unresolved":false,"context_lines":[{"line_number":4,"context_line":"    Support deploying Kubernetes cluster VNF which has a storage server with"},{"line_number":5,"context_line":"    Cinder volume. This feature enables users to deploy CNF which has"},{"line_number":6,"context_line":"    PersistentVolume on it. The following changes are added for MgmtDriver."},{"line_number":7,"context_line":"    1.Create a storage server VM with Cinder volume."},{"line_number":8,"context_line":"    2.Expose Cinder volume as NFS shared directories in the storage server."},{"line_number":9,"context_line":"    3.Register NFS shared directories as Kubernetes PersistentVolumes."},{"line_number":10,"context_line":"    4.Install NFS client on newly created Master/Worker VMs in all LCM"},{"line_number":11,"context_line":"    operations."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"5b600f6a_ab360e5a","line":11,"range":{"start_line":7,"start_character":0,"end_line":11,"end_character":15},"in_reply_to":"7e279d05_232eaf76","updated":"2021-09-17 08:37:08.000000000","message":"I\u0027ve confirmed in PS5, and it became very easy to see. great!","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"6854136c8c550f065dcba72ce0c2b8312bf4c8db","unresolved":true,"context_lines":[{"line_number":4,"context_line":"    Support deploying Kubernetes cluster VNF which has a storage server with"},{"line_number":5,"context_line":"    Cinder volume. This feature enables users to deploy CNF which has"},{"line_number":6,"context_line":"    PersistentVolume on it. The following changes are added for MgmtDriver."},{"line_number":7,"context_line":"    1.Create a storage server VM with Cinder volume."},{"line_number":8,"context_line":"    2.Expose Cinder volume as NFS shared directories in the storage server."},{"line_number":9,"context_line":"    3.Register NFS shared directories as Kubernetes PersistentVolumes."},{"line_number":10,"context_line":"    4.Install NFS client on newly created Master/Worker VMs in all LCM"},{"line_number":11,"context_line":"    operations."}],"source_content_type":"text/x-yaml","patch_set":3,"id":"7e279d05_232eaf76","line":11,"range":{"start_line":7,"start_character":0,"end_line":11,"end_character":15},"in_reply_to":"e9475a4e_8dc2aae3","updated":"2021-09-17 06:55:12.000000000","message":"Thank you for your comment. I will fixed it in patch 4.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"}],"samples/mgmt_driver/kubernetes_mgmt.py":[{"author":{"_account_id":25701,"name":"Yasufumi Ogawa","email":"yasufum.o@gmail.com","username":"yasufum"},"change_message_id":"cbf7321d17eda1175cd88e33ffd7bf16d359f742","unresolved":true,"context_lines":[{"line_number":233,"context_line":"                break"},{"line_number":234,"context_line":"        if not vnfc_id:"},{"line_number":235,"context_line":"            msg \u003d \u0027Failed to find Vnfc Resource related \u0027 \\"},{"line_number":236,"context_line":"                  \u0027to this physical_resource_id {}.\u0027\\"},{"line_number":237,"context_line":"                .format(physical_resource_id)"},{"line_number":238,"context_line":"            LOG.error(msg)"},{"line_number":239,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":240,"context_line":"                error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"1b3acdf1_9dd6516f","line":237,"range":{"start_line":236,"start_character":0,"end_line":237,"end_character":45},"updated":"2021-09-15 18:53:54.000000000","message":"Is it required to change here and all just modifying indents?","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"6854136c8c550f065dcba72ce0c2b8312bf4c8db","unresolved":true,"context_lines":[{"line_number":233,"context_line":"                break"},{"line_number":234,"context_line":"        if not vnfc_id:"},{"line_number":235,"context_line":"            msg \u003d \u0027Failed to find Vnfc Resource related \u0027 \\"},{"line_number":236,"context_line":"                  \u0027to this physical_resource_id {}.\u0027\\"},{"line_number":237,"context_line":"                .format(physical_resource_id)"},{"line_number":238,"context_line":"            LOG.error(msg)"},{"line_number":239,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":240,"context_line":"                error_message\u003dmsg)"}],"source_content_type":"text/x-python","patch_set":3,"id":"b5d76488_fa38e205","line":237,"range":{"start_line":236,"start_character":0,"end_line":237,"end_character":45},"in_reply_to":"1b3acdf1_9dd6516f","updated":"2021-09-17 06:55:12.000000000","message":"Thank you for your comment. I will fixed it in patch 4.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8618db3fc58cc26a151eb649abe5ae6b1155c906","unresolved":true,"context_lines":[{"line_number":935,"context_line":""},{"line_number":936,"context_line":"    def _get_connect_master(self, master_vm_dict_list):"},{"line_number":937,"context_line":"        for vm_dict in master_vm_dict_list:"},{"line_number":938,"context_line":"            retry \u003d 4"},{"line_number":939,"context_line":"            while retry \u003e 0:"},{"line_number":940,"context_line":"                try:"},{"line_number":941,"context_line":"                    commander \u003d cmd_executer.RemoteCommandExecutor("}],"source_content_type":"text/x-python","patch_set":3,"id":"7e44c362_cf1054b5","line":938,"updated":"2021-09-13 08:49:15.000000000","message":"Should `retry` be defined as a constant value?","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"441047bbb2ab52db91b73f111ff811283e78860e","unresolved":false,"context_lines":[{"line_number":935,"context_line":""},{"line_number":936,"context_line":"    def _get_connect_master(self, master_vm_dict_list):"},{"line_number":937,"context_line":"        for vm_dict in master_vm_dict_list:"},{"line_number":938,"context_line":"            retry \u003d 4"},{"line_number":939,"context_line":"            while retry \u003e 0:"},{"line_number":940,"context_line":"                try:"},{"line_number":941,"context_line":"                    commander \u003d cmd_executer.RemoteCommandExecutor("}],"source_content_type":"text/x-python","patch_set":3,"id":"1f17158b_b1830f6e","line":938,"in_reply_to":"3e27c316_cb0943bf","updated":"2021-09-17 07:36:17.000000000","message":"Ack","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"6854136c8c550f065dcba72ce0c2b8312bf4c8db","unresolved":true,"context_lines":[{"line_number":935,"context_line":""},{"line_number":936,"context_line":"    def _get_connect_master(self, master_vm_dict_list):"},{"line_number":937,"context_line":"        for vm_dict in master_vm_dict_list:"},{"line_number":938,"context_line":"            retry \u003d 4"},{"line_number":939,"context_line":"            while retry \u003e 0:"},{"line_number":940,"context_line":"                try:"},{"line_number":941,"context_line":"                    commander \u003d cmd_executer.RemoteCommandExecutor("}],"source_content_type":"text/x-python","patch_set":3,"id":"3e27c316_cb0943bf","line":938,"in_reply_to":"7e44c362_cf1054b5","updated":"2021-09-17 06:55:12.000000000","message":"Thank you for your comment, I will fixed it in patch 4.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8618db3fc58cc26a151eb649abe5ae6b1155c906","unresolved":true,"context_lines":[{"line_number":949,"context_line":"                    LOG.debug(e)"},{"line_number":950,"context_line":"                    retry -\u003d 1"},{"line_number":951,"context_line":"                    time.sleep(SERVER_WAIT_COMPLETE_TIME)"},{"line_number":952,"context_line":"        else:"},{"line_number":953,"context_line":"            LOG.error(\u0027Failed to execute remote command.\u0027)"},{"line_number":954,"context_line":"            raise exceptions.MgmtDriverRemoteCommandError()"},{"line_number":955,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"3e0c0301_7ebbd851","line":952,"updated":"2021-09-13 08:49:15.000000000","message":"This code returns value or raises exception in `while` loop clause, thus `else` clause seems to be redundant:\n```\nfor vm_dict in master_vm_dict_list:\n    ....\n\nLOG.error(\u0027Failed to execute remote command.\u0027)\nraise exceptions.MgmtDriverRemoteCommandError()\n```","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"6854136c8c550f065dcba72ce0c2b8312bf4c8db","unresolved":true,"context_lines":[{"line_number":949,"context_line":"                    LOG.debug(e)"},{"line_number":950,"context_line":"                    retry -\u003d 1"},{"line_number":951,"context_line":"                    time.sleep(SERVER_WAIT_COMPLETE_TIME)"},{"line_number":952,"context_line":"        else:"},{"line_number":953,"context_line":"            LOG.error(\u0027Failed to execute remote command.\u0027)"},{"line_number":954,"context_line":"            raise exceptions.MgmtDriverRemoteCommandError()"},{"line_number":955,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"8b5b241f_4cb7d7c9","line":952,"in_reply_to":"3e0c0301_7ebbd851","updated":"2021-09-17 06:55:12.000000000","message":"Thank you for your comment. This is a for-else statement. The else statement will be executed if there is no return or break executed in the for statement. If the try statement is executed successfully, the return will be executed. If an exception occurs in the try statement, the exception is only caught, and no exception is thrown. It will retry again until the number of retry runs out. Therefore, if the number of retry runs out and the return is not executed, the else statement will be executed, so the else statement is not redundant.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"441047bbb2ab52db91b73f111ff811283e78860e","unresolved":false,"context_lines":[{"line_number":949,"context_line":"                    LOG.debug(e)"},{"line_number":950,"context_line":"                    retry -\u003d 1"},{"line_number":951,"context_line":"                    time.sleep(SERVER_WAIT_COMPLETE_TIME)"},{"line_number":952,"context_line":"        else:"},{"line_number":953,"context_line":"            LOG.error(\u0027Failed to execute remote command.\u0027)"},{"line_number":954,"context_line":"            raise exceptions.MgmtDriverRemoteCommandError()"},{"line_number":955,"context_line":""}],"source_content_type":"text/x-python","patch_set":3,"id":"2a583433_123bd8f9","line":952,"in_reply_to":"8b5b241f_4cb7d7c9","updated":"2021-09-17 07:36:17.000000000","message":"Thanks for your explanation, I understand well.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8618db3fc58cc26a151eb649abe5ae6b1155c906","unresolved":true,"context_lines":[{"line_number":1891,"context_line":"                                          heal_vnf_request):"},{"line_number":1892,"context_line":"        target_node_physical_resource_ids \u003d []"},{"line_number":1893,"context_line":"        target_ss_physical_resource_ids \u003d []"},{"line_number":1894,"context_line":"        storage_server_param \u003d vnf_instance.instantiated_vnf_info \\"},{"line_number":1895,"context_line":"            .additional_params.get(\u0027k8s_cluster_installation_param\u0027)\\"},{"line_number":1896,"context_line":"            .get(\u0027storage_server\u0027)"},{"line_number":1897,"context_line":"        if storage_server_param:"},{"line_number":1898,"context_line":"            target_ss_cp_name \u003d storage_server_param.get(\u0027ssh_cp_name\u0027)"},{"line_number":1899,"context_line":"        else:"},{"line_number":1900,"context_line":"            target_ss_cp_name \u003d None"},{"line_number":1901,"context_line":"        for vnfc_instance_id in heal_vnf_request.vnfc_instance_id:"},{"line_number":1902,"context_line":"            instantiated_vnf_info \u003d vnf_instance.instantiated_vnf_info"},{"line_number":1903,"context_line":"            vnfc_resource_info \u003d instantiated_vnf_info.vnfc_resource_info"}],"source_content_type":"text/x-python","patch_set":3,"id":"be7ebc50_4a7f255c","line":1900,"range":{"start_line":1894,"start_character":0,"end_line":1900,"end_character":36},"updated":"2021-09-13 08:49:15.000000000","message":"This code can be simplified like this:\n\n```\nstorage_server_param \u003d vnf_instance.instantiated_vnf_info \\\n    .additional_params.get(\u0027k8s_cluster_installation_param\u0027)\\\n    .get(\u0027storage_server\u0027, {})\ntarget_ss_cp_name \u003d storage_server_param.get(\u0027ssh_cp_name\u0027, None)\n```","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"441047bbb2ab52db91b73f111ff811283e78860e","unresolved":false,"context_lines":[{"line_number":1891,"context_line":"                                          heal_vnf_request):"},{"line_number":1892,"context_line":"        target_node_physical_resource_ids \u003d []"},{"line_number":1893,"context_line":"        target_ss_physical_resource_ids \u003d []"},{"line_number":1894,"context_line":"        storage_server_param \u003d vnf_instance.instantiated_vnf_info \\"},{"line_number":1895,"context_line":"            .additional_params.get(\u0027k8s_cluster_installation_param\u0027)\\"},{"line_number":1896,"context_line":"            .get(\u0027storage_server\u0027)"},{"line_number":1897,"context_line":"        if storage_server_param:"},{"line_number":1898,"context_line":"            target_ss_cp_name \u003d storage_server_param.get(\u0027ssh_cp_name\u0027)"},{"line_number":1899,"context_line":"        else:"},{"line_number":1900,"context_line":"            target_ss_cp_name \u003d None"},{"line_number":1901,"context_line":"        for vnfc_instance_id in heal_vnf_request.vnfc_instance_id:"},{"line_number":1902,"context_line":"            instantiated_vnf_info \u003d vnf_instance.instantiated_vnf_info"},{"line_number":1903,"context_line":"            vnfc_resource_info \u003d instantiated_vnf_info.vnfc_resource_info"}],"source_content_type":"text/x-python","patch_set":3,"id":"8598a568_ef90aa97","line":1900,"range":{"start_line":1894,"start_character":0,"end_line":1900,"end_character":36},"in_reply_to":"7c22cd92_72ce8946","updated":"2021-09-17 07:36:17.000000000","message":"Ack","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"6854136c8c550f065dcba72ce0c2b8312bf4c8db","unresolved":true,"context_lines":[{"line_number":1891,"context_line":"                                          heal_vnf_request):"},{"line_number":1892,"context_line":"        target_node_physical_resource_ids \u003d []"},{"line_number":1893,"context_line":"        target_ss_physical_resource_ids \u003d []"},{"line_number":1894,"context_line":"        storage_server_param \u003d vnf_instance.instantiated_vnf_info \\"},{"line_number":1895,"context_line":"            .additional_params.get(\u0027k8s_cluster_installation_param\u0027)\\"},{"line_number":1896,"context_line":"            .get(\u0027storage_server\u0027)"},{"line_number":1897,"context_line":"        if storage_server_param:"},{"line_number":1898,"context_line":"            target_ss_cp_name \u003d storage_server_param.get(\u0027ssh_cp_name\u0027)"},{"line_number":1899,"context_line":"        else:"},{"line_number":1900,"context_line":"            target_ss_cp_name \u003d None"},{"line_number":1901,"context_line":"        for vnfc_instance_id in heal_vnf_request.vnfc_instance_id:"},{"line_number":1902,"context_line":"            instantiated_vnf_info \u003d vnf_instance.instantiated_vnf_info"},{"line_number":1903,"context_line":"            vnfc_resource_info \u003d instantiated_vnf_info.vnfc_resource_info"}],"source_content_type":"text/x-python","patch_set":3,"id":"7c22cd92_72ce8946","line":1900,"range":{"start_line":1894,"start_character":0,"end_line":1900,"end_character":36},"in_reply_to":"be7ebc50_4a7f255c","updated":"2021-09-17 06:55:12.000000000","message":"Thank you for your comment, I will fixed it in patch 4.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8618db3fc58cc26a151eb649abe5ae6b1155c906","unresolved":true,"context_lines":[{"line_number":2355,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":2356,"context_line":"                error_message\u003d\"Failed to get IP address for \""},{"line_number":2357,"context_line":"                              \"Storage server VM\")"},{"line_number":2358,"context_line":""},{"line_number":2359,"context_line":"        # commander \u003d cmd_executer.RemoteCommandExecutor("},{"line_number":2360,"context_line":"        #     user\u003dssh_username, password\u003dssh_password, host\u003dssh_ip_address,"},{"line_number":2361,"context_line":"        #     timeout\u003dK8S_CMD_TIMEOUT)"},{"line_number":2362,"context_line":"        commander \u003d self._init_commander(ssh_username, ssh_password,"},{"line_number":2363,"context_line":"                                         ssh_ip_address)"},{"line_number":2364,"context_line":"        ssh_command \u003d \u0027cat /etc/os-release | grep \"PRETTY_NAME\u003d\" | \u0027 \\"}],"source_content_type":"text/x-python","patch_set":3,"id":"9781f41c_a8ac900c","line":2361,"range":{"start_line":2358,"start_character":0,"end_line":2361,"end_character":38},"updated":"2021-09-13 08:49:15.000000000","message":"nit. Why this comment remain?","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"6854136c8c550f065dcba72ce0c2b8312bf4c8db","unresolved":true,"context_lines":[{"line_number":2355,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":2356,"context_line":"                error_message\u003d\"Failed to get IP address for \""},{"line_number":2357,"context_line":"                              \"Storage server VM\")"},{"line_number":2358,"context_line":""},{"line_number":2359,"context_line":"        # commander \u003d cmd_executer.RemoteCommandExecutor("},{"line_number":2360,"context_line":"        #     user\u003dssh_username, password\u003dssh_password, host\u003dssh_ip_address,"},{"line_number":2361,"context_line":"        #     timeout\u003dK8S_CMD_TIMEOUT)"},{"line_number":2362,"context_line":"        commander \u003d self._init_commander(ssh_username, ssh_password,"},{"line_number":2363,"context_line":"                                         ssh_ip_address)"},{"line_number":2364,"context_line":"        ssh_command \u003d \u0027cat /etc/os-release | grep \"PRETTY_NAME\u003d\" | \u0027 \\"}],"source_content_type":"text/x-python","patch_set":3,"id":"b4b3b21f_b0b0d074","line":2361,"range":{"start_line":2358,"start_character":0,"end_line":2361,"end_character":38},"in_reply_to":"9781f41c_a8ac900c","updated":"2021-09-17 06:55:12.000000000","message":"Thank you for your comment.I`m sorry for that. I will fixed it in patch 4.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"441047bbb2ab52db91b73f111ff811283e78860e","unresolved":false,"context_lines":[{"line_number":2355,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":2356,"context_line":"                error_message\u003d\"Failed to get IP address for \""},{"line_number":2357,"context_line":"                              \"Storage server VM\")"},{"line_number":2358,"context_line":""},{"line_number":2359,"context_line":"        # commander \u003d cmd_executer.RemoteCommandExecutor("},{"line_number":2360,"context_line":"        #     user\u003dssh_username, password\u003dssh_password, host\u003dssh_ip_address,"},{"line_number":2361,"context_line":"        #     timeout\u003dK8S_CMD_TIMEOUT)"},{"line_number":2362,"context_line":"        commander \u003d self._init_commander(ssh_username, ssh_password,"},{"line_number":2363,"context_line":"                                         ssh_ip_address)"},{"line_number":2364,"context_line":"        ssh_command \u003d \u0027cat /etc/os-release | grep \"PRETTY_NAME\u003d\" | \u0027 \\"}],"source_content_type":"text/x-python","patch_set":3,"id":"a4e77cbc_ff9ac60a","line":2361,"range":{"start_line":2358,"start_character":0,"end_line":2361,"end_character":38},"in_reply_to":"b4b3b21f_b0b0d074","updated":"2021-09-17 07:36:17.000000000","message":"Ack","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8618db3fc58cc26a151eb649abe5ae6b1155c906","unresolved":true,"context_lines":[{"line_number":2359,"context_line":"        # commander \u003d cmd_executer.RemoteCommandExecutor("},{"line_number":2360,"context_line":"        #     user\u003dssh_username, password\u003dssh_password, host\u003dssh_ip_address,"},{"line_number":2361,"context_line":"        #     timeout\u003dK8S_CMD_TIMEOUT)"},{"line_number":2362,"context_line":"        commander \u003d self._init_commander(ssh_username, ssh_password,"},{"line_number":2363,"context_line":"                                         ssh_ip_address)"},{"line_number":2364,"context_line":"        ssh_command \u003d \u0027cat /etc/os-release | grep \"PRETTY_NAME\u003d\" | \u0027 \\"},{"line_number":2365,"context_line":"                      \u0027grep -c \"Ubuntu 20.04\"; arch | grep -c x86_64\u0027"},{"line_number":2366,"context_line":"        result \u003d self._execute_command("},{"line_number":2367,"context_line":"            commander, ssh_command, NFS_CMD_TIMEOUT, \u0027common\u0027, 3)"},{"line_number":2368,"context_line":"        results \u003d [int(item.replace(\u0027\\n\u0027, \u0027\u0027)) for item in result]"},{"line_number":2369,"context_line":"        if not (results[0] and results[1]):"},{"line_number":2370,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":2371,"context_line":"                error_message\u003d\"Storage server VM setup failed.\""},{"line_number":2372,"context_line":"                              \"Your OS does not support at present.\""},{"line_number":2373,"context_line":"                              \"It only supports Ubuntu 20.04 (x86_64)\""},{"line_number":2374,"context_line":"            )"},{"line_number":2375,"context_line":""},{"line_number":2376,"context_line":"        for setup_info in cinder_volume_setup_params:"},{"line_number":2377,"context_line":"            volume_resource_id \u003d setup_info.get(\u0027volume_resource_id\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"7477b7c5_ed32276a","line":2374,"range":{"start_line":2362,"start_character":0,"end_line":2374,"end_character":13},"updated":"2021-09-13 08:49:15.000000000","message":"Those code seem to simply verify target environment, so you might split them into a method.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"6854136c8c550f065dcba72ce0c2b8312bf4c8db","unresolved":true,"context_lines":[{"line_number":2359,"context_line":"        # commander \u003d cmd_executer.RemoteCommandExecutor("},{"line_number":2360,"context_line":"        #     user\u003dssh_username, password\u003dssh_password, host\u003dssh_ip_address,"},{"line_number":2361,"context_line":"        #     timeout\u003dK8S_CMD_TIMEOUT)"},{"line_number":2362,"context_line":"        commander \u003d self._init_commander(ssh_username, ssh_password,"},{"line_number":2363,"context_line":"                                         ssh_ip_address)"},{"line_number":2364,"context_line":"        ssh_command \u003d \u0027cat /etc/os-release | grep \"PRETTY_NAME\u003d\" | \u0027 \\"},{"line_number":2365,"context_line":"                      \u0027grep -c \"Ubuntu 20.04\"; arch | grep -c x86_64\u0027"},{"line_number":2366,"context_line":"        result \u003d self._execute_command("},{"line_number":2367,"context_line":"            commander, ssh_command, NFS_CMD_TIMEOUT, \u0027common\u0027, 3)"},{"line_number":2368,"context_line":"        results \u003d [int(item.replace(\u0027\\n\u0027, \u0027\u0027)) for item in result]"},{"line_number":2369,"context_line":"        if not (results[0] and results[1]):"},{"line_number":2370,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":2371,"context_line":"                error_message\u003d\"Storage server VM setup failed.\""},{"line_number":2372,"context_line":"                              \"Your OS does not support at present.\""},{"line_number":2373,"context_line":"                              \"It only supports Ubuntu 20.04 (x86_64)\""},{"line_number":2374,"context_line":"            )"},{"line_number":2375,"context_line":""},{"line_number":2376,"context_line":"        for setup_info in cinder_volume_setup_params:"},{"line_number":2377,"context_line":"            volume_resource_id \u003d setup_info.get(\u0027volume_resource_id\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"8486cac5_0b04f9c5","line":2374,"range":{"start_line":2362,"start_character":0,"end_line":2374,"end_character":13},"in_reply_to":"7477b7c5_ed32276a","updated":"2021-09-17 06:55:12.000000000","message":"Thank you for your comment. I will fixed it in patch 4.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"441047bbb2ab52db91b73f111ff811283e78860e","unresolved":false,"context_lines":[{"line_number":2359,"context_line":"        # commander \u003d cmd_executer.RemoteCommandExecutor("},{"line_number":2360,"context_line":"        #     user\u003dssh_username, password\u003dssh_password, host\u003dssh_ip_address,"},{"line_number":2361,"context_line":"        #     timeout\u003dK8S_CMD_TIMEOUT)"},{"line_number":2362,"context_line":"        commander \u003d self._init_commander(ssh_username, ssh_password,"},{"line_number":2363,"context_line":"                                         ssh_ip_address)"},{"line_number":2364,"context_line":"        ssh_command \u003d \u0027cat /etc/os-release | grep \"PRETTY_NAME\u003d\" | \u0027 \\"},{"line_number":2365,"context_line":"                      \u0027grep -c \"Ubuntu 20.04\"; arch | grep -c x86_64\u0027"},{"line_number":2366,"context_line":"        result \u003d self._execute_command("},{"line_number":2367,"context_line":"            commander, ssh_command, NFS_CMD_TIMEOUT, \u0027common\u0027, 3)"},{"line_number":2368,"context_line":"        results \u003d [int(item.replace(\u0027\\n\u0027, \u0027\u0027)) for item in result]"},{"line_number":2369,"context_line":"        if not (results[0] and results[1]):"},{"line_number":2370,"context_line":"            raise exceptions.MgmtDriverOtherError("},{"line_number":2371,"context_line":"                error_message\u003d\"Storage server VM setup failed.\""},{"line_number":2372,"context_line":"                              \"Your OS does not support at present.\""},{"line_number":2373,"context_line":"                              \"It only supports Ubuntu 20.04 (x86_64)\""},{"line_number":2374,"context_line":"            )"},{"line_number":2375,"context_line":""},{"line_number":2376,"context_line":"        for setup_info in cinder_volume_setup_params:"},{"line_number":2377,"context_line":"            volume_resource_id \u003d setup_info.get(\u0027volume_resource_id\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"74fc0c2f_b96dbbd0","line":2374,"range":{"start_line":2362,"start_character":0,"end_line":2374,"end_character":13},"in_reply_to":"8486cac5_0b04f9c5","updated":"2021-09-17 07:36:17.000000000","message":"Ack","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8618db3fc58cc26a151eb649abe5ae6b1155c906","unresolved":true,"context_lines":[{"line_number":2384,"context_line":"                \u0027attachments\u0027)[0].get(\u0027device\u0027)"},{"line_number":2385,"context_line":"            if not volume_device:"},{"line_number":2386,"context_line":"                raise exceptions.MgmtDriverOtherError("},{"line_number":2387,"context_line":"                    error_message\u003df\"Failed to get device information for \""},{"line_number":2388,"context_line":"                                  f\"Cinder volume.volume_resource_id:\""},{"line_number":2389,"context_line":"                                  f\"{volume_resource_id}\")"},{"line_number":2390,"context_line":""},{"line_number":2391,"context_line":"            ssh_command \u003d \\"},{"line_number":2392,"context_line":"                f\"sudo mkfs -t ext4 {volume_device} 2\u003e/dev/null \u0026\u0026 \" \\"}],"source_content_type":"text/x-python","patch_set":3,"id":"b70a28e2_752ef16e","line":2389,"range":{"start_line":2387,"start_character":0,"end_line":2389,"end_character":58},"updated":"2021-09-13 08:49:15.000000000","message":"This method uses `f` literal, but other parts in this script file uses `string.format()`, thus you should use the same way to use formatted string, or any other reason for using `f` literal?","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"6854136c8c550f065dcba72ce0c2b8312bf4c8db","unresolved":true,"context_lines":[{"line_number":2384,"context_line":"                \u0027attachments\u0027)[0].get(\u0027device\u0027)"},{"line_number":2385,"context_line":"            if not volume_device:"},{"line_number":2386,"context_line":"                raise exceptions.MgmtDriverOtherError("},{"line_number":2387,"context_line":"                    error_message\u003df\"Failed to get device information for \""},{"line_number":2388,"context_line":"                                  f\"Cinder volume.volume_resource_id:\""},{"line_number":2389,"context_line":"                                  f\"{volume_resource_id}\")"},{"line_number":2390,"context_line":""},{"line_number":2391,"context_line":"            ssh_command \u003d \\"},{"line_number":2392,"context_line":"                f\"sudo mkfs -t ext4 {volume_device} 2\u003e/dev/null \u0026\u0026 \" \\"}],"source_content_type":"text/x-python","patch_set":3,"id":"e9d874ec_37ee5c77","line":2389,"range":{"start_line":2387,"start_character":0,"end_line":2389,"end_character":58},"in_reply_to":"b70a28e2_752ef16e","updated":"2021-09-17 06:55:12.000000000","message":"I think `f` literal is more concise and more readable.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"441047bbb2ab52db91b73f111ff811283e78860e","unresolved":false,"context_lines":[{"line_number":2384,"context_line":"                \u0027attachments\u0027)[0].get(\u0027device\u0027)"},{"line_number":2385,"context_line":"            if not volume_device:"},{"line_number":2386,"context_line":"                raise exceptions.MgmtDriverOtherError("},{"line_number":2387,"context_line":"                    error_message\u003df\"Failed to get device information for \""},{"line_number":2388,"context_line":"                                  f\"Cinder volume.volume_resource_id:\""},{"line_number":2389,"context_line":"                                  f\"{volume_resource_id}\")"},{"line_number":2390,"context_line":""},{"line_number":2391,"context_line":"            ssh_command \u003d \\"},{"line_number":2392,"context_line":"                f\"sudo mkfs -t ext4 {volume_device} 2\u003e/dev/null \u0026\u0026 \" \\"}],"source_content_type":"text/x-python","patch_set":3,"id":"4513a752_39475174","line":2389,"range":{"start_line":2387,"start_character":0,"end_line":2389,"end_character":58},"in_reply_to":"e9d874ec_37ee5c77","updated":"2021-09-17 07:36:17.000000000","message":"Umm....I understand your opinion, but from the code concurrency perspective, I think we should use the same way for string formatting in one source file.\n\nHowever, it is OK for now, and someone will point it out if it should be fixed. Thanks.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8618db3fc58cc26a151eb649abe5ae6b1155c906","unresolved":true,"context_lines":[{"line_number":2501,"context_line":"                (local_file_path, remote_file_path, nfs_server_cp, pv_name))"},{"line_number":2502,"context_line":""},{"line_number":2503,"context_line":"        connect \u003d paramiko.Transport(master_ip, 22)"},{"line_number":2504,"context_line":"        connect.connect(username\u003dmaster_username, password\u003dmaster_password)"},{"line_number":2505,"context_line":"        sftp_client \u003d paramiko.SFTPClient.from_transport(connect)"},{"line_number":2506,"context_line":"        for pv_info in pv_file_list:"},{"line_number":2507,"context_line":"            sftp_client.put(pv_info[0], pv_info[1])"}],"source_content_type":"text/x-python","patch_set":3,"id":"02a678f8_022dba65","line":2504,"updated":"2021-09-13 08:49:15.000000000","message":"I think `paramiko.Transport.connect()` needs error handling. As written in paramiko document[1], `connect()` returns SSHException in case of error.\n[1] http://docs.paramiko.org/en/stable/api/transport.html","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"6854136c8c550f065dcba72ce0c2b8312bf4c8db","unresolved":true,"context_lines":[{"line_number":2501,"context_line":"                (local_file_path, remote_file_path, nfs_server_cp, pv_name))"},{"line_number":2502,"context_line":""},{"line_number":2503,"context_line":"        connect \u003d paramiko.Transport(master_ip, 22)"},{"line_number":2504,"context_line":"        connect.connect(username\u003dmaster_username, password\u003dmaster_password)"},{"line_number":2505,"context_line":"        sftp_client \u003d paramiko.SFTPClient.from_transport(connect)"},{"line_number":2506,"context_line":"        for pv_info in pv_file_list:"},{"line_number":2507,"context_line":"            sftp_client.put(pv_info[0], pv_info[1])"}],"source_content_type":"text/x-python","patch_set":3,"id":"fa6437ed_fe8cdb62","line":2504,"in_reply_to":"02a678f8_022dba65","updated":"2021-09-17 06:55:12.000000000","message":"Thank you for your comment. I will fixed it in patch 4.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"441047bbb2ab52db91b73f111ff811283e78860e","unresolved":false,"context_lines":[{"line_number":2501,"context_line":"                (local_file_path, remote_file_path, nfs_server_cp, pv_name))"},{"line_number":2502,"context_line":""},{"line_number":2503,"context_line":"        connect \u003d paramiko.Transport(master_ip, 22)"},{"line_number":2504,"context_line":"        connect.connect(username\u003dmaster_username, password\u003dmaster_password)"},{"line_number":2505,"context_line":"        sftp_client \u003d paramiko.SFTPClient.from_transport(connect)"},{"line_number":2506,"context_line":"        for pv_info in pv_file_list:"},{"line_number":2507,"context_line":"            sftp_client.put(pv_info[0], pv_info[1])"}],"source_content_type":"text/x-python","patch_set":3,"id":"09fef923_1bd3b87f","line":2504,"in_reply_to":"fa6437ed_fe8cdb62","updated":"2021-09-17 07:36:17.000000000","message":"Ack","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8618db3fc58cc26a151eb649abe5ae6b1155c906","unresolved":true,"context_lines":[{"line_number":2538,"context_line":""},{"line_number":2539,"context_line":"            ssh_command \u003d f\"kubectl get pv {pv_name} \" \\"},{"line_number":2540,"context_line":"                          \"-o jsonpath\u003d\u0027{.status.phase}\u0027\""},{"line_number":2541,"context_line":"            for i in range(5):"},{"line_number":2542,"context_line":"                result \u003d self._execute_command("},{"line_number":2543,"context_line":"                    commander, ssh_command, NFS_CMD_TIMEOUT, \u0027common\u0027, 5)"},{"line_number":2544,"context_line":"                if \u0027Available\u0027 in \u0027,\u0027.join(result):"}],"source_content_type":"text/x-python","patch_set":3,"id":"2b431c91_48a4df38","line":2541,"updated":"2021-09-13 08:49:15.000000000","message":"Two comments:\n- `i` is unused, thus should be `_`.\n- What is 5 in `range`? Is this something a parameter?","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"6854136c8c550f065dcba72ce0c2b8312bf4c8db","unresolved":true,"context_lines":[{"line_number":2538,"context_line":""},{"line_number":2539,"context_line":"            ssh_command \u003d f\"kubectl get pv {pv_name} \" \\"},{"line_number":2540,"context_line":"                          \"-o jsonpath\u003d\u0027{.status.phase}\u0027\""},{"line_number":2541,"context_line":"            for i in range(5):"},{"line_number":2542,"context_line":"                result \u003d self._execute_command("},{"line_number":2543,"context_line":"                    commander, ssh_command, NFS_CMD_TIMEOUT, \u0027common\u0027, 5)"},{"line_number":2544,"context_line":"                if \u0027Available\u0027 in \u0027,\u0027.join(result):"}],"source_content_type":"text/x-python","patch_set":3,"id":"7434dfb0_5f195dcf","line":2541,"in_reply_to":"2b431c91_48a4df38","updated":"2021-09-17 06:55:12.000000000","message":"Thank you for your comment. 5 in `range` is retry times. I will define it as a constant in patch 4.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"441047bbb2ab52db91b73f111ff811283e78860e","unresolved":false,"context_lines":[{"line_number":2538,"context_line":""},{"line_number":2539,"context_line":"            ssh_command \u003d f\"kubectl get pv {pv_name} \" \\"},{"line_number":2540,"context_line":"                          \"-o jsonpath\u003d\u0027{.status.phase}\u0027\""},{"line_number":2541,"context_line":"            for i in range(5):"},{"line_number":2542,"context_line":"                result \u003d self._execute_command("},{"line_number":2543,"context_line":"                    commander, ssh_command, NFS_CMD_TIMEOUT, \u0027common\u0027, 5)"},{"line_number":2544,"context_line":"                if \u0027Available\u0027 in \u0027,\u0027.join(result):"}],"source_content_type":"text/x-python","patch_set":3,"id":"0eaa3980_c2e35724","line":2541,"in_reply_to":"7434dfb0_5f195dcf","updated":"2021-09-17 07:36:17.000000000","message":"Ack","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":31730,"name":"Naoaki Horie","email":"naoaki.h.opst@gmail.com","username":"naoaki-horie"},"change_message_id":"32f328e776b8315da4eb0ecb15dacd40f3fe9cb7","unresolved":true,"context_lines":[{"line_number":2545,"context_line":"                    break"},{"line_number":2546,"context_line":"                else:"},{"line_number":2547,"context_line":"                    time.sleep(30)"},{"line_number":2548,"context_line":"            else:"},{"line_number":2549,"context_line":"                raise exceptions.MgmtDriverOtherError("},{"line_number":2550,"context_line":"                    error_message\u003d\u0027Failed to register Persistent volume\u0027"},{"line_number":2551,"context_line":"                                  \u0027(Status is not \"Available\" state)\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"dc7f4287_da634cab","line":2548,"updated":"2021-09-15 03:06:04.000000000","message":"The persistent volume resources are possibly remain because it runs \u0027kubectl apply\u0027 command. If the creation of the persistent volume resource fails, I think that it would be better to add a \u0027kubectl delete\u0027 command.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":31730,"name":"Naoaki Horie","email":"naoaki.h.opst@gmail.com","username":"naoaki-horie"},"change_message_id":"08639eabb44ea6056ba5cb04ed634b6ac6316db9","unresolved":false,"context_lines":[{"line_number":2545,"context_line":"                    break"},{"line_number":2546,"context_line":"                else:"},{"line_number":2547,"context_line":"                    time.sleep(30)"},{"line_number":2548,"context_line":"            else:"},{"line_number":2549,"context_line":"                raise exceptions.MgmtDriverOtherError("},{"line_number":2550,"context_line":"                    error_message\u003d\u0027Failed to register Persistent volume\u0027"},{"line_number":2551,"context_line":"                                  \u0027(Status is not \"Available\" state)\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"b42438c6_1e7f9223","line":2548,"in_reply_to":"0ebdeb8c_e9a8ba47","updated":"2021-09-17 08:43:53.000000000","message":"I have confirmed it.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"6854136c8c550f065dcba72ce0c2b8312bf4c8db","unresolved":true,"context_lines":[{"line_number":2545,"context_line":"                    break"},{"line_number":2546,"context_line":"                else:"},{"line_number":2547,"context_line":"                    time.sleep(30)"},{"line_number":2548,"context_line":"            else:"},{"line_number":2549,"context_line":"                raise exceptions.MgmtDriverOtherError("},{"line_number":2550,"context_line":"                    error_message\u003d\u0027Failed to register Persistent volume\u0027"},{"line_number":2551,"context_line":"                                  \u0027(Status is not \"Available\" state)\u0027)"}],"source_content_type":"text/x-python","patch_set":3,"id":"0ebdeb8c_e9a8ba47","line":2548,"in_reply_to":"dc7f4287_da634cab","updated":"2021-09-17 06:55:12.000000000","message":"Thank you for your comment. I will fixed it in patch 4.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"8618db3fc58cc26a151eb649abe5ae6b1155c906","unresolved":true,"context_lines":[{"line_number":2608,"context_line":"            if in_use_pv_name in pv_name_list:"},{"line_number":2609,"context_line":"                raise exceptions.MgmtDriverOtherError("},{"line_number":2610,"context_line":"                    error_message\u003df\"heal_start failed({in_use_pv_name} \""},{"line_number":2611,"context_line":"                                  f\"Persistent volume in use)\")"},{"line_number":2612,"context_line":""},{"line_number":2613,"context_line":"        for pv_name in pv_name_list:"},{"line_number":2614,"context_line":"            ssh_command \u003d f\"kubectl delete pv {pv_name}\""}],"source_content_type":"text/x-python","patch_set":3,"id":"0f7a3542_c18d7426","line":2611,"updated":"2021-09-13 08:49:15.000000000","message":"nit: -\u003e Persistent volume is in use.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33492,"name":"Yi Feng","email":"fengyi@fujitsu.com","username":"YiFeng"},"change_message_id":"6854136c8c550f065dcba72ce0c2b8312bf4c8db","unresolved":true,"context_lines":[{"line_number":2608,"context_line":"            if in_use_pv_name in pv_name_list:"},{"line_number":2609,"context_line":"                raise exceptions.MgmtDriverOtherError("},{"line_number":2610,"context_line":"                    error_message\u003df\"heal_start failed({in_use_pv_name} \""},{"line_number":2611,"context_line":"                                  f\"Persistent volume in use)\")"},{"line_number":2612,"context_line":""},{"line_number":2613,"context_line":"        for pv_name in pv_name_list:"},{"line_number":2614,"context_line":"            ssh_command \u003d f\"kubectl delete pv {pv_name}\""}],"source_content_type":"text/x-python","patch_set":3,"id":"a402f970_5c3c70e4","line":2611,"in_reply_to":"0f7a3542_c18d7426","updated":"2021-09-17 06:55:12.000000000","message":"Thank you for your comment. I will fixed it in patch 4.","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"},{"author":{"_account_id":33292,"name":"Masaki UENO","email":"masaki.ueno.up@hco.ntt.co.jp","username":"masaki-ueno"},"change_message_id":"441047bbb2ab52db91b73f111ff811283e78860e","unresolved":false,"context_lines":[{"line_number":2608,"context_line":"            if in_use_pv_name in pv_name_list:"},{"line_number":2609,"context_line":"                raise exceptions.MgmtDriverOtherError("},{"line_number":2610,"context_line":"                    error_message\u003df\"heal_start failed({in_use_pv_name} \""},{"line_number":2611,"context_line":"                                  f\"Persistent volume in use)\")"},{"line_number":2612,"context_line":""},{"line_number":2613,"context_line":"        for pv_name in pv_name_list:"},{"line_number":2614,"context_line":"            ssh_command \u003d f\"kubectl delete pv {pv_name}\""}],"source_content_type":"text/x-python","patch_set":3,"id":"270fee05_c97e21ed","line":2611,"in_reply_to":"a402f970_5c3c70e4","updated":"2021-09-17 07:36:17.000000000","message":"Ack","commit_id":"273059065ee0beb54dbd55612d3f3222967bd7df"}]}
