Return-Path: X-Original-To: apmail-cloudstack-commits-archive@www.apache.org Delivered-To: apmail-cloudstack-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 8464D174E4 for ; Thu, 23 Oct 2014 20:11:47 +0000 (UTC) Received: (qmail 19353 invoked by uid 500); 23 Oct 2014 20:11:46 -0000 Delivered-To: apmail-cloudstack-commits-archive@cloudstack.apache.org Received: (qmail 19195 invoked by uid 500); 23 Oct 2014 20:11:46 -0000 Mailing-List: contact commits-help@cloudstack.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@cloudstack.apache.org Delivered-To: mailing list commits@cloudstack.apache.org Received: (qmail 18975 invoked by uid 99); 23 Oct 2014 20:11:46 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 23 Oct 2014 20:11:46 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id B51881F5DB; Thu, 23 Oct 2014 20:11:45 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: dahn@apache.org To: commits@cloudstack.apache.org Date: Thu, 23 Oct 2014 20:11:51 -0000 Message-Id: <1c7266e5c5f64a1186946ae632bcf4f3@git.apache.org> In-Reply-To: <3dff0203478a447fabb1d8e715b750aa@git.apache.org> References: <3dff0203478a447fabb1d8e715b750aa@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [07/23] git commit: updated refs/heads/hotfix/CLOUDSTACK-7776 to 9e89a28 Changed "boolean connectVolumeToHost(VolumeInfo, Host, DataStore)" to "boolean grantAccess(DataObject, Host, DataStore)" Changed "void disconnectVolumeFromHost(VolumeInfo, Host, DataStore)" to "void revokeAccess(DataObject, Host, DataStore)" Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/57dacf99 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/57dacf99 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/57dacf99 Branch: refs/heads/hotfix/CLOUDSTACK-7776 Commit: 57dacf99a2561b4bbd43041548aefc83c2e88ef5 Parents: b29265f Author: Mike Tutkowski Authored: Sun Oct 19 22:02:04 2014 -0600 Committer: Mike Tutkowski Committed: Tue Oct 21 16:01:14 2014 -0600 ---------------------------------------------------------------------- .../service/VolumeOrchestrationService.java | 5 +++-- .../subsystem/api/storage/PrimaryDataStoreDriver.java | 4 ++-- .../engine/subsystem/api/storage/VolumeService.java | 4 ++-- .../src/com/cloud/vm/VirtualMachineManagerImpl.java | 2 +- .../engine/orchestration/VolumeOrchestrator.java | 13 ++++++++----- .../storage/test/FakePrimaryDataStoreDriver.java | 4 ++-- .../snapshot/StorageSystemSnapshotStrategy.java | 12 ++++++------ .../cloudstack/storage/volume/VolumeServiceImpl.java | 12 ++++++------ .../driver/ElastistorPrimaryDataStoreDriver.java | 4 ++-- .../driver/CloudStackPrimaryDataStoreDriverImpl.java | 4 ++-- .../driver/NexentaPrimaryDataStoreDriver.java | 4 ++-- .../driver/SamplePrimaryDataStoreDriverImpl.java | 4 ++-- .../driver/SolidFirePrimaryDataStoreDriver.java | 8 ++++++-- server/src/com/cloud/storage/VolumeApiServiceImpl.java | 10 +++++----- server/src/com/cloud/vm/UserVmManagerImpl.java | 2 +- 15 files changed, 50 insertions(+), 42 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/engine/api/src/org/apache/cloudstack/engine/orchestration/service/VolumeOrchestrationService.java ---------------------------------------------------------------------- diff --git a/engine/api/src/org/apache/cloudstack/engine/orchestration/service/VolumeOrchestrationService.java b/engine/api/src/org/apache/cloudstack/engine/orchestration/service/VolumeOrchestrationService.java index df0b5e8..281de92 100644 --- a/engine/api/src/org/apache/cloudstack/engine/orchestration/service/VolumeOrchestrationService.java +++ b/engine/api/src/org/apache/cloudstack/engine/orchestration/service/VolumeOrchestrationService.java @@ -21,6 +21,7 @@ package org.apache.cloudstack.engine.orchestration.service; import java.util.Map; import java.util.Set; +import org.apache.cloudstack.engine.subsystem.api.storage.DataObject; import org.apache.cloudstack.engine.subsystem.api.storage.DataStore; import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo; @@ -95,9 +96,9 @@ public interface VolumeOrchestrationService { void cleanupVolumes(long vmId) throws ConcurrentOperationException; - void disconnectVolumeFromHost(VolumeInfo volumeInfo, Host host, DataStore dataStore); + void revokeAccess(DataObject dataObject, Host host, DataStore dataStore); - void disconnectVolumesFromHost(long vmId, long hostId); + void revokeAccess(long vmId, long hostId); void migrateVolumes(VirtualMachine vm, VirtualMachineTO vmTo, Host srcHost, Host destHost, Map volumeToPool); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/PrimaryDataStoreDriver.java ---------------------------------------------------------------------- diff --git a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/PrimaryDataStoreDriver.java b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/PrimaryDataStoreDriver.java index 43d7d5a..ebaa260 100644 --- a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/PrimaryDataStoreDriver.java +++ b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/PrimaryDataStoreDriver.java @@ -28,9 +28,9 @@ import com.cloud.storage.Volume; public interface PrimaryDataStoreDriver extends DataStoreDriver { public ChapInfo getChapInfo(VolumeInfo volumeInfo); - public boolean connectVolumeToHost(VolumeInfo volumeInfo, Host host, DataStore dataStore); + public boolean grantAccess(DataObject dataObject, Host host, DataStore dataStore); - public void disconnectVolumeFromHost(VolumeInfo volumeInfo, Host host, DataStore dataStore); + public void revokeAccess(DataObject dataObject, Host host, DataStore dataStore); // intended for managed storage (cloud.storage_pool.managed = true) // if not managed, return volume.getSize() http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeService.java ---------------------------------------------------------------------- diff --git a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeService.java b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeService.java index cadce56..171e9df 100644 --- a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeService.java +++ b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/VolumeService.java @@ -44,9 +44,9 @@ public interface VolumeService { ChapInfo getChapInfo(VolumeInfo volumeInfo, DataStore dataStore); - boolean connectVolumeToHost(VolumeInfo volumeInfo, Host host, DataStore dataStore); + boolean grantAccess(DataObject dataObject, Host host, DataStore dataStore); - void disconnectVolumeFromHost(VolumeInfo volumeInfo, Host host, DataStore dataStore); + void revokeAccess(DataObject dataObject, Host host, DataStore dataStore); /** * Creates the volume based on the given criteria http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java ---------------------------------------------------------------------- diff --git a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java index de2fd28..b73d129 100755 --- a/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java +++ b/engine/orchestration/src/com/cloud/vm/VirtualMachineManagerImpl.java @@ -517,7 +517,7 @@ public class VirtualMachineManagerImpl extends ManagerBase implements VirtualMac } if (hostId != null) { - volumeMgr.disconnectVolumesFromHost(vm.getId(), hostId); + volumeMgr.revokeAccess(vm.getId(), hostId); } // Clean up volumes based on the vm's instance id http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java ---------------------------------------------------------------------- diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java index 262b94d..4b40d5a 100644 --- a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java +++ b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java @@ -34,6 +34,7 @@ import org.apache.log4j.Logger; import org.apache.cloudstack.engine.orchestration.service.VolumeOrchestrationService; import org.apache.cloudstack.engine.subsystem.api.storage.ChapInfo; +import org.apache.cloudstack.engine.subsystem.api.storage.DataObject; import org.apache.cloudstack.engine.subsystem.api.storage.DataStore; import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver; import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; @@ -871,16 +872,16 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati } @Override - public void disconnectVolumeFromHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) { + public void revokeAccess(DataObject dataObject, Host host, DataStore dataStore) { DataStoreDriver dataStoreDriver = dataStore != null ? dataStore.getDriver() : null; if (dataStoreDriver instanceof PrimaryDataStoreDriver) { - ((PrimaryDataStoreDriver)dataStoreDriver).disconnectVolumeFromHost(volumeInfo, host, dataStore); + ((PrimaryDataStoreDriver)dataStoreDriver).revokeAccess(dataObject, host, dataStore); } } @Override - public void disconnectVolumesFromHost(long vmId, long hostId) { + public void revokeAccess(long vmId, long hostId) { HostVO host = _hostDao.findById(hostId); List volumesForVm = _volsDao.findByInstance(vmId); @@ -888,10 +889,12 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati if (volumesForVm != null) { for (VolumeVO volumeForVm : volumesForVm) { VolumeInfo volumeInfo = volFactory.getVolume(volumeForVm.getId()); + // pool id can be null for the VM's volumes in Allocated state if (volumeForVm.getPoolId() != null) { DataStore dataStore = dataStoreMgr.getDataStore(volumeForVm.getPoolId(), DataStoreRole.Primary); - volService.disconnectVolumeFromHost(volumeInfo, host, dataStore); + + volService.revokeAccess(volumeInfo, host, dataStore); } } } @@ -1246,7 +1249,7 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati long hostId = vm.getVirtualMachine().getHostId(); Host host = _hostDao.findById(hostId); - volService.connectVolumeToHost(volFactory.getVolume(newVol.getId()), host, destPool); + volService.grantAccess(volFactory.getVolume(newVol.getId()), host, destPool); } newVol = _volsDao.findById(newVol.getId()); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/FakePrimaryDataStoreDriver.java ---------------------------------------------------------------------- diff --git a/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/FakePrimaryDataStoreDriver.java b/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/FakePrimaryDataStoreDriver.java index 7d9cd72..18637b0 100644 --- a/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/FakePrimaryDataStoreDriver.java +++ b/engine/storage/integration-test/test/org/apache/cloudstack/storage/test/FakePrimaryDataStoreDriver.java @@ -49,10 +49,10 @@ public class FakePrimaryDataStoreDriver implements PrimaryDataStoreDriver { } @Override - public boolean connectVolumeToHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) { return false; } + public boolean grantAccess(DataObject dataObject, Host host, DataStore dataStore) { return false; } @Override - public void disconnectVolumeFromHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) {} + public void revokeAccess(DataObject dataObject, Host host, DataStore dataStore) {} @Override public long getUsedBytes(StoragePool storagePool) { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java ---------------------------------------------------------------------- diff --git a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java index 09c5d5f..c895459 100644 --- a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java +++ b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/StorageSystemSnapshotStrategy.java @@ -221,19 +221,19 @@ public class StorageSystemSnapshotStrategy extends SnapshotStrategyBase { try { // if sourceDetails != null, we need to connect the host(s) to the volume if (sourceDetails != null) { - _volService.connectVolumeToHost(volumeInfo, hostVO, dataStore); + _volService.grantAccess(volumeInfo, hostVO, dataStore); } VolumeVO volume = _volumeDao.findById(volumeInfo.getId()); - // the Folder field is used by connectVolumeToHost(VolumeInfo, Host, DataStore) when that method + // the Folder field is used by grantAccess(VolumeInfo, Host, DataStore) when that method // connects the host(s) to the volume // this Folder change is NOT to be written to the DB; it is only temporarily used here so that // the connect method can be passed in the expected data and do its work (on the volume that backs // the snapshot) volume.setFolder(destDetails.get(DiskTO.VOLUME_ID)); - _volService.connectVolumeToHost(volumeInfo, hostVO, dataStore); + _volService.grantAccess(volumeInfo, hostVO, dataStore); snapshotAndCopyAnswer = (SnapshotAndCopyAnswer)_agentMgr.send(hostVO.getId(), snapshotAndCopyCommand); } @@ -244,18 +244,18 @@ public class StorageSystemSnapshotStrategy extends SnapshotStrategyBase { try { VolumeVO volume = _volumeDao.findById(volumeInfo.getId()); - // the Folder field is used by disconnectVolumeFromHost(VolumeInfo, Host, DataStore) when that method + // the Folder field is used by revokeAccess(VolumeInfo, Host, DataStore) when that method // disconnects the host(s) from the volume // this Folder change is NOT to be written to the DB; it is only temporarily used here so that // the disconnect method can be passed in the expected data and do its work (on the volume that backs // the snapshot) volume.setFolder(destDetails.get(DiskTO.VOLUME_ID)); - _volService.disconnectVolumeFromHost(volumeInfo, hostVO, dataStore); + _volService.revokeAccess(volumeInfo, hostVO, dataStore); // if sourceDetails != null, we need to disconnect the host(s) from the volume if (sourceDetails != null) { - _volService.disconnectVolumeFromHost(volumeInfo, hostVO, dataStore); + _volService.revokeAccess(volumeInfo, hostVO, dataStore); } } catch (Exception ex) { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java ---------------------------------------------------------------------- diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java index d97ad60..9174d89 100644 --- a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java +++ b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java @@ -167,22 +167,22 @@ public class VolumeServiceImpl implements VolumeService { } @Override - public boolean connectVolumeToHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) { + public boolean grantAccess(DataObject dataObject, Host host, DataStore dataStore) { DataStoreDriver dataStoreDriver = dataStore != null ? dataStore.getDriver() : null; if (dataStoreDriver instanceof PrimaryDataStoreDriver) { - return ((PrimaryDataStoreDriver)dataStoreDriver).connectVolumeToHost(volumeInfo, host, dataStore); + return ((PrimaryDataStoreDriver)dataStoreDriver).grantAccess(dataObject, host, dataStore); } return false; } @Override - public void disconnectVolumeFromHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) { + public void revokeAccess(DataObject dataObject, Host host, DataStore dataStore) { DataStoreDriver dataStoreDriver = dataStore != null ? dataStore.getDriver() : null; if (dataStoreDriver instanceof PrimaryDataStoreDriver) { - ((PrimaryDataStoreDriver)dataStoreDriver).disconnectVolumeFromHost(volumeInfo, host, dataStore); + ((PrimaryDataStoreDriver)dataStoreDriver).revokeAccess(dataObject, host, dataStore); } } @@ -677,7 +677,7 @@ public class VolumeServiceImpl implements VolumeService { // refresh the volume from the DB volumeInfo = volFactory.getVolume(volumeInfo.getId(), destPrimaryDataStore); - connectVolumeToHost(volumeInfo, destHost, destPrimaryDataStore); + grantAccess(volumeInfo, destHost, destPrimaryDataStore); ManagedCreateBaseImageContext context = new ManagedCreateBaseImageContext(null, volumeInfo, destPrimaryDataStore, srcTemplateInfo, future); @@ -712,7 +712,7 @@ public class VolumeServiceImpl implements VolumeService { volumeInfo.processEvent(Event.DestroyRequested); - disconnectVolumeFromHost(volumeInfo, destHost, destPrimaryDataStore); + revokeAccess(volumeInfo, destHost, destPrimaryDataStore); try { AsyncCallFuture expungeVolumeFuture = expungeVolumeAsync(volumeInfo); http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java ---------------------------------------------------------------------- diff --git a/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java b/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java index 20c9289..23db12d 100755 --- a/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java +++ b/plugins/storage/volume/cloudbyte/src/org/apache/cloudstack/storage/datastore/driver/ElastistorPrimaryDataStoreDriver.java @@ -401,13 +401,13 @@ public class ElastistorPrimaryDataStoreDriver extends CloudStackPrimaryDataStore } @Override - public boolean connectVolumeToHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) { + public boolean grantAccess(DataObject dataObject, Host host, DataStore dataStore) { // TODO Auto-generated method stub return false; } @Override - public void disconnectVolumeFromHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) { + public void revokeAccess(DataObject dataObject, Host host, DataStore dataStore) { // TODO Auto-generated method stub } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java ---------------------------------------------------------------------- diff --git a/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java index bcc06b0..9421102 100644 --- a/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java +++ b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/driver/CloudStackPrimaryDataStoreDriverImpl.java @@ -149,12 +149,12 @@ public class CloudStackPrimaryDataStoreDriverImpl implements PrimaryDataStoreDri } @Override - public boolean connectVolumeToHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) { + public boolean grantAccess(DataObject dataObject, Host host, DataStore dataStore) { return false; } @Override - public void disconnectVolumeFromHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) { + public void revokeAccess(DataObject dataObject, Host host, DataStore dataStore) { } @Override http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/plugins/storage/volume/nexenta/src/org/apache/cloudstack/storage/datastore/driver/NexentaPrimaryDataStoreDriver.java ---------------------------------------------------------------------- diff --git a/plugins/storage/volume/nexenta/src/org/apache/cloudstack/storage/datastore/driver/NexentaPrimaryDataStoreDriver.java b/plugins/storage/volume/nexenta/src/org/apache/cloudstack/storage/datastore/driver/NexentaPrimaryDataStoreDriver.java index aff50e5..bae54f1 100644 --- a/plugins/storage/volume/nexenta/src/org/apache/cloudstack/storage/datastore/driver/NexentaPrimaryDataStoreDriver.java +++ b/plugins/storage/volume/nexenta/src/org/apache/cloudstack/storage/datastore/driver/NexentaPrimaryDataStoreDriver.java @@ -58,12 +58,12 @@ public class NexentaPrimaryDataStoreDriver implements PrimaryDataStoreDriver { private static final Logger logger = Logger.getLogger(NexentaPrimaryDataStoreDriver.class); @Override - public boolean connectVolumeToHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) { + public boolean grantAccess(DataObject dataObject, Host host, DataStore dataStore) { return false; //To change body of implemented methods use File | Settings | File Templates. } @Override - public void disconnectVolumeFromHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) { + public void revokeAccess(DataObject dataObject, Host host, DataStore dataStore) { //To change body of implemented methods use File | Settings | File Templates. } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java ---------------------------------------------------------------------- diff --git a/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java b/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java index 4ade467..6ff62e9 100644 --- a/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java +++ b/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java @@ -82,10 +82,10 @@ public class SamplePrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver } @Override - public boolean connectVolumeToHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) { return false; } + public boolean grantAccess(DataObject dataObject, Host host, DataStore dataStore) { return false; } @Override - public void disconnectVolumeFromHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) {} + public void revokeAccess(DataObject dataObject, Host host, DataStore dataStore) {} @Override public long getUsedBytes(StoragePool storagePool) { http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidFirePrimaryDataStoreDriver.java ---------------------------------------------------------------------- diff --git a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidFirePrimaryDataStoreDriver.java b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidFirePrimaryDataStoreDriver.java index 94c9595..00fd761 100644 --- a/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidFirePrimaryDataStoreDriver.java +++ b/plugins/storage/volume/solidfire/src/org/apache/cloudstack/storage/datastore/driver/SolidFirePrimaryDataStoreDriver.java @@ -126,8 +126,10 @@ public class SolidFirePrimaryDataStoreDriver implements PrimaryDataStoreDriver { // if the ID of volumeInfo in not in the VAG, add it (ModifyVolumeAccessGroup) // if the VAG doesn't exist, create it with the IQNs of the hosts and the ID of volumeInfo (CreateVolumeAccessGroup) @Override - public synchronized boolean connectVolumeToHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) + public synchronized boolean grantAccess(DataObject dataObject, Host host, DataStore dataStore) { + VolumeInfo volumeInfo = (VolumeInfo)dataObject; + if (volumeInfo == null || host == null || dataStore == null) { return false; } @@ -169,8 +171,10 @@ public class SolidFirePrimaryDataStoreDriver implements PrimaryDataStoreDriver { // if the VAG exists // remove the ID of volumeInfo from the VAG (ModifyVolumeAccessGroup) @Override - public synchronized void disconnectVolumeFromHost(VolumeInfo volumeInfo, Host host, DataStore dataStore) + public synchronized void revokeAccess(DataObject dataObject, Host host, DataStore dataStore) { + VolumeInfo volumeInfo = (VolumeInfo)dataObject; + if (volumeInfo == null || host == null || dataStore == null) { return; } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/server/src/com/cloud/storage/VolumeApiServiceImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/storage/VolumeApiServiceImpl.java b/server/src/com/cloud/storage/VolumeApiServiceImpl.java index e089b77..b70d753 100644 --- a/server/src/com/cloud/storage/VolumeApiServiceImpl.java +++ b/server/src/com/cloud/storage/VolumeApiServiceImpl.java @@ -1654,7 +1654,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic // volume.getPoolId() should be null if the VM we are detaching the disk from has never been started before DataStore dataStore = volume.getPoolId() != null ? dataStoreMgr.getDataStore(volume.getPoolId(), DataStoreRole.Primary) : null; - volService.disconnectVolumeFromHost(volFactory.getVolume(volume.getId()), host, dataStore); + volService.revokeAccess(volFactory.getVolume(volume.getId()), host, dataStore); return _volsDao.findById(volumeId); } else { @@ -2163,10 +2163,10 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic // if we don't have a host, the VM we are attaching the disk to has never been started before if (host != null) { try { - volService.connectVolumeToHost(volFactory.getVolume(volumeToAttach.getId()), host, dataStore); + volService.grantAccess(volFactory.getVolume(volumeToAttach.getId()), host, dataStore); } catch (Exception e) { - volService.disconnectVolumeFromHost(volFactory.getVolume(volumeToAttach.getId()), host, dataStore); + volService.revokeAccess(volFactory.getVolume(volumeToAttach.getId()), host, dataStore); throw new CloudRuntimeException(e.getMessage()); } @@ -2211,7 +2211,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic answer = (AttachAnswer)_agentMgr.send(hostId, cmd); } catch (Exception e) { if(host!=null) { - volService.disconnectVolumeFromHost(volFactory.getVolume(volumeToAttach.getId()), host, dataStore); + volService.revokeAccess(volFactory.getVolume(volumeToAttach.getId()), host, dataStore); } throw new CloudRuntimeException(errorMsg + " due to: " + e.getMessage()); } @@ -2250,7 +2250,7 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic } } if(host!= null) { - volService.disconnectVolumeFromHost(volFactory.getVolume(volumeToAttach.getId()), host, dataStore); + volService.revokeAccess(volFactory.getVolume(volumeToAttach.getId()), host, dataStore); } throw new CloudRuntimeException(errorMsg); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57dacf99/server/src/com/cloud/vm/UserVmManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index 2636096..fe7c32b 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -4905,7 +4905,7 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir // root.getPoolId() should be null if the VM we are detaching the disk from has never been started before DataStore dataStore = root.getPoolId() != null ? _dataStoreMgr.getDataStore(root.getPoolId(), DataStoreRole.Primary) : null; - volumeMgr.disconnectVolumeFromHost(volFactory.getVolume(root.getId()), host, dataStore); + volumeMgr.revokeAccess(volFactory.getVolume(root.getId()), host, dataStore); } } }