rg9975 commented on code in PR #10132:
URL: https://github.com/apache/cloudstack/pull/10132#discussion_r1937900293
##########
plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java:
##########
@@ -274,6 +274,7 @@ public Answer copyTemplateToPrimaryStorage(final
CopyCommand cmd) {
if
(!storagePoolMgr.connectPhysicalDisk(primaryStore.getPoolType(),
primaryStore.getUuid(), path, details)) {
s_logger.warn("Failed to connect physical disk at path: "
+ path + ", in storage pool id: " + primaryStore.getUuid());
+ return new PrimaryStorageDownloadAnswer("Failed to spool
template disk at path: " + path + ", in storage pool id: " +
primaryStore.getUuid());
Review Comment:
This must be because of a semantic difference in the storage drivers. In
our drivers, the volume is created from the management server on the storage
array before asking the template to be copied to it. This is why the connect
is necessary - the volume has to be made visible on the host where the template
copy is being performed. In Linstor, I presume, the volume is 'born' when the
copyPhysicalDisk is first called correct?
For now, I coded a "compromise" to only fail WHEN its type FiberChannel;
otherwise, it will maintain the previous behavior to log a warning and continue.
More ideal would be some sort of attribute on the storage pool or adapter
class to indicate to the storage processor whether that particular storage pool
type requires a connect before disk copy (in all or certain situations like
template copy), but that would be a more extensive change, and I believe not
necessary to complete the other changes that are part of this PR.
Please confirm if this is workable and you are able to retest.
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]