Skip to content

Commit 40401ed

Browse files
Srivastava, PiyushSrivastava, Piyush
authored andcommitted
test in-memory details for copycommand 1
1 parent 361bb23 commit 40401ed

1 file changed

Lines changed: 15 additions & 4 deletions

File tree

engine/storage/volume/src/main/java/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
4747
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreCapabilities;
4848
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
49+
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
4950
import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
5051
import org.apache.cloudstack.engine.subsystem.api.storage.EndPointSelector;
5152
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
@@ -1317,16 +1318,15 @@ private void createManagedVolumeCopyTemplateAsync(VolumeInfo volumeInfo, Primary
13171318
AsyncCallbackDispatcher<VolumeServiceImpl, CopyCommandResult> caller = AsyncCallbackDispatcher.create(this);
13181319

13191320
caller.setCallback(caller.getTarget().managedCopyBaseImageCallback(null, null)).setContext(context);
1320-
grantAccess(volumeInfo, destHost, primaryDataStore);
1321+
13211322
Map<String, String> details = new HashMap<>();
13221323

13231324
details.put(PrimaryDataStore.MANAGED, Boolean.TRUE.toString());
13241325
details.put(PrimaryDataStore.STORAGE_HOST, primaryDataStore.getHostAddress());
13251326
details.put(PrimaryDataStore.STORAGE_PORT, String.valueOf(primaryDataStore.getPort()));
13261327
// for managed storage, the storage repository (XenServer) or datastore (ESX) name is based off of the iScsiName property of a volume
1327-
// For Netapp ONTAP iscsiName or Lun path is available only after grantAccess
1328-
String managedStoreTarget = ObjectUtils.defaultIfNull(volumeInfo.get_iScsiName(), volumeInfo.getUuid());
1329-
details.put(PrimaryDataStore.MANAGED_STORE_TARGET, managedStoreTarget); details.put(PrimaryDataStore.MANAGED_STORE_TARGET_ROOT_VOLUME, volumeInfo.getName());
1328+
details.put(PrimaryDataStore.MANAGED_STORE_TARGET, volumeInfo.get_iScsiName());
1329+
details.put(PrimaryDataStore.MANAGED_STORE_TARGET_ROOT_VOLUME, volumeInfo.getName());
13301330
details.put(PrimaryDataStore.VOLUME_SIZE, String.valueOf(volumeInfo.getSize()));
13311331
details.put(StorageManager.STORAGE_POOL_DISK_WAIT.toString(), String.valueOf(StorageManager.STORAGE_POOL_DISK_WAIT.valueIn(primaryDataStore.getId())));
13321332

@@ -1340,6 +1340,17 @@ private void createManagedVolumeCopyTemplateAsync(VolumeInfo volumeInfo, Primary
13401340
}
13411341

13421342
primaryDataStore.setDetails(details);
1343+
1344+
grantAccess(volumeInfo, destHost, primaryDataStore);
1345+
1346+
if (DataStoreProvider.ONTAP_PLUGIN_NAME.equals(primaryDataStore.getStorageProviderName())) {
1347+
volumeInfo = volFactory.getVolume(volumeInfo.getId(), primaryDataStore);
1348+
// For Netapp ONTAP iscsiName or Lun path is available only after grantAccess
1349+
String managedStoreTarget = ObjectUtils.defaultIfNull(volumeInfo.get_iScsiName(), volumeInfo.getUuid());
1350+
details.put(PrimaryDataStore.MANAGED_STORE_TARGET, managedStoreTarget);
1351+
primaryDataStore.setDetails(details);
1352+
}
1353+
13431354
try {
13441355
motionSrv.copyAsync(srcTemplateInfo, destTemplateInfo, destHost, caller);
13451356
} finally {

0 commit comments

Comments
 (0)