rafaelweingartner commented on a change in pull request #2636: Fix limitation 
on tag matching in 'migrateVolume' with disk offering replacement
URL: https://github.com/apache/cloudstack/pull/2636#discussion_r187585842
 
 

 ##########
 File path: server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java
 ##########
 @@ -2142,6 +2142,55 @@ protected void 
validateConditionsToReplaceDiskOfferingOfVolume(VolumeVO volume,
         s_logger.info(String.format("Changing disk offering to [uuid=%s] while 
migrating volume [uuid=%s, name=%s].", newDiskOffering.getUuid(), 
volume.getUuid(), volume.getName()));
     }
 
+    /**
+     *  Checks if the target storage supports the new disk offering.
+     *  This validation is consistent with the mechanism used to select a 
storage pool to deploy a volume when a virtual machine is deployed or when a 
new data disk is allocated.
+     *
+     *  The scenarios when this method returns true or false is presented in 
the following table.
+     *
+     *   <table border="1">
+     *      <tr>
+     *          <th>#</th><th>Disk offering tags</th><th>Storage 
tags</th><th>Does the storage support the disk offering?</th>
+     *      </tr>
+     *      <body>
+     *      <tr>
+     *          <td>1</td><td>A,B</td><td>A</td><td>NO</td>
+     *      </tr>
+     *      <tr>
+     *          <td>2</td><td>A,B,C</td><td>A,B,C,D,X</td><td>YES</td>
+     *      </tr>
+     *      <tr>
+     *          <td>3</td><td>A,B,C</td><td>X,Y,Z</td><td>NO</td>
+     *      </tr>
+     *      <tr>
+     *          <td>4</td><td>null</td><td>A,S,D</td><td>YES</td>
+     *      </tr>
+     *      <tr>
+     *          <td>5</td><td>A</td><td>null</td><td>NO</td>
+     *      </tr>
+     *      <tr>
+     *          <td>6</td><td>null</td><td>null</td><td>YES</td>
+     *      </tr>
+     *      </body>
+     *   </table>
+     */
+    protected boolean doesTargetStorageSupportNewDiskOffering(StoragePool 
destPool, DiskOfferingVO newDiskOffering) {
 
 Review comment:
   That is a good point. I normally try to be very descriptive with method 
names. When I see names such as ` isSupported`, even though we see the 
parameters there,  we have no clues what the method is checking. It could be 
that the method is checking if the storage has enough IOPs, or the method has 
enough space, or any other business logic. Maybe, a better name here would be ` 
doesTargetStorageSupportNewDiskOfferingTags`.
   
   Of course, here I have documented the method in detail. However, this should 
not be an excuse not to try to work out a good and descriptive method name.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to