You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ed...@apache.org on 2012/11/21 04:01:18 UTC
[1/8] git commit: starting unit test
Updated Branches:
refs/heads/javelin d62da2a7b -> 550f4fbcd
starting unit test
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/573d13dd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/573d13dd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/573d13dd
Branch: refs/heads/javelin
Commit: 573d13dd7c9d0baa1655fda1e1a8e49d702288c4
Parents: d62da2a
Author: Edison Su <su...@gmail.com>
Authored: Mon Nov 19 17:59:50 2012 -0800
Committer: Edison Su <su...@gmail.com>
Committed: Tue Nov 20 18:57:19 2012 -0800
----------------------------------------------------------------------
engine/components-api/PrimaryDataStore.java | 34 -
.../org/apache/cloudstack/storage/BaseType.java | 36 +-
.../cloudstack/storage/HypervisorHostEndPoint.java | 45 +-
.../storage/StorageOrchestratorImpl.java | 553 +++++-----
.../cloudstack/storage/StorageProviderManager.java | 11 +-
.../storage/StorageProviderManagerImpl.java | 81 +-
.../apache/cloudstack/storage/VolumeBackupRef.java | 38 +-
.../storage/backup/BackupMotionService.java | 2 +-
.../cloudstack/storage/backup/BackupService.java | 5 +-
.../command/CopyTemplateToPrimaryStorage.java | 32 +-
.../storage/command/CreateVolumeAnswer.java | 25 +-
.../storage/command/CreateVolumeCommand.java | 31 +-
.../command/CreateVolumeFromBaseImageCommand.java | 24 +-
.../storage/datastore/DataStoreStatus.java | 8 +-
.../storage/datastore/DefaultDataStore.java | 411 ++++----
.../datastore/DefaultPrimaryDataStoreImpl.java | 281 +++---
.../storage/datastore/PrimaryDataStore.java | 38 +-
.../datastore/PrimaryDataStoreInfoImpl.java | 89 +-
.../storage/datastore/db/DataStoreVO.java | 259 ++--
.../storage/datastore/db/PrimaryDataStoreDao.java | 94 +-
.../datastore/db/PrimaryDataStoreDaoImpl.java | 447 ++++----
.../datastore/db/PrimaryDataStoreDetailVO.java | 79 ++
.../datastore/db/PrimaryDataStoreDetailsDao.java | 28 +
.../db/PrimaryDataStoreDetailsDaoImpl.java | 71 ++
.../datastore/db/PrimaryDataStoreProviderDao.java | 2 +-
.../db/PrimaryDataStoreProviderDaoImpl.java | 2 +-
.../datastore/db/PrimaryDataStoreProviderVO.java | 12 +-
.../driver/DefaultPrimaryDataStoreDriverImpl.java | 169 ++--
.../datastore/driver/PrimaryDataStoreDriver.java | 15 +-
.../DefaultPrimaryDataStoreLifeCycleImpl.java | 70 +-
.../lifecycle/PrimaryDataStoreLifeCycle.java | 20 +-
.../DefaultPrimaryDataStoreManagerImpl.java | 39 +-
.../datastore/manager/PrimaryDataStoreManager.java | 5 +-
.../DefaultPrimaryDatastoreProviderImpl.java | 54 +-
.../provider/PrimaryDataStoreProvider.java | 7 +-
.../provider/PrimaryDataStoreProviderManager.java | 3 +-
.../PrimaryDataStoreProviderManagerImpl.java | 10 +-
.../cloudstack/storage/datastore/type/ISCSI.java | 11 +-
.../storage/datastore/type/NetworkFileSystem.java | 11 +-
.../storage/datastore/type/SharedMount.java | 11 +-
.../storage/driver/AbstractStorageDriver.java | 79 +-
.../storage/driver/DefaultNfsSecondaryDriver.java | 94 +-
.../storage/driver/XenServerStorageDriver.java | 86 +-
.../cloudstack/storage/image/ImageManager.java | 10 +-
.../cloudstack/storage/image/ImageManagerImpl.java | 206 ++--
.../storage/image/ImageOrchestrator.java | 11 +-
.../storage/image/ImageOrchestratorImpl.java | 76 +-
.../cloudstack/storage/image/ImageService.java | 27 +-
.../cloudstack/storage/image/ImageServiceImpl.java | 105 +-
.../storage/image/TemplateEntityImpl.java | 12 +-
.../cloudstack/storage/image/TemplateInfo.java | 12 +-
.../cloudstack/storage/image/TemplateObject.java | 54 +-
.../storage/image/db/ImageDaoStoreDaoImpl.java | 1 +
.../cloudstack/storage/image/db/ImageDataDao.java | 70 +-
.../storage/image/db/ImageDataDaoImpl.java | 953 ++++++++-------
.../image/db/ImageDataStoreProviderDao.java | 1 -
.../storage/image/db/ImageDataStoreProviderVO.java | 22 +-
.../storage/image/db/ImageDataStoreVO.java | 34 +-
.../cloudstack/storage/image/db/ImageDataVO.java | 150 ++--
.../storage/image/downloader/ImageDownloader.java | 2 +-
.../storage/image/driver/ImageDataStoreDriver.java | 11 +-
.../image/driver/ImageDataStoreDriverImpl.java | 55 +-
.../cloudstack/storage/image/format/BAREMETAL.java | 11 +-
.../cloudstack/storage/image/format/ISO.java | 11 +-
.../storage/image/format/ImageFormatHelper.java | 31 +-
.../cloudstack/storage/image/format/OVA.java | 11 +-
.../cloudstack/storage/image/format/QCOW2.java | 11 +-
.../cloudstack/storage/image/format/Unknown.java | 12 +-
.../cloudstack/storage/image/format/VHD.java | 13 +-
.../image/manager/ImageDataStoreManager.java | 2 +-
.../image/manager/ImageDataStoreManagerImpl.java | 21 +-
.../image/motion/DefaultImageMotionStrategy.java | 36 +-
.../storage/image/motion/ImageMotionService.java | 5 +-
.../image/motion/ImageMotionServiceImpl.java | 67 +-
.../storage/image/motion/ImageMotionStrategy.java | 8 +-
.../provider/DefaultImageDataStoreProvider.java | 40 +-
.../image/provider/ImageDataStoreProvider.java | 5 +-
.../provider/ImageDataStoreProviderManager.java | 13 +-
.../ImageDataStoreProviderManagerImpl.java | 131 ++-
.../storage/image/store/ImageDataStore.java | 21 +-
.../storage/image/store/ImageDataStoreImpl.java | 125 +-
.../storage/image/store/ImageDataStoreInfo.java | 2 +-
.../lifecycle/DefaultNfsSecondaryLifeCycle.java | 40 +-
.../DefaultPrimaryDataStoreLifeCycle.java | 186 ++--
.../storage/manager/BackupStorageManager.java | 22 +-
.../storage/manager/BackupStorageManagerImpl.java | 56 +-
.../storage/manager/PrimaryDataStoreManager.java | 25 +-
.../manager/PrimaryDataStoreManagerImpl.java | 150 ++--
.../storage/manager/SecondaryStorageManager.java | 11 +-
.../manager/SecondaryStorageManagerImpl.java | 48 +-
.../DefaultNfsSecondaryStorageProvider.java | 173 ++--
.../provider/DefaultPrimaryStorageProvider.java | 215 ++--
.../storage/provider/HttpImageStoreProvider.java | 108 +-
.../provider/S3SecondaryStorageProvider.java | 108 +-
.../provider/SwiftSecondaryStorageProvider.java | 108 +-
.../storage/snapshot/SnapshotService.java | 5 +-
.../storage/strategy/DefaultTemplateStratey.java | 258 ++--
.../storage/strategy/DefaultVolumeStrategy.java | 130 +-
.../storage/strategy/XenBackupStrategy.java | 9 +-
.../storage/strategy/XenSnapshotStrategy.java | 9 +-
.../cloudstack/storage/to/ImageDataStoreTO.java | 6 +-
.../storage/to/ImageOnPrimayDataStoreTO.java | 6 +-
.../cloudstack/storage/to/PrimaryDataStoreTO.java | 6 +-
.../apache/cloudstack/storage/to/TemplateTO.java | 6 +-
.../org/apache/cloudstack/storage/to/VolumeTO.java | 6 +-
.../volume/TemplateOnPrimaryDataStoreInfo.java | 11 +-
.../volume/TemplateOnPrimaryDataStoreObject.java | 66 +-
.../volume/TemplatePrimaryDataStoreManager.java | 5 +-
.../TemplatePrimaryDataStoreManagerImpl.java | 44 +-
.../storage/volume/VolumeEntityImpl.java | 6 +
.../cloudstack/storage/volume/VolumeEvent.java | 13 +-
.../cloudstack/storage/volume/VolumeManager.java | 14 +-
.../storage/volume/VolumeManagerImpl.java | 63 +-
.../storage/volume/VolumeMotionService.java | 2 +-
.../cloudstack/storage/volume/VolumeObject.java | 217 ++--
.../cloudstack/storage/volume/VolumeService.java | 23 +-
.../storage/volume/VolumeServiceImpl.java | 274 +++---
.../volume/db/TemplatePrimaryDataStoreVO.java | 289 +++---
.../cloudstack/storage/volume/db/VolumeDao.java | 54 +-
.../storage/volume/db/VolumeDaoImpl.java | 367 +++---
.../cloudstack/storage/volume/db/VolumeVO.java | 761 ++++++------
.../cloudstack/storage/test/storageContext.xml | 67 -
.../cloudstack/storage/test/volumeServiceTest.java | 51 +-
engine/storage/test/resource/storageContext.xml | 67 +
.../src/com/cloud/storage/dao/VolumeDaoImpl.java | 1 -
125 files changed, 5097 insertions(+), 4799 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/components-api/PrimaryDataStore.java
----------------------------------------------------------------------
diff --git a/engine/components-api/PrimaryDataStore.java b/engine/components-api/PrimaryDataStore.java
deleted file mode 100644
index 87aee25..0000000
--- a/engine/components-api/PrimaryDataStore.java
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cloudstack.engine.subsystem.api.storage;
-
-import java.util.List;
-
-import org.apache.cloudstack.engine.cloud.entity.api.VolumeEntity;
-import org.apache.cloudstack.engine.subsystem.api.storage.disktype.VolumeDiskType;
-
-
-public interface PrimaryDataStore {
- VolumeEntity getVolume(String id);
- List<VolumeEntity> getVolumes();
- boolean deleteVolume(VolumeEntity id);
- VolumeEntity createVolume(String id, VolumeDiskType diskType);
- List<EndPoint> getEndPoints();
- PrimaryDataStoreInfo getDataStoreInfo();
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/BaseType.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/BaseType.java b/engine/storage/src/org/apache/cloudstack/storage/BaseType.java
index 12acc7d..a5b45e1 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/BaseType.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/BaseType.java
@@ -19,22 +19,22 @@
package org.apache.cloudstack.storage;
public abstract class BaseType {
- public boolean equals(Object that) {
- if (this == that) {
- return true;
- }
- if (that instanceof String) {
- if (this.toString().equalsIgnoreCase((String)that)) {
- return true;
- }
- } else if (that instanceof BaseType) {
- BaseType th = (BaseType)that;
- if (this.toString().equalsIgnoreCase(th.toString())) {
- return true;
- }
- } else {
- return false;
- }
- return false;
- }
+ public boolean equals(Object that) {
+ if (this == that) {
+ return true;
+ }
+ if (that instanceof String) {
+ if (this.toString().equalsIgnoreCase((String) that)) {
+ return true;
+ }
+ } else if (that instanceof BaseType) {
+ BaseType th = (BaseType) that;
+ if (this.toString().equalsIgnoreCase(th.toString())) {
+ return true;
+ }
+ } else {
+ return false;
+ }
+ return false;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/HypervisorHostEndPoint.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/HypervisorHostEndPoint.java b/engine/storage/src/org/apache/cloudstack/storage/HypervisorHostEndPoint.java
index a47946a..a7c1041 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/HypervisorHostEndPoint.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/HypervisorHostEndPoint.java
@@ -30,27 +30,28 @@ import com.cloud.exception.AgentUnavailableException;
import com.cloud.exception.OperationTimedoutException;
public class HypervisorHostEndPoint implements EndPoint {
- private static final Logger s_logger = Logger.getLogger(HypervisorHostEndPoint.class);
- private long hostId;
- @Inject
- AgentManager agentMgr;
- public HypervisorHostEndPoint(long hostId) {
- this.hostId = hostId;
- }
-
- @Override
- public Answer sendMessage(Command cmd) {
- Answer answer = null;
- try {
- answer = agentMgr.send(hostId, cmd);
- } catch (AgentUnavailableException e) {
- s_logger.debug("Unable to send command:" + cmd + ", due to: " + e.toString());
- } catch (OperationTimedoutException e) {
- s_logger.debug("Unable to send command:" + cmd + ", due to: " + e.toString());
- } catch (Exception e) {
- s_logger.debug("Unable to send command:" + cmd + ", due to: " + e.toString());
- }
- return answer;
- }
+ private static final Logger s_logger = Logger.getLogger(HypervisorHostEndPoint.class);
+ private long hostId;
+ @Inject
+ AgentManager agentMgr;
+
+ public HypervisorHostEndPoint(long hostId) {
+ this.hostId = hostId;
+ }
+
+ @Override
+ public Answer sendMessage(Command cmd) {
+ Answer answer = null;
+ try {
+ answer = agentMgr.send(hostId, cmd);
+ } catch (AgentUnavailableException e) {
+ s_logger.debug("Unable to send command:" + cmd + ", due to: " + e.toString());
+ } catch (OperationTimedoutException e) {
+ s_logger.debug("Unable to send command:" + cmd + ", due to: " + e.toString());
+ } catch (Exception e) {
+ s_logger.debug("Unable to send command:" + cmd + ", due to: " + e.toString());
+ }
+ return answer;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java b/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
index 18e9429..efc9b70 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/StorageOrchestratorImpl.java
@@ -72,295 +72,290 @@ import com.cloud.vm.VirtualMachine;
import com.cloud.vm.dao.VMInstanceDao;
public class StorageOrchestratorImpl implements StorageOrchestrator {
- private static final Logger s_logger = Logger.getLogger(StorageOrchestratorImpl.class);
- @Inject
- StoragePoolDao _storagePoolDao;
- @Inject
- StorageProviderManager _spManager;
- @Inject
- VolumeDao _volumeDao;
- @Inject
- VMInstanceDao _vmDao;
- @Inject
- DiskOfferingDao _diskOfferingDao;
- @Inject
- VolumeHostDao _volumeHostDao;
- @Inject
- StorageProviderManager _storageProviderMgr;
- @Inject
- VolumeManager _volumeMgr;
- @Inject
- SecondaryStorageManager _secondaryStorageMgr;
- @Inject
- ImageManager _templateMgr;
- @Inject
- VMTemplateDao _templateDao;
- @Inject
- VolumeService volumeService;
- @Inject
- ImageMotionService imageMotionService;
- @Inject
- ImageService imageService;
- @Inject
- PrimaryDataStoreManager primaryStorageMgr;
-
- @DB
- protected Volume copyVolumeFromBackupStorage(VolumeVO volume, DataStore destStore, String reservationId) throws NoTransitionException {
- DataStore ds = _secondaryStorageMgr.getStore(volume);
- if (!ds.contains(volume)) {
- throw new CloudRuntimeException("volume: " + volume + "doesn't exist on backup storage");
- }
-
- VolumeProfile vp = ds.prepareVolume(volume, destStore);
-
- VolumeStrategy vs = destStore.getVolumeStrategy();
-
- Transaction txn = Transaction.currentTxn();
- volume.setReservationId(reservationId);
- _volumeMgr.processEvent(volume, Volume.Event.CopyRequested);
- VolumeVO destVolume = _volumeMgr.allocateDuplicateVolume(volume);
- destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.CreateRequested);
- txn.commit();
-
- vs.copyVolumeFromBackup(vp, destVolume);
-
- txn.start();
- volume = _volumeMgr.processEvent(volume, Volume.Event.OperationSucceeded);
- destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.OperationSucceeded);
- txn.commit();
-
- return destVolume;
- }
-
- @DB
- protected Volume migrateVolume(VolumeVO volume, DataStore srcStore, DataStore destStore, String reservationId) throws NoTransitionException {
- Transaction txn = Transaction.currentTxn();
- txn.start();
- volume.setReservationId(reservationId);
- volume = _volumeMgr.processEvent(volume, Volume.Event.MigrationRequested);
- Volume destVolume = _volumeMgr.allocateDuplicateVolume(volume);
- destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.CreateRequested);
- txn.commit();
-
- VolumeStrategy vs = srcStore.getVolumeStrategy();
- vs.migrateVolume(volume, destVolume, destStore);
-
- txn.start();
- volume = _volumeMgr.processEvent(volume, Volume.Event.OperationSucceeded);
- destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.OperationSucceeded);
- txn.commit();
-
- volume = _volumeMgr.processEvent(volume, Volume.Event.DestroyRequested);
-
- vs.deleteVolume(volume);
-
- _volumeMgr.processEvent(volume, Volume.Event.OperationSucceeded);
- return destVolume;
- }
-
- @DB
- protected Volume recreateVolume(VolumeVO srcVolume, DataStore destStore, String reservationId) throws NoTransitionException {
- Transaction txn = Transaction.currentTxn();
- txn.start();
- srcVolume.setReservationId(reservationId);
- srcVolume = _volumeMgr.processEvent(srcVolume, Volume.Event.CopyRequested);
- Volume destVolume = _volumeMgr.allocateDuplicateVolume(srcVolume);
- destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.CreateRequested);
- txn.commit();
-
- DataStore srcStore = _storageProviderMgr.getDataStore(srcVolume.getPoolId());
- VolumeStrategy vs = srcStore.getVolumeStrategy();
-
- vs.migrateVolume(srcVolume, destVolume, destStore);
-
- txn.start();
- srcVolume = _volumeMgr.processEvent(srcVolume, Volume.Event.OperationSucceeded);
- destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.OperationSucceeded);
- txn.commit();
-
- srcVolume = _volumeMgr.processEvent(srcVolume, Volume.Event.DestroyRequested);
-
- vs.deleteVolume(srcVolume);
-
- _volumeMgr.processEvent(srcVolume, Volume.Event.OperationSucceeded);
-
- return destVolume;
- }
-
- protected Volume createVolumeOnStorage(Volume volume, DataStore destStore, String reservationId) throws NoTransitionException {
- VolumeStrategy vs = destStore.getVolumeStrategy();
- volume.setReservationId(reservationId);
- volume = _volumeMgr.processEvent(volume, Volume.Event.CreateRequested);
-
- if (volume.getTemplateId() != null) {
- DataStore ds = _secondaryStorageMgr.getImageStore(destStore);
- TemplateProfile tp = ds.prepareTemplate(volume.getTemplateId(), destStore);
- if (!destStore.contains(tp)) {
- tp = _templateMgr.AssociateTemplateStoragePool(tp, destStore);
- tp = destStore.getTemplateStrategy().install(tp);
- } else {
- tp = destStore.getTemplateStrategy().get(tp.getId());
- }
- volume = vs.createVolumeFromBaseTemplate(volume, tp);
- } else {
- volume = vs.createDataVolume(volume);
- }
-
- volume = _volumeMgr.processEvent(volume, Volume.Event.OperationSucceeded);
- return volume;
- }
-
- @DB
- protected void prepareVolumes(List<VolumeVO> vols, Long destPoolId, String reservationId) throws NoTransitionException {
- DataStore destStore = null;
- if (destPoolId != null) {
- destStore = _storageProviderMgr.getDataStore(destPoolId);
- }
-
- for (VolumeVO volume : vols) {
- if (volume.getPoolId() == null && destStore == null) {
- throw new CloudRuntimeException("Volume has no pool associate and also no storage pool assigned in DeployDestination, Unable to create.");
- }
- if (destStore == null) {
- continue;
- }
-
- DataStore srcStore = _storageProviderMgr.getDataStore(volume.getPoolId());
- boolean needToCreateVolume = false;
- boolean needToRecreateVolume = false;
- boolean needToMigrateVolume = false;
- boolean needToCopyFromSec = false;
-
- Volume.State state = volume.getState();
- if (state == Volume.State.Allocated) {
- needToCreateVolume = true;
- } else if (state == Volume.State.UploadOp) {
- needToCopyFromSec = true;
- } else if (destStore.getId() != srcStore.getId()) {
- if (s_logger.isDebugEnabled()) {
- s_logger.debug("Mismatch in storage pool " + destStore.getId() + " assigned by deploymentPlanner and the one associated with volume " + volume);
- }
-
- if (volume.isRecreatable()) {
- needToRecreateVolume = true;
- } else {
- if (Volume.Type.ROOT == volume.getVolumeType()) {
- needToMigrateVolume = true;
- } else {
- if (destStore.getCluterId() != srcStore.getCluterId()) {
- needToMigrateVolume = true;
- } else if (!srcStore.isSharedStorage() && srcStore.getId() != destStore.getId()) {
- needToMigrateVolume = true;
- } else {
- continue;
- }
- }
- }
- } else {
- continue;
- }
-
-
- if (needToCreateVolume) {
- createVolumeOnStorage(volume, destStore, reservationId);
- } else if (needToMigrateVolume) {
- migrateVolume(volume, srcStore, destStore, reservationId);
- } else if (needToCopyFromSec) {
- copyVolumeFromBackupStorage(volume, destStore, reservationId);
- } else if (needToRecreateVolume) {
- recreateVolume(volume, destStore, reservationId);
- }
- }
- }
-
- public void prepare(long vmId, DeploymentPlan plan, String reservationId) {
+ private static final Logger s_logger = Logger.getLogger(StorageOrchestratorImpl.class);
+ @Inject
+ StoragePoolDao _storagePoolDao;
+ @Inject
+ StorageProviderManager _spManager;
+ @Inject
+ VolumeDao _volumeDao;
+ @Inject
+ VMInstanceDao _vmDao;
+ @Inject
+ DiskOfferingDao _diskOfferingDao;
+ @Inject
+ VolumeHostDao _volumeHostDao;
+ @Inject
+ StorageProviderManager _storageProviderMgr;
+ @Inject
+ VolumeManager _volumeMgr;
+ @Inject
+ SecondaryStorageManager _secondaryStorageMgr;
+ @Inject
+ ImageManager _templateMgr;
+ @Inject
+ VMTemplateDao _templateDao;
+ @Inject
+ VolumeService volumeService;
+ @Inject
+ ImageMotionService imageMotionService;
+ @Inject
+ ImageService imageService;
+ @Inject
+ PrimaryDataStoreManager primaryStorageMgr;
+
+ @DB
+ protected Volume copyVolumeFromBackupStorage(VolumeVO volume, DataStore destStore, String reservationId) throws NoTransitionException {
+ DataStore ds = _secondaryStorageMgr.getStore(volume);
+ if (!ds.contains(volume)) {
+ throw new CloudRuntimeException("volume: " + volume + "doesn't exist on backup storage");
+ }
+
+ VolumeProfile vp = ds.prepareVolume(volume, destStore);
+
+ VolumeStrategy vs = destStore.getVolumeStrategy();
+
+ Transaction txn = Transaction.currentTxn();
+ volume.setReservationId(reservationId);
+ _volumeMgr.processEvent(volume, Volume.Event.CopyRequested);
+ VolumeVO destVolume = _volumeMgr.allocateDuplicateVolume(volume);
+ destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.CreateRequested);
+ txn.commit();
+
+ vs.copyVolumeFromBackup(vp, destVolume);
+
+ txn.start();
+ volume = _volumeMgr.processEvent(volume, Volume.Event.OperationSucceeded);
+ destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.OperationSucceeded);
+ txn.commit();
+
+ return destVolume;
+ }
+
+ @DB
+ protected Volume migrateVolume(VolumeVO volume, DataStore srcStore, DataStore destStore, String reservationId) throws NoTransitionException {
+ Transaction txn = Transaction.currentTxn();
+ txn.start();
+ volume.setReservationId(reservationId);
+ volume = _volumeMgr.processEvent(volume, Volume.Event.MigrationRequested);
+ Volume destVolume = _volumeMgr.allocateDuplicateVolume(volume);
+ destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.CreateRequested);
+ txn.commit();
+
+ VolumeStrategy vs = srcStore.getVolumeStrategy();
+ vs.migrateVolume(volume, destVolume, destStore);
+
+ txn.start();
+ volume = _volumeMgr.processEvent(volume, Volume.Event.OperationSucceeded);
+ destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.OperationSucceeded);
+ txn.commit();
+
+ volume = _volumeMgr.processEvent(volume, Volume.Event.DestroyRequested);
+
+ vs.deleteVolume(volume);
+
+ _volumeMgr.processEvent(volume, Volume.Event.OperationSucceeded);
+ return destVolume;
+ }
+
+ @DB
+ protected Volume recreateVolume(VolumeVO srcVolume, DataStore destStore, String reservationId) throws NoTransitionException {
+ Transaction txn = Transaction.currentTxn();
+ txn.start();
+ srcVolume.setReservationId(reservationId);
+ srcVolume = _volumeMgr.processEvent(srcVolume, Volume.Event.CopyRequested);
+ Volume destVolume = _volumeMgr.allocateDuplicateVolume(srcVolume);
+ destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.CreateRequested);
+ txn.commit();
+
+ DataStore srcStore = _storageProviderMgr.getDataStore(srcVolume.getPoolId());
+ VolumeStrategy vs = srcStore.getVolumeStrategy();
+
+ vs.migrateVolume(srcVolume, destVolume, destStore);
+
+ txn.start();
+ srcVolume = _volumeMgr.processEvent(srcVolume, Volume.Event.OperationSucceeded);
+ destVolume = _volumeMgr.processEvent(destVolume, Volume.Event.OperationSucceeded);
+ txn.commit();
+
+ srcVolume = _volumeMgr.processEvent(srcVolume, Volume.Event.DestroyRequested);
+
+ vs.deleteVolume(srcVolume);
+
+ _volumeMgr.processEvent(srcVolume, Volume.Event.OperationSucceeded);
+
+ return destVolume;
+ }
+
+ protected Volume createVolumeOnStorage(Volume volume, DataStore destStore, String reservationId) throws NoTransitionException {
+ VolumeStrategy vs = destStore.getVolumeStrategy();
+ volume.setReservationId(reservationId);
+ volume = _volumeMgr.processEvent(volume, Volume.Event.CreateRequested);
+
+ if (volume.getTemplateId() != null) {
+ DataStore ds = _secondaryStorageMgr.getImageStore(destStore);
+ TemplateProfile tp = ds.prepareTemplate(volume.getTemplateId(), destStore);
+ if (!destStore.contains(tp)) {
+ tp = _templateMgr.AssociateTemplateStoragePool(tp, destStore);
+ tp = destStore.getTemplateStrategy().install(tp);
+ } else {
+ tp = destStore.getTemplateStrategy().get(tp.getId());
+ }
+ volume = vs.createVolumeFromBaseTemplate(volume, tp);
+ } else {
+ volume = vs.createDataVolume(volume);
+ }
+
+ volume = _volumeMgr.processEvent(volume, Volume.Event.OperationSucceeded);
+ return volume;
+ }
+
+ @DB
+ protected void prepareVolumes(List<VolumeVO> vols, Long destPoolId, String reservationId) throws NoTransitionException {
+ DataStore destStore = null;
+ if (destPoolId != null) {
+ destStore = _storageProviderMgr.getDataStore(destPoolId);
+ }
+
+ for (VolumeVO volume : vols) {
+ if (volume.getPoolId() == null && destStore == null) {
+ throw new CloudRuntimeException("Volume has no pool associate and also no storage pool assigned in DeployDestination, Unable to create.");
+ }
+ if (destStore == null) {
+ continue;
+ }
+
+ DataStore srcStore = _storageProviderMgr.getDataStore(volume.getPoolId());
+ boolean needToCreateVolume = false;
+ boolean needToRecreateVolume = false;
+ boolean needToMigrateVolume = false;
+ boolean needToCopyFromSec = false;
+
+ Volume.State state = volume.getState();
+ if (state == Volume.State.Allocated) {
+ needToCreateVolume = true;
+ } else if (state == Volume.State.UploadOp) {
+ needToCopyFromSec = true;
+ } else if (destStore.getId() != srcStore.getId()) {
+ if (s_logger.isDebugEnabled()) {
+ s_logger.debug("Mismatch in storage pool " + destStore.getId() + " assigned by deploymentPlanner and the one associated with volume " + volume);
+ }
+
+ if (volume.isRecreatable()) {
+ needToRecreateVolume = true;
+ } else {
+ if (Volume.Type.ROOT == volume.getVolumeType()) {
+ needToMigrateVolume = true;
+ } else {
+ if (destStore.getCluterId() != srcStore.getCluterId()) {
+ needToMigrateVolume = true;
+ } else if (!srcStore.isSharedStorage() && srcStore.getId() != destStore.getId()) {
+ needToMigrateVolume = true;
+ } else {
+ continue;
+ }
+ }
+ }
+ } else {
+ continue;
+ }
+
+ if (needToCreateVolume) {
+ createVolumeOnStorage(volume, destStore, reservationId);
+ } else if (needToMigrateVolume) {
+ migrateVolume(volume, srcStore, destStore, reservationId);
+ } else if (needToCopyFromSec) {
+ copyVolumeFromBackupStorage(volume, destStore, reservationId);
+ } else if (needToRecreateVolume) {
+ recreateVolume(volume, destStore, reservationId);
+ }
+ }
+ }
+
+ public void prepare(long vmId, DeploymentPlan plan, String reservationId) {
VirtualMachine vm = _vmDao.findById(vmId);
-
List<VolumeVO> vols = _volumeDao.findUsableVolumesForInstance(vm.getId());
if (s_logger.isDebugEnabled()) {
s_logger.debug("Prepare " + vols.size() + " volumes for " + vm.getInstanceName());
}
-
+
try {
- prepareVolumes(vols, plan.getPoolId(), reservationId);
+ prepareVolumes(vols, plan.getPoolId(), reservationId);
} catch (NoTransitionException e) {
- s_logger.debug("Failed to prepare volume: " + e.toString());
+ s_logger.debug("Failed to prepare volume: " + e.toString());
}
}
+ public void release(long vmId, String reservationId) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void destroy(List<Long> disks, String reservationId) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void cancel(String reservationId) {
+ // TODO Auto-generated method stub
+
+ }
+
+ public void prepareAttachDiskToVM(long diskId, long vmId, String reservationId) {
+ VirtualMachine vm = _vmDao.findById(vmId);
+
+ if (vm == null || vm.getState() != VirtualMachine.State.Running) {
+ return;
+ }
- public void release(long vmId, String reservationId) {
- // TODO Auto-generated method stub
-
- }
-
- public void destroy(List<Long> disks, String reservationId) {
- // TODO Auto-generated method stub
-
- }
-
- public void cancel(String reservationId) {
- // TODO Auto-generated method stub
-
- }
-
- public void prepareAttachDiskToVM(long diskId, long vmId, String reservationId) {
- VirtualMachine vm = _vmDao.findById(vmId);
-
- if (vm == null || vm.getState() != VirtualMachine.State.Running) {
- return;
- }
-
- VolumeVO volume = _volumeDao.findById(diskId);
- if (volume.getInstanceId() != null) {
- if (volume.getInstanceId() != vmId) {
- throw new InvalidParameterValueException("Volume " + volume + "already attached to " + volume.getInstanceId());
- } else {
- return;
- }
- }
-
- List<VolumeVO> vols = new ArrayList<VolumeVO>();
- vols.add(volume);
-
- List<VolumeVO> rootDisks = _volumeDao.findByInstanceAndType(vmId, Volume.Type.ROOT);
- VolumeVO rootDisk = rootDisks.get(0);
- try {
- prepareVolumes(vols, rootDisk.getPoolId(), reservationId);
- } catch (NoTransitionException e) {
- s_logger.debug("Failed to prepare volume: " + volume + ", due to" + e.toString());
- throw new CloudRuntimeException(e.toString());
- }
-
- volume = _volumeDao.findById(diskId);
- volume.setInstanceId(vmId);
- _volumeDao.update(volume.getId(), volume);
- }
-
-
-
- @Override
- public boolean createVolume(VolumeEntity volume, long dataStoreId, VolumeDiskType diskType) {
- VolumeEntityImpl vei = ((VolumeEntityImpl)volume);
- VolumeInfo vi = volumeService.createVolume(vei.getVolumeInfo(), dataStoreId, diskType);
- vei.setVolumeInfo(vi);
- return true;
- }
-
- @Override
- public VolumeEntity allocateVolumeInDb(long size, VolumeType type, String volName, Long templateId) {
- return volumeService.allocateVolumeInDb(size, type, volName, templateId);
- }
-
- protected VolumeInfo getVolumeInfo(VolumeEntity volume) {
- VolumeEntityImpl vei = (VolumeEntityImpl)volume;
- return vei.getVolumeInfo();
- }
-
- @Override
- public boolean createVolumeFromTemplate(VolumeEntity volume, long dataStoreId, VolumeDiskType diskType, TemplateEntity template) {
-
- return false;
- }
+ VolumeVO volume = _volumeDao.findById(diskId);
+ if (volume.getInstanceId() != null) {
+ if (volume.getInstanceId() != vmId) {
+ throw new InvalidParameterValueException("Volume " + volume + "already attached to " + volume.getInstanceId());
+ } else {
+ return;
+ }
+ }
+
+ List<VolumeVO> vols = new ArrayList<VolumeVO>();
+ vols.add(volume);
+
+ List<VolumeVO> rootDisks = _volumeDao.findByInstanceAndType(vmId, Volume.Type.ROOT);
+ VolumeVO rootDisk = rootDisks.get(0);
+ try {
+ prepareVolumes(vols, rootDisk.getPoolId(), reservationId);
+ } catch (NoTransitionException e) {
+ s_logger.debug("Failed to prepare volume: " + volume + ", due to" + e.toString());
+ throw new CloudRuntimeException(e.toString());
+ }
+
+ volume = _volumeDao.findById(diskId);
+ volume.setInstanceId(vmId);
+ _volumeDao.update(volume.getId(), volume);
+ }
+
+ @Override
+ public boolean createVolume(VolumeEntity volume, long dataStoreId, VolumeDiskType diskType) {
+ VolumeEntityImpl vei = ((VolumeEntityImpl) volume);
+ VolumeInfo vi = volumeService.createVolume(vei.getVolumeInfo(), dataStoreId, diskType);
+ vei.setVolumeInfo(vi);
+ return true;
+ }
+
+ @Override
+ public VolumeEntity allocateVolumeInDb(long size, VolumeType type, String volName, Long templateId) {
+ return volumeService.allocateVolumeInDb(size, type, volName, templateId);
+ }
+
+ protected VolumeInfo getVolumeInfo(VolumeEntity volume) {
+ VolumeEntityImpl vei = (VolumeEntityImpl) volume;
+ return vei.getVolumeInfo();
+ }
+
+ @Override
+ public boolean createVolumeFromTemplate(VolumeEntity volume, long dataStoreId, VolumeDiskType diskType, TemplateEntity template) {
+
+ return false;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/StorageProviderManager.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/StorageProviderManager.java b/engine/storage/src/org/apache/cloudstack/storage/StorageProviderManager.java
index a49dcda..4260115 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/StorageProviderManager.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/StorageProviderManager.java
@@ -4,8 +4,11 @@ import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
public interface StorageProviderManager {
- StorageProvider getProvider(String uuid);
- StorageProvider getProvider(long poolId);
- StorageProvider getBackupStorageProvider(long zoneId);
- DataStore getDataStore(long poolId);
+ StorageProvider getProvider(String uuid);
+
+ StorageProvider getProvider(long poolId);
+
+ StorageProvider getBackupStorageProvider(long zoneId);
+
+ DataStore getDataStore(long poolId);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/StorageProviderManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/StorageProviderManagerImpl.java b/engine/storage/src/org/apache/cloudstack/storage/StorageProviderManagerImpl.java
index f327c40..bbed9f4 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/StorageProviderManagerImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/StorageProviderManagerImpl.java
@@ -10,46 +10,45 @@ import org.apache.cloudstack.engine.subsystem.api.storage.StorageProvider;
import com.cloud.utils.component.Manager;
public class StorageProviderManagerImpl implements StorageProviderManager, Manager {
-
- public StorageProvider getProvider(String uuid) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public boolean configure(String name, Map<String, Object> params)
- throws ConfigurationException {
- // TODO Auto-generated method stub
- return false;
- }
-
- public boolean start() {
- // TODO Auto-generated method stub
- return false;
- }
-
- public boolean stop() {
- // TODO Auto-generated method stub
- return false;
- }
-
- public String getName() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public StorageProvider getProvider(long poolId) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public StorageProvider getBackupStorageProvider(long zoneId) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public DataStore getDataStore(long poolId) {
- // TODO Auto-generated method stub
- return null;
- }
+
+ public StorageProvider getProvider(String uuid) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean start() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean stop() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public String getName() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public StorageProvider getProvider(long poolId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public StorageProvider getBackupStorageProvider(long zoneId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public DataStore getDataStore(long poolId) {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/VolumeBackupRef.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/VolumeBackupRef.java b/engine/storage/src/org/apache/cloudstack/storage/VolumeBackupRef.java
index 645e94c..4b512ba 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/VolumeBackupRef.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/VolumeBackupRef.java
@@ -28,39 +28,39 @@ import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
public interface VolumeBackupRef {
- public DataObjectBackupStorageOperationState getOperationState();
-
- public String getInstallPath();
+ public DataObjectBackupStorageOperationState getOperationState();
- public long getHostId();
+ public String getInstallPath();
- public long getVolumeId();
+ public long getHostId();
- public long getZoneId();
+ public long getVolumeId();
- public int getDownloadPercent();
+ public long getZoneId();
- public long getVolumeSize();
+ public int getDownloadPercent();
- public Storage.ImageFormat getFormat();
+ public long getVolumeSize();
- public String getDownloadUrl();
+ public Storage.ImageFormat getFormat();
- public boolean getDestroyed();
+ public String getDownloadUrl();
- public long getPhysicalSize();
+ public boolean getDestroyed();
- public long getSize();
+ public long getPhysicalSize();
- public String getLocalDownloadPath();
+ public long getSize();
- public String getChecksum();
+ public String getLocalDownloadPath();
- public Status getDownloadState();
+ public String getChecksum();
- public Date getLastUpdated();
+ public Status getDownloadState();
- public Date getCreated();
+ public Date getLastUpdated();
- public long getId();
+ public Date getCreated();
+
+ public long getId();
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/backup/BackupMotionService.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/backup/BackupMotionService.java b/engine/storage/src/org/apache/cloudstack/storage/backup/BackupMotionService.java
index 5105e25..cb49027 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/backup/BackupMotionService.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/backup/BackupMotionService.java
@@ -19,5 +19,5 @@
package org.apache.cloudstack.storage.backup;
public interface BackupMotionService {
- boolean copySnapshot(String snapshotUri, String destSnapshotUri);
+ boolean copySnapshot(String snapshotUri, String destSnapshotUri);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/backup/BackupService.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/backup/BackupService.java b/engine/storage/src/org/apache/cloudstack/storage/backup/BackupService.java
index 198247d..ebb4c9f 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/backup/BackupService.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/backup/BackupService.java
@@ -19,6 +19,7 @@
package org.apache.cloudstack.storage.backup;
public interface BackupService {
- String grantAccessSnapshot(long snapshotId, long endpointId);
- boolean revokeAccessSnapshot(long snapshotId, long endpointId);
+ String grantAccessSnapshot(long snapshotId, long endpointId);
+
+ boolean revokeAccessSnapshot(long snapshotId, long endpointId);
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/command/CopyTemplateToPrimaryStorage.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/command/CopyTemplateToPrimaryStorage.java b/engine/storage/src/org/apache/cloudstack/storage/command/CopyTemplateToPrimaryStorage.java
index 80a280e..d092e9e 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/command/CopyTemplateToPrimaryStorage.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/command/CopyTemplateToPrimaryStorage.java
@@ -8,21 +8,21 @@ import com.cloud.agent.api.Command;
public class CopyTemplateToPrimaryStorage extends Command {
- private ImageOnPrimayDataStoreTO imageTO;
-
- protected CopyTemplateToPrimaryStorage() {
- super();
- }
-
- public CopyTemplateToPrimaryStorage(ImageOnPrimayDataStoreTO image) {
- super();
- this.imageTO = image;
- }
-
- @Override
- public boolean executeInSequence() {
- // TODO Auto-generated method stub
- return false;
- }
+ private ImageOnPrimayDataStoreTO imageTO;
+
+ protected CopyTemplateToPrimaryStorage() {
+ super();
+ }
+
+ public CopyTemplateToPrimaryStorage(ImageOnPrimayDataStoreTO image) {
+ super();
+ this.imageTO = image;
+ }
+
+ @Override
+ public boolean executeInSequence() {
+ // TODO Auto-generated method stub
+ return false;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeAnswer.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeAnswer.java b/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeAnswer.java
index e75307c..49fa93e 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeAnswer.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeAnswer.java
@@ -21,16 +21,17 @@ package org.apache.cloudstack.storage.command;
import com.cloud.agent.api.Answer;
public class CreateVolumeAnswer extends Answer {
- private String volumeUuid;
- protected CreateVolumeAnswer() {
- super();
- }
-
- public CreateVolumeAnswer(String volumeUuid) {
- this.volumeUuid = volumeUuid;
- }
-
- public String getVolumeUuid() {
- return this.volumeUuid;
- }
+ private String volumeUuid;
+
+ protected CreateVolumeAnswer() {
+ super();
+ }
+
+ public CreateVolumeAnswer(String volumeUuid) {
+ this.volumeUuid = volumeUuid;
+ }
+
+ public String getVolumeUuid() {
+ return this.volumeUuid;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeCommand.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeCommand.java b/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeCommand.java
index 70d1611..3d8880f 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeCommand.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeCommand.java
@@ -23,20 +23,21 @@ import org.apache.cloudstack.storage.to.VolumeTO;
import com.cloud.agent.api.Command;
public class CreateVolumeCommand extends Command {
- protected VolumeTO volumeInfo;
- public CreateVolumeCommand(VolumeTO volumeInfo) {
- super();
- this.volumeInfo = volumeInfo;
- }
-
- protected CreateVolumeCommand() {
- super();
- }
-
- @Override
- public boolean executeInSequence() {
- // TODO Auto-generated method stub
- return false;
- }
+ protected VolumeTO volumeInfo;
+
+ public CreateVolumeCommand(VolumeTO volumeInfo) {
+ super();
+ this.volumeInfo = volumeInfo;
+ }
+
+ protected CreateVolumeCommand() {
+ super();
+ }
+
+ @Override
+ public boolean executeInSequence() {
+ // TODO Auto-generated method stub
+ return false;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeFromBaseImageCommand.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeFromBaseImageCommand.java b/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeFromBaseImageCommand.java
index 0e520a9..0042c95 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeFromBaseImageCommand.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/command/CreateVolumeFromBaseImageCommand.java
@@ -24,16 +24,18 @@ import org.apache.cloudstack.storage.to.VolumeTO;
import com.cloud.agent.api.Command;
public class CreateVolumeFromBaseImageCommand extends Command {
- private VolumeTO volume;
- private ImageOnPrimayDataStoreTO image;
- public CreateVolumeFromBaseImageCommand(VolumeTO volume, ImageOnPrimayDataStoreTO image) {
- this.volume = volume;
- this.image = image;
- }
- @Override
- public boolean executeInSequence() {
- // TODO Auto-generated method stub
- return false;
- }
+ private VolumeTO volume;
+ private ImageOnPrimayDataStoreTO image;
+
+ public CreateVolumeFromBaseImageCommand(VolumeTO volume, ImageOnPrimayDataStoreTO image) {
+ this.volume = volume;
+ this.image = image;
+ }
+
+ @Override
+ public boolean executeInSequence() {
+ // TODO Auto-generated method stub
+ return false;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreStatus.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreStatus.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreStatus.java
index 65f46b1..5c61da0 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreStatus.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreStatus.java
@@ -19,11 +19,5 @@
package org.apache.cloudstack.storage.datastore;
public enum DataStoreStatus {
- Creating,
- Up,
- PrepareForMaintenance,
- ErrorInMaintenance,
- CancelMaintenance,
- Maintenance,
- Removed;
+ Creating, Up, PrepareForMaintenance, ErrorInMaintenance, CancelMaintenance, Maintenance, Removed;
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultDataStore.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultDataStore.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultDataStore.java
index b95abe8..206f917 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultDataStore.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultDataStore.java
@@ -20,210 +20,209 @@ import com.cloud.storage.Storage.StoragePoolType;
import com.cloud.storage.Volume;
public class DefaultDataStore implements DataStore {
- protected VolumeStrategy _volumeStrategy;
- protected SnapshotStrategy _snapshotStrategy;
- protected BackupStrategy _backupStrategy;
- protected TemplateStrategy _templateStrategy;
- protected String _uri;
- protected String _uuid;
- protected StoreType _type;
- protected StoreScope _scope;
- protected long _poolId;
- protected DataStoreDriver _driverRef;
- protected DataStoreEndPointSelector _selector;
- protected FileSystem _fs;
- protected VolumeStrategy _volumeSt;
- protected SnapshotStrategy _snapshotSt;
- protected BackupStrategy _backupSt;
- protected long _id;
- protected DataStoreLifeCycle _dslf;
-
- public DefaultDataStore(
- ) {
- }
-
- public String getURI() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public void setURI(String uri) {
- this._uri = uri;
- }
-
- public String getUUID() {
- return this._uuid;
- }
-
- public void setUUID(String uuid) {
- this._uuid = uuid;
- }
-
- public StoreType getType() {
- return this._type;
- }
-
- public void setType(StoreType type) {
- this._type = type;
- }
-
- public StoreScope getScope() {
- return this._scope;
- }
-
- public void setScope(StoreScope scope) {
- this._scope = scope;
- }
-
- public Long getId() {
- return this._id;
- }
-
- public void setId(long id) {
- this._id = id;
- }
-
- public DataStoreDriver getDataStoreDriver() {
- return this._driverRef;
- }
-
- public void setDataStoreDriver(DataStoreDriver drv) {
- this._driverRef = drv;
- }
-
- public void setEndPointSelector(DataStoreEndPointSelector selector) {
- this._selector = selector;
- }
-
- public DataStoreEndPointSelector getSelector() {
- return this._selector;
- }
-
- public FileSystem getFileSystem() {
- return this._fs;
- }
-
- public void setFileSystem(FileSystem fs) {
- this._fs = fs;
- }
-
- public VolumeStrategy getVolumeStrategy() {
- return this._volumeSt;
- }
-
- public void setVolumeStrategy(VolumeStrategy vs) {
- this._volumeSt = vs;
- }
-
- public SnapshotStrategy getSnapshotStrategy() {
- return this._snapshotSt;
- }
-
- public void setSnapshotStrategy(SnapshotStrategy ss) {
- this._snapshotSt = ss;
- }
-
- public BackupStrategy getBackupStrategy() {
- return this._backupSt;
- }
-
- public void setBackupStrategy(BackupStrategy bs) {
- this._backupSt = bs;
- }
-
- public TemplateStrategy getTemplateStrategy() {
- return this._templateStrategy;
- }
-
- public void setTemplateStrategy(TemplateStrategy ts) {
- this._templateStrategy = ts;
- }
-
- public DataStoreLifeCycle getLifeCycle() {
- return this._dslf;
- }
-
- public void setLifeCycle(DataStoreLifeCycle lf) {
- this._dslf = lf;
- }
-
- public long getCluterId() {
- // TODO Auto-generated method stub
- return 0;
- }
-
- public long getPodId() {
- // TODO Auto-generated method stub
- return 0;
- }
-
- public long getZoneId() {
- // TODO Auto-generated method stub
- return 0;
- }
-
- public String getPath() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public StoragePoolType getPoolType() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public boolean isSharedStorage() {
- // TODO Auto-generated method stub
- return false;
- }
-
- public StorageProvider getProvider() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public DataStoreEndPointSelector getEndPointSelector() {
- // TODO Auto-generated method stub
- return null;
- }
-
- public VolumeProfile prepareVolume(Volume volume, DataStore destStore) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public SnapshotProfile prepareSnapshot(Snapshot snapshot, DataStore destStore) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public TemplateProfile prepareTemplate(long templateId, DataStore destStore) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public boolean contains(Volume volume) {
- // TODO Auto-generated method stub
- return false;
- }
-
- public boolean contains(Snapshot snapshot) {
- // TODO Auto-generated method stub
- return false;
- }
-
- public boolean contains(TemplateProfile template) {
- // TODO Auto-generated method stub
- return false;
- }
-
- public TemplateProfile get(TemplateProfile template) {
- // TODO Auto-generated method stub
- return null;
- }
-
- public StorageFilerTO getTO() {
- // TODO Auto-generated method stub
- return null;
- }
+ protected VolumeStrategy _volumeStrategy;
+ protected SnapshotStrategy _snapshotStrategy;
+ protected BackupStrategy _backupStrategy;
+ protected TemplateStrategy _templateStrategy;
+ protected String _uri;
+ protected String _uuid;
+ protected StoreType _type;
+ protected StoreScope _scope;
+ protected long _poolId;
+ protected DataStoreDriver _driverRef;
+ protected DataStoreEndPointSelector _selector;
+ protected FileSystem _fs;
+ protected VolumeStrategy _volumeSt;
+ protected SnapshotStrategy _snapshotSt;
+ protected BackupStrategy _backupSt;
+ protected long _id;
+ protected DataStoreLifeCycle _dslf;
+
+ public DefaultDataStore() {
+ }
+
+ public String getURI() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public void setURI(String uri) {
+ this._uri = uri;
+ }
+
+ public String getUUID() {
+ return this._uuid;
+ }
+
+ public void setUUID(String uuid) {
+ this._uuid = uuid;
+ }
+
+ public StoreType getType() {
+ return this._type;
+ }
+
+ public void setType(StoreType type) {
+ this._type = type;
+ }
+
+ public StoreScope getScope() {
+ return this._scope;
+ }
+
+ public void setScope(StoreScope scope) {
+ this._scope = scope;
+ }
+
+ public Long getId() {
+ return this._id;
+ }
+
+ public void setId(long id) {
+ this._id = id;
+ }
+
+ public DataStoreDriver getDataStoreDriver() {
+ return this._driverRef;
+ }
+
+ public void setDataStoreDriver(DataStoreDriver drv) {
+ this._driverRef = drv;
+ }
+
+ public void setEndPointSelector(DataStoreEndPointSelector selector) {
+ this._selector = selector;
+ }
+
+ public DataStoreEndPointSelector getSelector() {
+ return this._selector;
+ }
+
+ public FileSystem getFileSystem() {
+ return this._fs;
+ }
+
+ public void setFileSystem(FileSystem fs) {
+ this._fs = fs;
+ }
+
+ public VolumeStrategy getVolumeStrategy() {
+ return this._volumeSt;
+ }
+
+ public void setVolumeStrategy(VolumeStrategy vs) {
+ this._volumeSt = vs;
+ }
+
+ public SnapshotStrategy getSnapshotStrategy() {
+ return this._snapshotSt;
+ }
+
+ public void setSnapshotStrategy(SnapshotStrategy ss) {
+ this._snapshotSt = ss;
+ }
+
+ public BackupStrategy getBackupStrategy() {
+ return this._backupSt;
+ }
+
+ public void setBackupStrategy(BackupStrategy bs) {
+ this._backupSt = bs;
+ }
+
+ public TemplateStrategy getTemplateStrategy() {
+ return this._templateStrategy;
+ }
+
+ public void setTemplateStrategy(TemplateStrategy ts) {
+ this._templateStrategy = ts;
+ }
+
+ public DataStoreLifeCycle getLifeCycle() {
+ return this._dslf;
+ }
+
+ public void setLifeCycle(DataStoreLifeCycle lf) {
+ this._dslf = lf;
+ }
+
+ public long getCluterId() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public long getPodId() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public long getZoneId() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ public String getPath() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public StoragePoolType getPoolType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean isSharedStorage() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public StorageProvider getProvider() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public DataStoreEndPointSelector getEndPointSelector() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public VolumeProfile prepareVolume(Volume volume, DataStore destStore) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public SnapshotProfile prepareSnapshot(Snapshot snapshot, DataStore destStore) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public TemplateProfile prepareTemplate(long templateId, DataStore destStore) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public boolean contains(Volume volume) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean contains(Snapshot snapshot) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public boolean contains(TemplateProfile template) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ public TemplateProfile get(TemplateProfile template) {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public StorageFilerTO getTO() {
+ // TODO Auto-generated method stub
+ return null;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
index 780435c..9981d68 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/DefaultPrimaryDataStoreImpl.java
@@ -36,144 +36,145 @@ import com.cloud.utils.exception.CloudRuntimeException;
import edu.emory.mathcs.backport.java.util.Collections;
public class DefaultPrimaryDataStoreImpl implements PrimaryDataStore {
- private static final Logger s_logger = Logger.getLogger(DefaultPrimaryDataStoreImpl.class);
- protected PrimaryDataStoreDriver driver;
- protected DataStoreVO pdsv;
- protected PrimaryDataStoreInfo pdsInfo;
- @Inject
- private VolumeDao volumeDao;
- @Inject
- private HostDao hostDao;
- @Inject
- TemplatePrimaryDataStoreManager templatePrimaryStoreMgr;
- public DefaultPrimaryDataStoreImpl(PrimaryDataStoreDriver driver, DataStoreVO pdsv, PrimaryDataStoreInfo pdsInfo) {
- this.driver = driver;
- this.pdsv = pdsv;
- this.pdsInfo = pdsInfo;
- }
-
- @Override
- public VolumeInfo getVolume(long id) {
- VolumeVO volumeVO = volumeDao.findById(id);
- VolumeObject vol = new VolumeObject(this, volumeVO);
- return vol;
- }
-
- @Override
- public List<VolumeInfo> getVolumes() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public boolean deleteVolume(long id) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public List<EndPoint> getEndPoints() {
- Long clusterId = pdsv.getClusterId();
- if (clusterId == null) {
- return null;
- }
- List<EndPoint> endpoints = new ArrayList<EndPoint>();
- List<HostVO> hosts = hostDao.findHypervisorHostInCluster(clusterId);
- for (HostVO host : hosts) {
- HypervisorHostEndPoint ep = new HypervisorHostEndPoint(host.getId());
- ComponentInject.inject(ep);
- endpoints.add(ep);
- }
- Collections.shuffle(endpoints);
- return endpoints;
- }
-
- @Override
- public PrimaryDataStoreInfo getDataStoreInfo() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public boolean isHypervisorSupported(HypervisorType hypervisor) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean isLocalStorageSupported() {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean isVolumeDiskTypeSupported(VolumeDiskType diskType) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public long getCapacity() {
- // TODO Auto-generated method stub
- return 0;
- }
-
- @Override
- public long getAvailableCapacity() {
- // TODO Auto-generated method stub
- return 0;
- }
-
- @Override
- public VolumeObject createVolume(VolumeInfo vi, VolumeDiskType diskType) {
- if (!pdsInfo.isVolumeDiskTypeSupported(diskType)) {
- return null;
- }
- VolumeObject vo = (VolumeObject)vi;
- vo.setVolumeDiskType(diskType);
- this.driver.createVolume(vo);
- return vo;
- }
-
- @Override
- public boolean exists(VolumeInfo vi) {
- // TODO Auto-generated method stub
- return false;
- }
-
- @Override
- public boolean templateExists(TemplateInfo template) {
- return (templatePrimaryStoreMgr.findTemplateOnPrimaryDataStore(template, this) != null) ? true : false;
- }
-
- @Override
- public VolumeDiskType getDefaultDiskType() {
- // TODO Auto-generated method stub
- return null;
- }
-
- @Override
- public long getId() {
- // TODO Auto-generated method stub
- return 0;
- }
-
- @Override
- public TemplateOnPrimaryDataStoreInfo getTemplate(TemplateInfo template) {
- return templatePrimaryStoreMgr.findTemplateOnPrimaryDataStore(template, this);
- }
-
- @Override
- public VolumeInfo createVoluemFromBaseImage(VolumeInfo volume, TemplateOnPrimaryDataStoreInfo template) {
- VolumeObject vo = (VolumeObject)volume;
- vo.setVolumeDiskType(template.getTemplate().getDiskType());
- this.driver.createVolumeFromBaseImage(vo, template);
- return volume;
- }
-
- @Override
- public boolean installTemplate(TemplateOnPrimaryDataStoreInfo template) {
- // TODO Auto-generated method stub
- return true;
- }
+ private static final Logger s_logger = Logger.getLogger(DefaultPrimaryDataStoreImpl.class);
+ protected PrimaryDataStoreDriver driver;
+ protected DataStoreVO pdsv;
+ protected PrimaryDataStoreInfo pdsInfo;
+ @Inject
+ private VolumeDao volumeDao;
+ @Inject
+ private HostDao hostDao;
+ @Inject
+ TemplatePrimaryDataStoreManager templatePrimaryStoreMgr;
+
+ public DefaultPrimaryDataStoreImpl(PrimaryDataStoreDriver driver, DataStoreVO pdsv, PrimaryDataStoreInfo pdsInfo) {
+ this.driver = driver;
+ this.pdsv = pdsv;
+ this.pdsInfo = pdsInfo;
+ }
+
+ @Override
+ public VolumeInfo getVolume(long id) {
+ VolumeVO volumeVO = volumeDao.findById(id);
+ VolumeObject vol = new VolumeObject(this, volumeVO);
+ return vol;
+ }
+
+ @Override
+ public List<VolumeInfo> getVolumes() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean deleteVolume(long id) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public List<EndPoint> getEndPoints() {
+ Long clusterId = pdsv.getClusterId();
+ if (clusterId == null) {
+ return null;
+ }
+ List<EndPoint> endpoints = new ArrayList<EndPoint>();
+ List<HostVO> hosts = hostDao.findHypervisorHostInCluster(clusterId);
+ for (HostVO host : hosts) {
+ HypervisorHostEndPoint ep = new HypervisorHostEndPoint(host.getId());
+ ComponentInject.inject(ep);
+ endpoints.add(ep);
+ }
+ Collections.shuffle(endpoints);
+ return endpoints;
+ }
+
+ @Override
+ public PrimaryDataStoreInfo getDataStoreInfo() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public boolean isHypervisorSupported(HypervisorType hypervisor) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isLocalStorageSupported() {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean isVolumeDiskTypeSupported(VolumeDiskType diskType) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public long getCapacity() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public long getAvailableCapacity() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public VolumeObject createVolume(VolumeInfo vi, VolumeDiskType diskType) {
+ if (!pdsInfo.isVolumeDiskTypeSupported(diskType)) {
+ return null;
+ }
+ VolumeObject vo = (VolumeObject) vi;
+ vo.setVolumeDiskType(diskType);
+ this.driver.createVolume(vo);
+ return vo;
+ }
+
+ @Override
+ public boolean exists(VolumeInfo vi) {
+ // TODO Auto-generated method stub
+ return false;
+ }
+
+ @Override
+ public boolean templateExists(TemplateInfo template) {
+ return (templatePrimaryStoreMgr.findTemplateOnPrimaryDataStore(template, this) != null) ? true : false;
+ }
+
+ @Override
+ public VolumeDiskType getDefaultDiskType() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public long getId() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
+
+ @Override
+ public TemplateOnPrimaryDataStoreInfo getTemplate(TemplateInfo template) {
+ return templatePrimaryStoreMgr.findTemplateOnPrimaryDataStore(template, this);
+ }
+
+ @Override
+ public VolumeInfo createVoluemFromBaseImage(VolumeInfo volume, TemplateOnPrimaryDataStoreInfo template) {
+ VolumeObject vo = (VolumeObject) volume;
+ vo.setVolumeDiskType(template.getTemplate().getDiskType());
+ this.driver.createVolumeFromBaseImage(vo, template);
+ return volume;
+ }
+
+ @Override
+ public boolean installTemplate(TemplateOnPrimaryDataStoreInfo template) {
+ // TODO Auto-generated method stub
+ return true;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
index fe0ec99..4b8dd3c 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStore.java
@@ -30,19 +30,29 @@ import org.apache.cloudstack.storage.image.TemplateObject;
import org.apache.cloudstack.storage.volume.TemplateOnPrimaryDataStoreInfo;
import org.apache.cloudstack.storage.volume.VolumeObject;
-
public interface PrimaryDataStore extends PrimaryDataStoreInfo {
- VolumeInfo getVolume(long id);
- List<VolumeInfo> getVolumes();
- boolean deleteVolume(long id);
- VolumeInfo createVolume(VolumeInfo vo, VolumeDiskType diskType);
- VolumeInfo createVoluemFromBaseImage(VolumeInfo volume, TemplateOnPrimaryDataStoreInfo templateStore);
- List<EndPoint> getEndPoints();
- PrimaryDataStoreInfo getDataStoreInfo();
- boolean exists(VolumeInfo vi);
- boolean templateExists(TemplateInfo template);
- TemplateOnPrimaryDataStoreInfo getTemplate(TemplateInfo template);
- boolean installTemplate(TemplateOnPrimaryDataStoreInfo template);
- VolumeDiskType getDefaultDiskType();
-
+ VolumeInfo getVolume(long id);
+
+ List<VolumeInfo> getVolumes();
+
+ boolean deleteVolume(long id);
+
+ VolumeInfo createVolume(VolumeInfo vo, VolumeDiskType diskType);
+
+ VolumeInfo createVoluemFromBaseImage(VolumeInfo volume, TemplateOnPrimaryDataStoreInfo templateStore);
+
+ List<EndPoint> getEndPoints();
+
+ PrimaryDataStoreInfo getDataStoreInfo();
+
+ boolean exists(VolumeInfo vi);
+
+ boolean templateExists(TemplateInfo template);
+
+ TemplateOnPrimaryDataStoreInfo getTemplate(TemplateInfo template);
+
+ boolean installTemplate(TemplateOnPrimaryDataStoreInfo template);
+
+ VolumeDiskType getDefaultDiskType();
+
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreInfoImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreInfoImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreInfoImpl.java
index 65b1bbb..c5ed961 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreInfoImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/PrimaryDataStoreInfoImpl.java
@@ -27,55 +27,54 @@ import org.apache.cloudstack.engine.subsystem.api.storage.disktype.VolumeDiskTyp
import com.cloud.hypervisor.Hypervisor.HypervisorType;
public class PrimaryDataStoreInfoImpl implements PrimaryDataStoreInfo {
- protected List<HypervisorType> supportedHypervs;
- protected List<VolumeDiskType> supportedDiskTypes;
- protected long caapcity;
- protected long avail;
- protected boolean localStorage;
-
- public PrimaryDataStoreInfoImpl(List<HypervisorType> hypers, List<VolumeDiskType> diskTypes,
- long capacity, long avail, boolean localStorage) {
- this.avail = avail;
- this.caapcity = capacity;
- this.localStorage = localStorage;
- this.supportedDiskTypes = diskTypes;
- this.supportedHypervs = hypers;
- }
-
- @Override
- public boolean isHypervisorSupported(HypervisorType hypervisor) {
- return this.supportedHypervs.contains(hypervisor) ? true : false;
- }
+ protected List<HypervisorType> supportedHypervs;
+ protected List<VolumeDiskType> supportedDiskTypes;
+ protected long caapcity;
+ protected long avail;
+ protected boolean localStorage;
- @Override
- public boolean isLocalStorageSupported() {
- return this.localStorage;
- }
+ public PrimaryDataStoreInfoImpl(List<HypervisorType> hypers, List<VolumeDiskType> diskTypes, long capacity, long avail, boolean localStorage) {
+ this.avail = avail;
+ this.caapcity = capacity;
+ this.localStorage = localStorage;
+ this.supportedDiskTypes = diskTypes;
+ this.supportedHypervs = hypers;
+ }
- @Override
- public boolean isVolumeDiskTypeSupported(VolumeDiskType diskType) {
- return this.supportedDiskTypes.contains(diskType) ? true : false;
- }
+ @Override
+ public boolean isHypervisorSupported(HypervisorType hypervisor) {
+ return this.supportedHypervs.contains(hypervisor) ? true : false;
+ }
- @Override
- public long getCapacity() {
- return this.caapcity;
- }
+ @Override
+ public boolean isLocalStorageSupported() {
+ return this.localStorage;
+ }
- @Override
- public long getAvailableCapacity() {
- return this.avail;
- }
+ @Override
+ public boolean isVolumeDiskTypeSupported(VolumeDiskType diskType) {
+ return this.supportedDiskTypes.contains(diskType) ? true : false;
+ }
- @Override
- public List<EndPoint> getEndPoints() {
- // TODO Auto-generated method stub
- return null;
- }
+ @Override
+ public long getCapacity() {
+ return this.caapcity;
+ }
- @Override
- public long getId() {
- // TODO Auto-generated method stub
- return 0;
- }
+ @Override
+ public long getAvailableCapacity() {
+ return this.avail;
+ }
+
+ @Override
+ public List<EndPoint> getEndPoints() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public long getId() {
+ // TODO Auto-generated method stub
+ return 0;
+ }
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/datastore/db/DataStoreVO.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/db/DataStoreVO.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/db/DataStoreVO.java
index 52f3bbf..dc732d9 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/datastore/db/DataStoreVO.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/db/DataStoreVO.java
@@ -39,155 +39,153 @@ import com.cloud.storage.Storage.StoragePoolType;
import com.cloud.utils.db.GenericDao;
@Entity
-@Table(name="storage_pool")
+@Table(name = "storage_pool")
public class DataStoreVO implements Identity {
@Id
- @TableGenerator(name="storage_pool_sq", table="sequence", pkColumnName="name", valueColumnName="value", pkColumnValue="storage_pool_seq", allocationSize=1)
- @Column(name="id", updatable=false, nullable = false)
- private long id;
-
- @Column(name="name", updatable=false, nullable=false, length=255)
- private String name = null;
-
- @Column(name="uuid", length=255)
- private String uuid = null;
-
- @Column(name="pool_type", updatable=false, nullable=false, length=32)
+ @TableGenerator(name = "storage_pool_sq", table = "sequence", pkColumnName = "name", valueColumnName = "value", pkColumnValue = "storage_pool_seq", allocationSize = 1)
+ @Column(name = "id", updatable = false, nullable = false)
+ private long id;
+
+ @Column(name = "name", updatable = false, nullable = false, length = 255)
+ private String name = null;
+
+ @Column(name = "uuid", length = 255)
+ private String uuid = null;
+
+ @Column(name = "pool_type", updatable = false, nullable = false, length = 32)
private String protocol;
-
- @Column(name=GenericDao.CREATED_COLUMN)
+
+ @Column(name = GenericDao.CREATED_COLUMN)
Date created;
-
- @Column(name=GenericDao.REMOVED_COLUMN)
+
+ @Column(name = GenericDao.REMOVED_COLUMN)
private Date removed;
-
- @Column(name="update_time", updatable=true)
- @Temporal(value=TemporalType.TIMESTAMP)
+
+ @Column(name = "update_time", updatable = true)
+ @Temporal(value = TemporalType.TIMESTAMP)
private Date updateTime;
-
- @Column(name="data_center_id", updatable=true, nullable=false)
+
+ @Column(name = "data_center_id", updatable = true, nullable = false)
private long dataCenterId;
-
- @Column(name="pod_id", updatable=true)
+
+ @Column(name = "pod_id", updatable = true)
private Long podId;
-
- @Column(name="available_bytes", updatable=true, nullable=true)
+
+ @Column(name = "available_bytes", updatable = true, nullable = true)
private long availableBytes;
-
- @Column(name="capacity_bytes", updatable=true, nullable=true)
+
+ @Column(name = "capacity_bytes", updatable = true, nullable = true)
private long capacityBytes;
- @Column(name="status", updatable=true, nullable=false)
- @Enumerated(value=EnumType.STRING)
+ @Column(name = "status", updatable = true, nullable = false)
+ @Enumerated(value = EnumType.STRING)
private DataStoreStatus status;
-
- @Column(name="storage_provider", updatable=true, nullable=false)
+
+ @Column(name = "storage_provider", updatable = true, nullable = false)
private Long storageProvider;
-
- @Column(name="storage_type", nullable=false)
+
+ @Column(name = "storage_type", nullable = false)
private String storageType;
-
- @Column(name="host_address")
+
+ @Column(name = "host_address")
private String hostAddress;
-
- @Column(name="path")
+
+ @Column(name = "path")
private String path;
-
- @Column(name="port")
+
+ @Column(name = "port")
private int port;
- @Column(name="user_info")
+ @Column(name = "user_info")
private String userInfo;
- @Column(name="cluster_id")
+ @Column(name = "cluster_id")
private Long clusterId;
-
+
public long getId() {
- return id;
- }
-
- public DataStoreStatus getStatus() {
- return status;
- }
+ return id;
+ }
+
+ public DataStoreStatus getStatus() {
+ return status;
+ }
- public DataStoreVO() {
- // TODO Auto-generated constructor stub
- }
+ public DataStoreVO() {
+ // TODO Auto-generated constructor stub
+ }
public String getName() {
- return name;
- }
+ return name;
+ }
public String getUuid() {
- return uuid;
- }
-
+ return uuid;
+ }
public String getPoolType() {
- return protocol;
- }
+ return protocol;
+ }
public Date getCreated() {
- return created;
- }
+ return created;
+ }
- public Date getRemoved() {
- return removed;
- }
+ public Date getRemoved() {
+ return removed;
+ }
public Date getUpdateTime() {
- return updateTime;
- }
+ return updateTime;
+ }
public long getDataCenterId() {
- return dataCenterId;
- }
+ return dataCenterId;
+ }
public long getAvailableBytes() {
- return availableBytes;
- }
-
- public Long getStorageProviderId() {
- return storageProvider;
- }
-
- public void setStorageProviderId(Long provider) {
- storageProvider = provider;
- }
-
- public String getStorageType() {
- return storageType;
- }
-
- public void setStorageType(String type) {
- storageType = type;
- }
+ return availableBytes;
+ }
+
+ public Long getStorageProviderId() {
+ return storageProvider;
+ }
+
+ public void setStorageProviderId(Long provider) {
+ storageProvider = provider;
+ }
+
+ public String getStorageType() {
+ return storageType;
+ }
+
+ public void setStorageType(String type) {
+ storageType = type;
+ }
public long getCapacityBytes() {
- return capacityBytes;
- }
-
- public void setAvailableBytes(long available) {
- availableBytes = available;
- }
-
- public void setCapacityBytes(long capacity) {
- capacityBytes = capacity;
- }
-
-
+ return capacityBytes;
+ }
+
+ public void setAvailableBytes(long available) {
+ availableBytes = available;
+ }
+
+ public void setCapacityBytes(long capacity) {
+ capacityBytes = capacity;
+ }
+
public Long getClusterId() {
return clusterId;
}
-
+
public void setClusterId(Long clusterId) {
this.clusterId = clusterId;
}
-
+
public String getHostAddress() {
return hostAddress;
}
-
+
public String getPath() {
return path;
}
@@ -195,62 +193,61 @@ public class DataStoreVO implements Identity {
public String getUserInfo() {
return userInfo;
}
-
- public void setStatus(DataStoreStatus status)
- {
- this.status = status;
+
+ public void setStatus(DataStoreStatus status) {
+ this.status = status;
}
-
+
public void setId(long id) {
this.id = id;
}
-
+
public void setDataCenterId(long dcId) {
this.dataCenterId = dcId;
}
-
+
public void setPodId(Long podId) {
this.podId = podId;
}
-
+
public void setUuid(String uuid) {
this.uuid = uuid;
}
-
+
public void setPath(String path) {
- this.path = path;
+ this.path = path;
}
public void setUserInfo(String userInfo) {
this.userInfo = userInfo;
}
-
+
public int getPort() {
return port;
}
public Long getPodId() {
- return podId;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- @Override
+ return podId;
+ }
+
+ public void setName(String name) {
+ this.name = name;
+ }
+
+ @Override
public boolean equals(Object obj) {
- if (!(obj instanceof DataStoreVO) || obj == null) {
- return false;
- }
- DataStoreVO that = (DataStoreVO)obj;
- return this.id == that.id;
- }
-
- @Override
- public int hashCode() {
- return new Long(id).hashCode();
- }
-
+ if (!(obj instanceof DataStoreVO) || obj == null) {
+ return false;
+ }
+ DataStoreVO that = (DataStoreVO) obj;
+ return this.id == that.id;
+ }
+
+ @Override
+ public int hashCode() {
+ return new Long(id).hashCode();
+ }
+
@Override
public String toString() {
return new StringBuilder("Pool[").append(id).append("|").append(protocol).append("]").toString();
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/573d13dd/engine/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDao.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDao.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDao.java
index 8016559..f525632 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDao.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/db/PrimaryDataStoreDao.java
@@ -25,82 +25,92 @@ import org.apache.cloudstack.storage.datastore.DataStoreStatus;
import com.cloud.utils.db.GenericDao;
-
public interface PrimaryDataStoreDao extends GenericDao<DataStoreVO, Long> {
- /**
- * @param datacenterId -- the id of the datacenter (availability zone)
- */
- List<DataStoreVO> listByDataCenterId(long datacenterId);
-
- /**
- * @param datacenterId -- the id of the datacenter (availability zone)
- */
- List<DataStoreVO> listBy(long datacenterId, long podId, Long clusterId);
-
- /**
- * Set capacity of storage pool in bytes
- * @param id pool id.
- * @param capacity capacity in bytes
- */
+ /**
+ * @param datacenterId
+ * -- the id of the datacenter (availability zone)
+ */
+ List<DataStoreVO> listByDataCenterId(long datacenterId);
+
+ /**
+ * @param datacenterId
+ * -- the id of the datacenter (availability zone)
+ */
+ List<DataStoreVO> listBy(long datacenterId, long podId, Long clusterId);
+
+ /**
+ * Set capacity of storage pool in bytes
+ *
+ * @param id
+ * pool id.
+ * @param capacity
+ * capacity in bytes
+ */
void updateCapacity(long id, long capacity);
-
- /**
- * Set available bytes of storage pool in bytes
- * @param id pool id.
- * @param available available capacity in bytes
- */
+
+ /**
+ * Set available bytes of storage pool in bytes
+ *
+ * @param id
+ * pool id.
+ * @param available
+ * available capacity in bytes
+ */
void updateAvailable(long id, long available);
-
-
+
DataStoreVO persist(DataStoreVO pool, Map<String, String> details);
-
+
/**
* Find pool by name.
*
- * @param name name of pool.
- * @return the single StoragePoolVO
+ * @param name
+ * name of pool.
+ * @return the single StoragePoolVO
*/
List<DataStoreVO> findPoolByName(String name);
-
+
/**
* Find pools by the pod that matches the details.
*
- * @param podId pod id to find the pools in.
- * @param details details to match. All must match for the pool to be returned.
+ * @param podId
+ * pod id to find the pools in.
+ * @param details
+ * details to match. All must match for the pool to be returned.
* @return List of StoragePoolVO
*/
List<DataStoreVO> findPoolsByDetails(long dcId, long podId, Long clusterId, Map<String, String> details);
-
+
List<DataStoreVO> findPoolsByTags(long dcId, long podId, Long clusterId, String[] tags, Boolean shared);
-
+
/**
* Find pool by UUID.
*
- * @param uuid uuid of pool.
- * @return the single StoragePoolVO
+ * @param uuid
+ * uuid of pool.
+ * @return the single StoragePoolVO
*/
DataStoreVO findPoolByUUID(String uuid);
List<DataStoreVO> listByStorageHost(String hostFqdnOrIp);
DataStoreVO findPoolByHostPath(long dcId, Long podId, String host, String path, String uuid);
-
+
List<DataStoreVO> listPoolByHostPath(String host, String path);
-
+
void updateDetails(long poolId, Map<String, String> details);
-
+
Map<String, String> getDetails(long poolId);
- List<String> searchForStoragePoolDetails(long poolId, String value);
-
- List<DataStoreVO> findIfDuplicatePoolsExistByUUID(String uuid);
+ List<String> searchForStoragePoolDetails(long poolId, String value);
+
+ List<DataStoreVO> findIfDuplicatePoolsExistByUUID(String uuid);
List<DataStoreVO> listByStatus(DataStoreStatus status);
long countPoolsByStatus(DataStoreStatus... statuses);
- List<DataStoreVO> listByStatusInZone(long dcId, DataStoreStatus status);
-
+ List<DataStoreVO> listByStatusInZone(long dcId, DataStoreStatus status);
+
List<DataStoreVO> listPoolsByCluster(long clusterId);
}
\ No newline at end of file