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: commits-unsubscr...@cloudstack.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org