GutoVeronezi commented on a change in pull request #4977:
URL: https://github.com/apache/cloudstack/pull/4977#discussion_r629581989



##########
File path: 
vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/DatastoreMO.java
##########
@@ -309,16 +309,20 @@ public boolean moveDatastoreFile(String srcFilePath, 
ManagedObjectReference morS
     public boolean fileExists(String fileFullPath) throws Exception {
         DatastoreFile file = new DatastoreFile(fileFullPath);
         DatastoreFile dirFile = new DatastoreFile(file.getDatastoreName(), 
file.getDir());
-
-        HostDatastoreBrowserMO browserMo = getHostDatastoreBrowserMO();
-
-        s_logger.info("Search file " + file.getFileName() + " on " + 
dirFile.getPath());
-        HostDatastoreBrowserSearchResults results = 
browserMo.searchDatastore(dirFile.getPath(), file.getFileName(), true);
-        if (results != null) {
-            List<FileInfo> info = results.getFile();
-            if (info != null && info.size() > 0) {
-                s_logger.info("File " + fileFullPath + " exists on datastore");
-                return true;
+        Boolean folderExists = true;
+        if(file.getDir() != ""){

Review comment:
       ```java
   import org.apache.commons.lang3.StringUtils;
   ```
   
   ```java
           if (StringUtils.isNotEmpty(file.getDir())){
   ```

##########
File path: 
engine/storage/datamotion/src/main/java/org/apache/cloudstack/storage/motion/StorageSystemDataMotionStrategy.java
##########
@@ -1390,10 +1390,12 @@ else if (volumeInfo.getFormat() == ImageFormat.OVA) {
 
                 verifyCopyCmdAnswer(copyCmdAnswer, templateInfo);
 
+                // Seems like vmware 6.5 and above does not automatically 
remount the datastore after rescanning the storage.
+                // Not sure if this is needed.
                 // If using VMware, have the host rescan its software HBA if 
dynamic discovery is in use.
-                if 
(HypervisorType.VMware.equals(templateInfo.getHypervisorType())) {
-                    disconnectHostFromVolume(hostVO, volumeInfo.getPoolId(), 
volumeInfo.get_iScsiName());
-                }
+                //if 
(HypervisorType.VMware.equals(templateInfo.getHypervisorType())) {
+                //    disconnectHostFromVolume(hostVO, volumeInfo.getPoolId(), 
volumeInfo.get_iScsiName());
+                //}

Review comment:
       As git will keep the history, we can remove the code and move the 
comment from code to commit message.

##########
File path: 
vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/DatastoreMO.java
##########
@@ -309,16 +309,20 @@ public boolean moveDatastoreFile(String srcFilePath, 
ManagedObjectReference morS
     public boolean fileExists(String fileFullPath) throws Exception {
         DatastoreFile file = new DatastoreFile(fileFullPath);
         DatastoreFile dirFile = new DatastoreFile(file.getDatastoreName(), 
file.getDir());
-
-        HostDatastoreBrowserMO browserMo = getHostDatastoreBrowserMO();
-
-        s_logger.info("Search file " + file.getFileName() + " on " + 
dirFile.getPath());
-        HostDatastoreBrowserSearchResults results = 
browserMo.searchDatastore(dirFile.getPath(), file.getFileName(), true);
-        if (results != null) {
-            List<FileInfo> info = results.getFile();
-            if (info != null && info.size() > 0) {
-                s_logger.info("File " + fileFullPath + " exists on datastore");
-                return true;
+        Boolean folderExists = true;
+        if(file.getDir() != ""){
+            folderExists = folderExists(String.format("[%s]", 
file.getDatastoreName()), file.getDir());
+        }
+        if(folderExists){
+            HostDatastoreBrowserMO browserMo = getHostDatastoreBrowserMO();
+            s_logger.info("Search file " + file.getFileName() + " on " + 
dirFile.getPath());
+            HostDatastoreBrowserSearchResults results = 
browserMo.searchDatastore(dirFile.getPath(), file.getFileName(), true);
+            if (results != null) {
+                List<FileInfo> info = results.getFile();
+                if (info != null && info.size() > 0) {

Review comment:
       ```java
   import org.apache.commons.collections.CollectionUtils;
   ```
   
   ```java
               if (CollectionUtils.isNotEmpty(info)) {
   ```

##########
File path: 
vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/DatastoreMO.java
##########
@@ -309,16 +309,20 @@ public boolean moveDatastoreFile(String srcFilePath, 
ManagedObjectReference morS
     public boolean fileExists(String fileFullPath) throws Exception {
         DatastoreFile file = new DatastoreFile(fileFullPath);
         DatastoreFile dirFile = new DatastoreFile(file.getDatastoreName(), 
file.getDir());
-
-        HostDatastoreBrowserMO browserMo = getHostDatastoreBrowserMO();
-
-        s_logger.info("Search file " + file.getFileName() + " on " + 
dirFile.getPath());
-        HostDatastoreBrowserSearchResults results = 
browserMo.searchDatastore(dirFile.getPath(), file.getFileName(), true);
-        if (results != null) {
-            List<FileInfo> info = results.getFile();
-            if (info != null && info.size() > 0) {
-                s_logger.info("File " + fileFullPath + " exists on datastore");
-                return true;
+        Boolean folderExists = true;
+        if(file.getDir() != ""){
+            folderExists = folderExists(String.format("[%s]", 
file.getDatastoreName()), file.getDir());
+        }
+        if(folderExists){

Review comment:
       ```suggestion
           if (folderExists){
   ```

##########
File path: 
plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java
##########
@@ -280,7 +280,8 @@ public ResignatureAnswer resignature(ResignatureCommand 
cmd) {
                 }
             }
 
-            removeVmfsDatastore(cmd, hyperHost, datastoreName, storageHost, 
storagePortNumber, trimIqn(iScsiName), lstHosts);
+            //vmware 6.7 does not automatically mount datastores after 
rescanning once removed
+            //removeVmfsDatastore(cmd, hyperHost, datastoreName, storageHost, 
storagePortNumber, trimIqn(iScsiName), lstHosts);

Review comment:
       As git will keep the history, we can remove the code and move the 
comment from code to commit message.




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to