This is an automated email from the ASF dual-hosted git repository.

dahn pushed a commit to branch 4.17
in repository https://gitbox.apache.org/repos/asf/cloudstack.git


The following commit(s) were added to refs/heads/4.17 by this push:
     new e5158b29ee9 vmware: encode disk path for URL based access (#6989)
e5158b29ee9 is described below

commit e5158b29ee9a950b57bd25333ed20364998d8988
Author: Abhishek Kumar <[email protected]>
AuthorDate: Thu Jan 12 19:50:48 2023 +0530

    vmware: encode disk path for URL based access (#6989)
---
 .../hypervisor/vmware/util/VmwareContext.java      | 52 +++++++++++-----------
 1 file changed, 27 insertions(+), 25 deletions(-)

diff --git 
a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/util/VmwareContext.java 
b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/util/VmwareContext.java
index 14c8667cbd6..0c7487cfab7 100644
--- 
a/vmware-base/src/main/java/com/cloud/hypervisor/vmware/util/VmwareContext.java
+++ 
b/vmware-base/src/main/java/com/cloud/hypervisor/vmware/util/VmwareContext.java
@@ -16,29 +16,6 @@
 // under the License.
 package com.cloud.hypervisor.vmware.util;
 
-import com.cloud.hypervisor.vmware.mo.DatacenterMO;
-import com.cloud.hypervisor.vmware.mo.DatastoreFile;
-import com.cloud.utils.ActionDelegate;
-import com.cloud.utils.StringUtils;
-import com.vmware.pbm.PbmPortType;
-import com.vmware.pbm.PbmServiceInstanceContent;
-import com.vmware.vim25.ManagedObjectReference;
-import com.vmware.vim25.ObjectContent;
-import com.vmware.vim25.ObjectSpec;
-import com.vmware.vim25.PropertyFilterSpec;
-import com.vmware.vim25.PropertySpec;
-import com.vmware.vim25.ServiceContent;
-import com.vmware.vim25.TaskInfo;
-import com.vmware.vim25.TraversalSpec;
-import com.vmware.vim25.VimPortType;
-import org.apache.cloudstack.utils.security.SSLUtils;
-import org.apache.cloudstack.utils.security.SecureSSLSocketFactory;
-import org.apache.log4j.Logger;
-
-import javax.net.ssl.HostnameVerifier;
-import javax.net.ssl.HttpsURLConnection;
-import javax.net.ssl.SSLSession;
-import javax.xml.ws.soap.SOAPFaultException;
 import java.io.BufferedInputStream;
 import java.io.BufferedOutputStream;
 import java.io.BufferedReader;
@@ -59,6 +36,31 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import javax.net.ssl.HostnameVerifier;
+import javax.net.ssl.HttpsURLConnection;
+import javax.net.ssl.SSLSession;
+import javax.xml.ws.soap.SOAPFaultException;
+
+import org.apache.cloudstack.utils.security.SSLUtils;
+import org.apache.cloudstack.utils.security.SecureSSLSocketFactory;
+import org.apache.log4j.Logger;
+
+import com.cloud.hypervisor.vmware.mo.DatacenterMO;
+import com.cloud.hypervisor.vmware.mo.DatastoreFile;
+import com.cloud.utils.ActionDelegate;
+import com.cloud.utils.StringUtils;
+import com.vmware.pbm.PbmPortType;
+import com.vmware.pbm.PbmServiceInstanceContent;
+import com.vmware.vim25.ManagedObjectReference;
+import com.vmware.vim25.ObjectContent;
+import com.vmware.vim25.ObjectSpec;
+import com.vmware.vim25.PropertyFilterSpec;
+import com.vmware.vim25.PropertySpec;
+import com.vmware.vim25.ServiceContent;
+import com.vmware.vim25.TaskInfo;
+import com.vmware.vim25.TraversalSpec;
+import com.vmware.vim25.VimPortType;
+
 public class VmwareContext {
     private static final Logger s_logger = 
Logger.getLogger(VmwareContext.class);
 
@@ -631,12 +633,12 @@ public class VmwareContext {
         sb.append("https://";);
         sb.append(_serverAddress);
         sb.append("/folder/");
-        sb.append(relativePath);
         try {
+            sb.append(URLEncoder.encode(relativePath, "UTF-8"));
             sb.append("?dcPath=").append(URLEncoder.encode(dcName, "UTF-8"));
             sb.append("&dsName=").append(URLEncoder.encode(datastoreName, 
"UTF-8"));
         } catch (UnsupportedEncodingException e) {
-            s_logger.error("Unable to encode URL. dcPath : " + dcName + ", 
dsName :" + datastoreName, e);
+            s_logger.error(String.format("Unable to encode URL. relativePath : 
%s, dcPath : %s, dsName : %s", relativePath, dcName, datastoreName), e);
         }
         return sb.toString();
     }

Reply via email to