http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/api/ApiDBUtils.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/api/ApiDBUtils.java b/server/src/com/cloud/api/ApiDBUtils.java index e1e8865..ec0e4ef 100755 --- a/server/src/com/cloud/api/ApiDBUtils.java +++ b/server/src/com/cloud/api/ApiDBUtils.java @@ -94,19 +94,13 @@ import com.cloud.server.TaggedResourceService; import com.cloud.service.ServiceOfferingVO; import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.storage.DiskOfferingVO; -import com.cloud.storage.GuestOS; import com.cloud.storage.GuestOSCategoryVO; -import com.cloud.storage.Snapshot; import com.cloud.storage.SnapshotVO; -import com.cloud.storage.Storage.ImageFormat; -import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePoolVO; -import com.cloud.storage.StorageStats; import com.cloud.storage.UploadVO; import com.cloud.storage.VMTemplateHostVO; import com.cloud.storage.VMTemplateSwiftVO; import com.cloud.storage.VMTemplateVO; -import com.cloud.storage.Volume.Type; import com.cloud.storage.VolumeHostVO; import com.cloud.storage.VolumeVO; import com.cloud.storage.dao.DiskOfferingDao; @@ -121,6 +115,12 @@ import com.cloud.storage.dao.VMTemplateHostDao; import com.cloud.storage.dao.VMTemplateSwiftDao; import com.cloud.storage.dao.VolumeDao; import com.cloud.storage.dao.VolumeHostDao; +import com.cloud.storage.pool.StoragePoolManager; +import com.cloud.storage.pool.StorageStats; +import com.cloud.storage.pool.Storage.ImageFormat; +import com.cloud.storage.snapshot.Snapshot; +import com.cloud.storage.volume.GuestOS; +import com.cloud.storage.volume.Volume.Type; import com.cloud.user.Account; import com.cloud.user.AccountDetailsDao; import com.cloud.user.AccountVO; @@ -154,7 +154,7 @@ public class ApiDBUtils { private static ManagementServer _ms; public static AsyncJobManager _asyncMgr; private static SecurityGroupManager _securityGroupMgr; - private static StorageManager _storageMgr; + private static StoragePoolManager _storageMgr; private static UserVmManager _userVmMgr; private static NetworkManager _networkMgr; private static StatsCollector _statsCollector; @@ -212,7 +212,7 @@ public class ApiDBUtils { ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name); _asyncMgr = locator.getManager(AsyncJobManager.class); _securityGroupMgr = locator.getManager(SecurityGroupManager.class); - _storageMgr = locator.getManager(StorageManager.class); + _storageMgr = locator.getManager(StoragePoolManager.class); _userVmMgr = locator.getManager(UserVmManager.class); _networkMgr = locator.getManager(NetworkManager.class); _configMgr = locator.getManager(ConfigurationService.class);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/api/ApiResponseHelper.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 0340a94..343709e 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -176,25 +176,25 @@ import com.cloud.server.Criteria; import com.cloud.server.ResourceTag; import com.cloud.server.ResourceTag.TaggedResourceType; import com.cloud.storage.DiskOfferingVO; -import com.cloud.storage.GuestOS; import com.cloud.storage.GuestOSCategoryVO; -import com.cloud.storage.Snapshot; -import com.cloud.storage.Storage; -import com.cloud.storage.Storage.ImageFormat; -import com.cloud.storage.Storage.StoragePoolType; -import com.cloud.storage.Storage.TemplateType; -import com.cloud.storage.StoragePool; import com.cloud.storage.StoragePoolVO; -import com.cloud.storage.StorageStats; import com.cloud.storage.Swift; import com.cloud.storage.UploadVO; import com.cloud.storage.VMTemplateHostVO; import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; import com.cloud.storage.VMTemplateSwiftVO; import com.cloud.storage.VMTemplateVO; -import com.cloud.storage.Volume; import com.cloud.storage.VolumeVO; +import com.cloud.storage.pool.Storage; +import com.cloud.storage.pool.StoragePool; +import com.cloud.storage.pool.StorageStats; +import com.cloud.storage.pool.Storage.ImageFormat; +import com.cloud.storage.pool.Storage.StoragePoolType; +import com.cloud.storage.pool.Storage.TemplateType; +import com.cloud.storage.snapshot.Snapshot; import com.cloud.storage.snapshot.SnapshotPolicy; +import com.cloud.storage.volume.GuestOS; +import com.cloud.storage.volume.Volume; import com.cloud.template.VirtualMachineTemplate; import com.cloud.test.PodZoneConfig; import com.cloud.user.Account; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/async/AsyncJobExecutorContext.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/async/AsyncJobExecutorContext.java b/server/src/com/cloud/async/AsyncJobExecutorContext.java index 109fb53..87f421b 100644 --- a/server/src/com/cloud/async/AsyncJobExecutorContext.java +++ b/server/src/com/cloud/async/AsyncJobExecutorContext.java @@ -22,8 +22,8 @@ import com.cloud.event.dao.EventDao; import com.cloud.network.NetworkManager; import com.cloud.network.dao.IPAddressDao; import com.cloud.server.ManagementServer; -import com.cloud.storage.StorageManager; import com.cloud.storage.dao.VolumeDao; +import com.cloud.storage.pool.StoragePoolManager; import com.cloud.storage.snapshot.SnapshotManager; import com.cloud.user.AccountManager; import com.cloud.user.dao.AccountDao; @@ -41,7 +41,7 @@ public interface AsyncJobExecutorContext extends Manager { public UserVmManager getVmMgr(); public SnapshotManager getSnapshotMgr(); public AccountManager getAccountMgr(); - public StorageManager getStorageMgr(); + public StoragePoolManager getStorageMgr(); public EventDao getEventDao(); public UserVmDao getVmDao(); public AccountDao getAccountDao(); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/async/AsyncJobExecutorContextImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/async/AsyncJobExecutorContextImpl.java b/server/src/com/cloud/async/AsyncJobExecutorContextImpl.java index 5676b7c..c7158f6 100644 --- a/server/src/com/cloud/async/AsyncJobExecutorContextImpl.java +++ b/server/src/com/cloud/async/AsyncJobExecutorContextImpl.java @@ -27,8 +27,8 @@ import com.cloud.event.dao.EventDao; import com.cloud.network.NetworkManager; import com.cloud.network.dao.IPAddressDao; import com.cloud.server.ManagementServer; -import com.cloud.storage.StorageManager; import com.cloud.storage.dao.VolumeDao; +import com.cloud.storage.pool.StoragePoolManager; import com.cloud.storage.snapshot.SnapshotManager; import com.cloud.user.AccountManager; import com.cloud.user.dao.AccountDao; @@ -48,7 +48,7 @@ public class AsyncJobExecutorContextImpl implements AsyncJobExecutorContext { private UserVmManager _vmMgr; private SnapshotManager _snapMgr; private AccountManager _accountMgr; - private StorageManager _storageMgr; + private StoragePoolManager _storageMgr; private EventDao _eventDao; private UserVmDao _vmDao; private AccountDao _accountDao; @@ -82,7 +82,7 @@ public class AsyncJobExecutorContextImpl implements AsyncJobExecutorContext { } @Override - public StorageManager getStorageMgr() { + public StoragePoolManager getStorageMgr() { return _storageMgr; } @@ -179,9 +179,9 @@ public class AsyncJobExecutorContextImpl implements AsyncJobExecutorContext { throw new ConfigurationException("unable to get " + AccountManager.class.getName()); } - _storageMgr = locator.getManager(StorageManager.class); + _storageMgr = locator.getManager(StoragePoolManager.class); if (_storageMgr == null) { - throw new ConfigurationException("unable to get " + StorageManager.class.getName()); + throw new ConfigurationException("unable to get " + StoragePoolManager.class.getName()); } _eventDao = locator.getDao(EventDao.class); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/async/executor/ExtractJobResultObject.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/async/executor/ExtractJobResultObject.java b/server/src/com/cloud/async/executor/ExtractJobResultObject.java index 772f074..da01fec 100644 --- a/server/src/com/cloud/async/executor/ExtractJobResultObject.java +++ b/server/src/com/cloud/async/executor/ExtractJobResultObject.java @@ -20,8 +20,8 @@ import java.util.Date; import com.cloud.async.AsyncInstanceCreateStatus; import com.cloud.serializer.Param; -import com.cloud.storage.Volume.Type; import com.cloud.storage.upload.UploadState; +import com.cloud.storage.volume.Volume.Type; public class ExtractJobResultObject { http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java b/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java index 3972728..3271402 100755 --- a/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java +++ b/server/src/com/cloud/baremetal/BareMetalVmManagerImpl.java @@ -64,10 +64,10 @@ import com.cloud.network.Networks.TrafficType; import com.cloud.org.Grouping; import com.cloud.resource.ResourceManager; import com.cloud.service.ServiceOfferingVO; -import com.cloud.storage.Storage; -import com.cloud.storage.Storage.TemplateType; +import com.cloud.storage.pool.Storage; +import com.cloud.storage.pool.Storage.TemplateType; +import com.cloud.storage.volume.Volume; import com.cloud.storage.VMTemplateVO; -import com.cloud.storage.Volume; import com.cloud.template.TemplateAdapter; import com.cloud.template.TemplateAdapter.TemplateAdapterType; import com.cloud.template.TemplateProfile; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/capacity/CapacityManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/capacity/CapacityManagerImpl.java b/server/src/com/cloud/capacity/CapacityManagerImpl.java index c410109..701bb9e 100755 --- a/server/src/com/cloud/capacity/CapacityManagerImpl.java +++ b/server/src/com/cloud/capacity/CapacityManagerImpl.java @@ -54,7 +54,6 @@ import com.cloud.resource.ResourceManager; import com.cloud.resource.ServerResource; import com.cloud.service.ServiceOfferingVO; import com.cloud.service.dao.ServiceOfferingDao; -import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePoolVO; import com.cloud.storage.VMTemplateHostVO; import com.cloud.storage.VMTemplateStoragePoolVO; @@ -62,6 +61,7 @@ import com.cloud.storage.VMTemplateSwiftVO; import com.cloud.storage.VMTemplateVO; import com.cloud.storage.dao.VMTemplatePoolDao; import com.cloud.storage.dao.VolumeDao; +import com.cloud.storage.pool.StoragePoolManager; import com.cloud.storage.swift.SwiftManager; import com.cloud.utils.DateUtil; import com.cloud.utils.NumbersUtil; @@ -101,7 +101,7 @@ public class CapacityManagerImpl implements CapacityManager, StateListener<State @Inject ResourceManager _resourceMgr; @Inject - StorageManager _storageMgr; + StoragePoolManager _storageMgr; @Inject SwiftManager _swiftMgr; @Inject http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/capacity/StorageCapacityListener.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/capacity/StorageCapacityListener.java b/server/src/com/cloud/capacity/StorageCapacityListener.java index 384bdb9..ca3dc48 100755 --- a/server/src/com/cloud/capacity/StorageCapacityListener.java +++ b/server/src/com/cloud/capacity/StorageCapacityListener.java @@ -32,7 +32,7 @@ import com.cloud.capacity.dao.CapacityDaoImpl; import com.cloud.exception.ConnectionException; import com.cloud.host.HostVO; import com.cloud.host.Status; -import com.cloud.storage.Storage; +import com.cloud.storage.pool.Storage; import com.cloud.utils.db.SearchCriteria; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java b/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java index a2df475..89a93b3 100755 --- a/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java +++ b/server/src/com/cloud/capacity/dao/CapacityDaoImpl.java @@ -30,9 +30,9 @@ import org.apache.log4j.Logger; import com.cloud.capacity.Capacity; import com.cloud.capacity.CapacityVO; -import com.cloud.storage.Storage; import com.cloud.storage.StoragePoolVO; import com.cloud.storage.dao.StoragePoolDaoImpl; +import com.cloud.storage.pool.Storage; import com.cloud.utils.Pair; import com.cloud.utils.StringUtils; import com.cloud.utils.component.ComponentLocator; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/configuration/Config.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/configuration/Config.java b/server/src/com/cloud/configuration/Config.java index 5ee66ff..48acb47 100755 --- a/server/src/com/cloud/configuration/Config.java +++ b/server/src/com/cloud/configuration/Config.java @@ -28,8 +28,8 @@ import com.cloud.network.NetworkManager; import com.cloud.network.router.VpcVirtualNetworkApplianceManager; import com.cloud.network.vpn.Site2SiteVpnManager; import com.cloud.server.ManagementServer; -import com.cloud.storage.StorageManager; import com.cloud.storage.allocator.StoragePoolAllocator; +import com.cloud.storage.pool.StoragePoolManager; import com.cloud.storage.secondary.SecondaryStorageVmManager; import com.cloud.storage.snapshot.SnapshotManager; import com.cloud.template.TemplateManager; @@ -74,12 +74,12 @@ public enum Config { StoragePoolMaxWaitSeconds("Storage", ManagementServer.class, Integer.class, "storage.pool.max.waitseconds", "3600", "Timeout (in seconds) to synchronize storage pool operations.", null), StorageTemplateCleanupEnabled("Storage", ManagementServer.class, Boolean.class, "storage.template.cleanup.enabled", "true", "Enable/disable template cleanup activity, only take effect when overall storage cleanup is enabled", null), PrimaryStorageDownloadWait("Storage", TemplateManager.class, Integer.class, "primary.storage.download.wait", "10800", "In second, timeout for download template to primary storage", null), - CreateVolumeFromSnapshotWait("Storage", StorageManager.class, Integer.class, "create.volume.from.snapshot.wait", "10800", "In second, timeout for creating volume from snapshot", null), - CopyVolumeWait("Storage", StorageManager.class, Integer.class, "copy.volume.wait", "10800", "In second, timeout for copy volume command", null), + CreateVolumeFromSnapshotWait("Storage", StoragePoolManager.class, Integer.class, "create.volume.from.snapshot.wait", "10800", "In second, timeout for creating volume from snapshot", null), + CopyVolumeWait("Storage", StoragePoolManager.class, Integer.class, "copy.volume.wait", "10800", "In second, timeout for copy volume command", null), CreatePrivateTemplateFromVolumeWait("Storage", UserVmManager.class, Integer.class, "create.private.template.from.volume.wait", "10800", "In second, timeout for CreatePrivateTemplateFromVolumeCommand", null), CreatePrivateTemplateFromSnapshotWait("Storage", UserVmManager.class, Integer.class, "create.private.template.from.snapshot.wait", "10800", "In second, timeout for CreatePrivateTemplateFromSnapshotCommand", null), BackupSnapshotWait( - "Storage", StorageManager.class, Integer.class, "backup.snapshot.wait", "21600", "In second, timeout for BackupSnapshotCommand", null), + "Storage", StoragePoolManager.class, Integer.class, "backup.snapshot.wait", "21600", "In second, timeout for BackupSnapshotCommand", null), // Network NetworkLBHaproxyStatsVisbility("Network", ManagementServer.class, String.class, "network.loadbalancer.haproxy.stats.visibility", "global", "Load Balancer(haproxy) stats visibilty, the value can be one of the following six parameters : global,guest-network,link-local,disabled,all,default", null), @@ -171,8 +171,8 @@ public enum Config { RouterExtraPublicNics("Advanced", NetworkManager.class, Integer.class, "router.extra.public.nics", "2", "specify extra public nics used for virtual router(up to 5)", "0-5"), StartRetry("Advanced", AgentManager.class, Integer.class, "start.retry", "10", "Number of times to retry create and start commands", null), StopRetryInterval("Advanced", HighAvailabilityManager.class, Integer.class, "stop.retry.interval", "600", "Time in seconds between retries to stop or destroy a vm" , null), - StorageCleanupInterval("Advanced", StorageManager.class, Integer.class, "storage.cleanup.interval", "86400", "The interval (in seconds) to wait before running the storage cleanup thread.", null), - StorageCleanupEnabled("Advanced", StorageManager.class, Boolean.class, "storage.cleanup.enabled", "true", "Enables/disables the storage cleanup thread.", null), + StorageCleanupInterval("Advanced", StoragePoolManager.class, Integer.class, "storage.cleanup.interval", "86400", "The interval (in seconds) to wait before running the storage cleanup thread.", null), + StorageCleanupEnabled("Advanced", StoragePoolManager.class, Boolean.class, "storage.cleanup.enabled", "true", "Enables/disables the storage cleanup thread.", null), UpdateWait("Advanced", AgentManager.class, Integer.class, "update.wait", "600", "Time to wait (in seconds) before alerting on a updating agent", null), Wait("Advanced", AgentManager.class, Integer.class, "wait", "1800", "Time in seconds to wait for control commands to return", null), XapiWait("Advanced", AgentManager.class, Integer.class, "xapiwait", "600", "Time (in seconds) to wait for XAPI to return", null), @@ -433,7 +433,7 @@ public enum Config { return "StorageAllocator"; } else if (_componentClass == NetworkManager.class) { return "NetworkManager"; - } else if (_componentClass == StorageManager.class) { + } else if (_componentClass == StoragePoolManager.class) { return "StorageManager"; } else if (_componentClass == TemplateManager.class) { return "TemplateManager"; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/configuration/DefaultComponentLibrary.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/configuration/DefaultComponentLibrary.java b/server/src/com/cloud/configuration/DefaultComponentLibrary.java index 4edd402..ef73502 100755 --- a/server/src/com/cloud/configuration/DefaultComponentLibrary.java +++ b/server/src/com/cloud/configuration/DefaultComponentLibrary.java @@ -134,7 +134,6 @@ import com.cloud.resource.ResourceManagerImpl; import com.cloud.resourcelimit.ResourceLimitManagerImpl; import com.cloud.service.dao.ServiceOfferingDaoImpl; import com.cloud.storage.OCFS2ManagerImpl; -import com.cloud.storage.StorageManagerImpl; import com.cloud.storage.dao.DiskOfferingDaoImpl; import com.cloud.storage.dao.GuestOSCategoryDaoImpl; import com.cloud.storage.dao.GuestOSDaoImpl; @@ -156,6 +155,7 @@ import com.cloud.storage.dao.VMTemplateZoneDaoImpl; import com.cloud.storage.dao.VolumeDaoImpl; import com.cloud.storage.dao.VolumeHostDaoImpl; import com.cloud.storage.download.DownloadMonitorImpl; +import com.cloud.storage.pool.StoragePoolManagerImpl; import com.cloud.storage.secondary.SecondaryStorageManagerImpl; import com.cloud.storage.snapshot.SnapshotManagerImpl; import com.cloud.storage.snapshot.SnapshotSchedulerImpl; @@ -366,7 +366,7 @@ public class DefaultComponentLibrary extends ComponentLibraryBase implements Com addManager("secondary storage vm manager", SecondaryStorageManagerImpl.class); addManager("vm manager", UserVmManagerImpl.class); addManager("upgrade manager", UpgradeManagerImpl.class); - addManager("StorageManager", StorageManagerImpl.class); + addManager("StorageManager", StoragePoolManagerImpl.class); addManager("Alert Manager", AlertManagerImpl.class); addManager("Template Manager", TemplateManagerImpl.class); addManager("Snapshot Manager", SnapshotManagerImpl.class); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java index 72d48b4..92c6042 100755 --- a/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java +++ b/server/src/com/cloud/consoleproxy/ConsoleProxyManagerImpl.java @@ -105,8 +105,6 @@ import com.cloud.resource.UnableDeleteHostException; import com.cloud.service.ServiceOfferingVO; import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.servlet.ConsoleProxyServlet; -import com.cloud.storage.StorageManager; -import com.cloud.storage.StoragePoolStatus; import com.cloud.storage.StoragePoolVO; import com.cloud.storage.VMTemplateHostVO; import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; @@ -114,6 +112,8 @@ import com.cloud.storage.VMTemplateVO; import com.cloud.storage.dao.StoragePoolDao; import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VMTemplateHostDao; +import com.cloud.storage.pool.StoragePoolManager; +import com.cloud.storage.pool.StoragePoolStatus; import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.user.User; @@ -205,7 +205,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx @Inject private AgentManager _agentMgr; @Inject - private StorageManager _storageMgr; + private StoragePoolManager _storageMgr; @Inject NetworkManager _networkMgr; @Inject http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/deploy/FirstFitPlanner.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/deploy/FirstFitPlanner.java b/server/src/com/cloud/deploy/FirstFitPlanner.java index 88b0cbd..c95751e 100755 --- a/server/src/com/cloud/deploy/FirstFitPlanner.java +++ b/server/src/com/cloud/deploy/FirstFitPlanner.java @@ -57,11 +57,8 @@ import com.cloud.org.Cluster; import com.cloud.org.Grouping; import com.cloud.resource.ResourceState; import com.cloud.storage.DiskOfferingVO; -import com.cloud.storage.StorageManager; -import com.cloud.storage.StoragePool; import com.cloud.storage.StoragePoolHostVO; import com.cloud.storage.StoragePoolVO; -import com.cloud.storage.Volume; import com.cloud.storage.VolumeVO; import com.cloud.storage.allocator.StoragePoolAllocator; import com.cloud.storage.dao.DiskOfferingDao; @@ -70,6 +67,9 @@ import com.cloud.storage.dao.GuestOSDao; import com.cloud.storage.dao.StoragePoolDao; import com.cloud.storage.dao.StoragePoolHostDao; import com.cloud.storage.dao.VolumeDao; +import com.cloud.storage.pool.StoragePool; +import com.cloud.storage.pool.StoragePoolManager; +import com.cloud.storage.volume.Volume; import com.cloud.user.AccountManager; import com.cloud.utils.NumbersUtil; import com.cloud.utils.Pair; @@ -102,7 +102,7 @@ public class FirstFitPlanner extends PlannerBase implements DeploymentPlanner { @Inject protected StoragePoolDao _storagePoolDao; @Inject protected CapacityDao _capacityDao; @Inject protected AccountManager _accountMgr; - @Inject protected StorageManager _storageMgr; + @Inject protected StoragePoolManager _storageMgr; @Inject(adapter=StoragePoolAllocator.class) protected Adapters<StoragePoolAllocator> _storagePoolAllocators; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java index 87743d5..9da5140 100755 --- a/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java +++ b/server/src/com/cloud/ha/HighAvailabilityManagerImpl.java @@ -58,9 +58,9 @@ import com.cloud.host.dao.HostDao; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.resource.ResourceManager; import com.cloud.server.ManagementServer; -import com.cloud.storage.StorageManager; import com.cloud.storage.dao.GuestOSCategoryDao; import com.cloud.storage.dao.GuestOSDao; +import com.cloud.storage.pool.StoragePoolManager; import com.cloud.user.AccountManager; import com.cloud.utils.NumbersUtil; import com.cloud.utils.component.Adapters; @@ -126,7 +126,7 @@ public class HighAvailabilityManagerImpl implements HighAvailabilityManager, Clu @Inject AlertManager _alertMgr; @Inject - StorageManager _storageMgr; + StoragePoolManager _storageMgr; @Inject GuestOSDao _guestOSDao; @Inject http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/hypervisor/CloudZonesStartupProcessor.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/hypervisor/CloudZonesStartupProcessor.java b/server/src/com/cloud/hypervisor/CloudZonesStartupProcessor.java index 5dd1694..0940fb7 100755 --- a/server/src/com/cloud/hypervisor/CloudZonesStartupProcessor.java +++ b/server/src/com/cloud/hypervisor/CloudZonesStartupProcessor.java @@ -47,7 +47,7 @@ import com.cloud.host.Host.Type; import com.cloud.host.HostVO; import com.cloud.host.dao.HostDao; import com.cloud.hypervisor.Hypervisor.HypervisorType; -import com.cloud.storage.Storage; +import com.cloud.storage.pool.Storage; import com.cloud.utils.component.Inject; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.net.MacAddress; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java index 8202511..609516d 100755 --- a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java +++ b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java @@ -179,11 +179,11 @@ import com.cloud.service.ServiceOfferingVO; import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.storage.GuestOSVO; import com.cloud.storage.VMTemplateVO; -import com.cloud.storage.Volume.Type; import com.cloud.storage.VolumeVO; import com.cloud.storage.dao.GuestOSDao; import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VolumeDao; +import com.cloud.storage.volume.Volume.Type; import com.cloud.user.Account; import com.cloud.user.AccountManager; import com.cloud.user.User; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/resource/ResourceManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java index 14b5df5..54d0c40 100755 --- a/server/src/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/com/cloud/resource/ResourceManagerImpl.java @@ -107,12 +107,8 @@ import com.cloud.org.Grouping.AllocationState; import com.cloud.org.Managed; import com.cloud.service.ServiceOfferingVO; import com.cloud.storage.GuestOSCategoryVO; -import com.cloud.storage.StorageManager; -import com.cloud.storage.StoragePool; import com.cloud.storage.StoragePoolHostVO; -import com.cloud.storage.StoragePoolStatus; import com.cloud.storage.StoragePoolVO; -import com.cloud.storage.StorageService; import com.cloud.storage.Swift; import com.cloud.storage.SwiftVO; import com.cloud.storage.VMTemplateVO; @@ -120,6 +116,10 @@ import com.cloud.storage.dao.GuestOSCategoryDao; import com.cloud.storage.dao.StoragePoolDao; import com.cloud.storage.dao.StoragePoolHostDao; import com.cloud.storage.dao.VMTemplateDao; +import com.cloud.storage.pool.StoragePool; +import com.cloud.storage.pool.StoragePoolManager; +import com.cloud.storage.pool.StoragePoolService; +import com.cloud.storage.pool.StoragePoolStatus; import com.cloud.storage.secondary.SecondaryStorageVmManager; import com.cloud.storage.swift.SwiftManager; import com.cloud.template.VirtualMachineTemplate; @@ -162,7 +162,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma @Inject AgentManager _agentMgr; @Inject - StorageManager _storageMgr; + StoragePoolManager _storageMgr; @Inject protected SecondaryStorageVmManager _secondaryStorageMgr; @@ -201,7 +201,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma @Inject protected HighAvailabilityManager _haMgr; @Inject - protected StorageService _storageSvr; + protected StoragePoolService _storageSvr; @Inject(adapter = Discoverer.class) protected Adapters<? extends Discoverer> _discoverers; @Inject @@ -1760,7 +1760,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma if (storagePool != null) { if (storagePool.getStatus() == StoragePoolStatus.Up || storagePool.getStatus() == StoragePoolStatus.ErrorInMaintenance) { try { - storagePool = _storageSvr.preparePrimaryStorageForMaintenance(storagePool.getId()); + storagePool = _storageSvr.prepareStorageForMaintenance(storagePool.getId()); if (storagePool == null) { s_logger.debug("Failed to set primary storage into maintenance mode"); throw new UnableDeleteHostException("Failed to set primary storage into maintenance mode"); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/server/ManagementServerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/server/ManagementServerImpl.java b/server/src/com/cloud/server/ManagementServerImpl.java index 32ed37d..4ea3ec4 100755 --- a/server/src/com/cloud/server/ManagementServerImpl.java +++ b/server/src/com/cloud/server/ManagementServerImpl.java @@ -176,15 +176,11 @@ import com.cloud.service.dao.ServiceOfferingDao; import com.cloud.storage.DiskOfferingVO; import com.cloud.storage.GuestOSCategoryVO; import com.cloud.storage.GuestOSVO; -import com.cloud.storage.Storage; -import com.cloud.storage.Storage.ImageFormat; -import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePoolVO; import com.cloud.storage.Upload; import com.cloud.storage.Upload.Mode; import com.cloud.storage.UploadVO; import com.cloud.storage.VMTemplateVO; -import com.cloud.storage.Volume; import com.cloud.storage.VolumeVO; import com.cloud.storage.dao.DiskOfferingDao; import com.cloud.storage.dao.GuestOSCategoryDao; @@ -193,10 +189,14 @@ import com.cloud.storage.dao.StoragePoolDao; import com.cloud.storage.dao.UploadDao; import com.cloud.storage.dao.VMTemplateDao; import com.cloud.storage.dao.VolumeDao; +import com.cloud.storage.pool.Storage; +import com.cloud.storage.pool.StoragePoolManager; +import com.cloud.storage.pool.Storage.ImageFormat; import com.cloud.storage.secondary.SecondaryStorageVmManager; import com.cloud.storage.snapshot.SnapshotManager; import com.cloud.storage.swift.SwiftManager; import com.cloud.storage.upload.UploadMonitor; +import com.cloud.storage.volume.Volume; import com.cloud.tags.ResourceTagVO; import com.cloud.tags.dao.ResourceTagDao; import com.cloud.template.VirtualMachineTemplate.TemplateFilter; @@ -291,7 +291,7 @@ public class ManagementServerImpl implements ManagementServer { private final StoragePoolDao _poolDao; private final NicDao _nicDao; private final NetworkDao _networkDao; - private final StorageManager _storageMgr; + private final StoragePoolManager _storageMgr; private final VirtualMachineManager _itMgr; private final HostPodDao _hostPodDao; private final VMInstanceDao _vmInstanceDao; @@ -355,7 +355,7 @@ public class ManagementServerImpl implements ManagementServer { _consoleProxyMgr = locator.getManager(ConsoleProxyManager.class); _secStorageVmMgr = locator.getManager(SecondaryStorageVmManager.class); _swiftMgr = locator.getManager(SwiftManager.class); - _storageMgr = locator.getManager(StorageManager.class); + _storageMgr = locator.getManager(StoragePoolManager.class); _publicIpAddressDao = locator.getDao(IPAddressDao.class); _consoleProxyDao = locator.getDao(ConsoleProxyDao.class); _secStorageVmDao = locator.getDao(SecondaryStorageVmDao.class); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/server/StatsCollector.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/server/StatsCollector.java b/server/src/com/cloud/server/StatsCollector.java index 08135fa..eada939 100755 --- a/server/src/com/cloud/server/StatsCollector.java +++ b/server/src/com/cloud/server/StatsCollector.java @@ -46,16 +46,16 @@ import com.cloud.host.HostVO; import com.cloud.host.Status; import com.cloud.host.dao.HostDao; import com.cloud.resource.ResourceState; -import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePoolHostVO; import com.cloud.storage.StoragePoolVO; -import com.cloud.storage.StorageStats; -import com.cloud.storage.VolumeStats; import com.cloud.storage.VolumeVO; import com.cloud.storage.dao.StoragePoolDao; import com.cloud.storage.dao.StoragePoolHostDao; import com.cloud.storage.dao.VolumeDao; +import com.cloud.storage.pool.StoragePoolManager; +import com.cloud.storage.pool.StorageStats; import com.cloud.storage.secondary.SecondaryStorageVmManager; +import com.cloud.storage.volume.VolumeStats; import com.cloud.utils.NumbersUtil; import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.concurrency.NamedThreadFactory; @@ -81,7 +81,7 @@ public class StatsCollector { private final UserVmDao _userVmDao; private final VolumeDao _volsDao; private final StoragePoolDao _storagePoolDao; - private final StorageManager _storageManager; + private final StoragePoolManager _storageManager; private final StoragePoolHostDao _storagePoolHostDao; private final SecondaryStorageVmManager _ssvmMgr; private final ResourceManager _resourceMgr; @@ -118,7 +118,7 @@ public class StatsCollector { _userVmDao = locator.getDao(UserVmDao.class); _volsDao = locator.getDao(VolumeDao.class); _storagePoolDao = locator.getDao(StoragePoolDao.class); - _storageManager = locator.getManager(StorageManager.class); + _storageManager = locator.getManager(StoragePoolManager.class); _storagePoolHostDao = locator.getDao(StoragePoolHostDao.class); _resourceMgr = locator.getManager(ResourceManager.class); http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/storage/LocalStoragePoolListener.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/storage/LocalStoragePoolListener.java b/server/src/com/cloud/storage/LocalStoragePoolListener.java index 1be7a55..3242ecc 100755 --- a/server/src/com/cloud/storage/LocalStoragePoolListener.java +++ b/server/src/com/cloud/storage/LocalStoragePoolListener.java @@ -37,6 +37,8 @@ import com.cloud.host.Status; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.storage.dao.StoragePoolDao; import com.cloud.storage.dao.StoragePoolHostDao; +import com.cloud.storage.pool.Storage; +import com.cloud.storage.pool.StoragePoolManager; import com.cloud.utils.component.Inject; import com.cloud.utils.db.DB; import com.cloud.utils.db.SearchCriteria; @@ -47,7 +49,7 @@ public class LocalStoragePoolListener implements Listener { @Inject StoragePoolDao _storagePoolDao; @Inject StoragePoolHostDao _storagePoolHostDao; @Inject CapacityDao _capacityDao; - @Inject StorageManager _storageMgr; + @Inject StoragePoolManager _storageMgr; @Override public int getTimeout() { http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/storage/OCFS2Manager.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/storage/OCFS2Manager.java b/server/src/com/cloud/storage/OCFS2Manager.java index 3f0b7fb..673b38d 100755 --- a/server/src/com/cloud/storage/OCFS2Manager.java +++ b/server/src/com/cloud/storage/OCFS2Manager.java @@ -20,6 +20,7 @@ import java.util.List; import java.util.Map; import com.cloud.host.HostVO; +import com.cloud.storage.pool.StoragePool; import com.cloud.utils.component.Manager; public interface OCFS2Manager extends Manager { http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/storage/OCFS2ManagerImpl.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/storage/OCFS2ManagerImpl.java b/server/src/com/cloud/storage/OCFS2ManagerImpl.java index a399b03..66e6610 100755 --- a/server/src/com/cloud/storage/OCFS2ManagerImpl.java +++ b/server/src/com/cloud/storage/OCFS2ManagerImpl.java @@ -39,9 +39,10 @@ import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.resource.ResourceListener; import com.cloud.resource.ResourceManager; import com.cloud.resource.ServerResource; -import com.cloud.storage.Storage.StoragePoolType; import com.cloud.storage.dao.StoragePoolDao; import com.cloud.storage.dao.StoragePoolHostDao; +import com.cloud.storage.pool.StoragePool; +import com.cloud.storage.pool.Storage.StoragePoolType; import com.cloud.utils.Ternary; import com.cloud.utils.component.Inject; import com.cloud.utils.db.SearchCriteria.Op; http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ba4913f/server/src/com/cloud/storage/StorageManager.java ---------------------------------------------------------------------- diff --git a/server/src/com/cloud/storage/StorageManager.java b/server/src/com/cloud/storage/StorageManager.java deleted file mode 100755 index 59a0221..0000000 --- a/server/src/com/cloud/storage/StorageManager.java +++ /dev/null @@ -1,240 +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 com.cloud.storage; - -import java.util.List; - -import com.cloud.agent.api.Answer; -import com.cloud.agent.api.Command; -import com.cloud.agent.manager.Commands; -import com.cloud.capacity.CapacityVO; -import com.cloud.dc.DataCenterVO; -import com.cloud.dc.HostPodVO; -import com.cloud.deploy.DeployDestination; -import com.cloud.exception.ConcurrentOperationException; -import com.cloud.exception.InsufficientStorageCapacityException; -import com.cloud.exception.StorageUnavailableException; -import com.cloud.host.Host; -import com.cloud.host.HostVO; -import com.cloud.hypervisor.Hypervisor.HypervisorType; -import com.cloud.service.ServiceOfferingVO; -import com.cloud.storage.Storage.ImageFormat; -import com.cloud.storage.Volume.Event; -import com.cloud.storage.Volume.Type; -import com.cloud.user.Account; -import com.cloud.utils.Pair; -import com.cloud.utils.component.Manager; -import com.cloud.utils.fsm.NoTransitionException; -import com.cloud.vm.DiskProfile; -import com.cloud.vm.VMInstanceVO; -import com.cloud.vm.VirtualMachine; -import com.cloud.vm.VirtualMachineProfile; - -public interface StorageManager extends StorageService, Manager { - boolean canVmRestartOnAnotherServer(long vmId); - - /** Returns the absolute path of the specified ISO - * @param templateId - the ID of the template that represents the ISO - * @param datacenterId - * @return absolute ISO path - */ - public Pair<String, String> getAbsoluteIsoPath(long templateId, long dataCenterId); - - /** - * Returns the URL of the secondary storage host - * @param zoneId - * @return URL - */ - public String getSecondaryStorageURL(long zoneId); - - /** - * Returns a comma separated list of tags for the specified storage pool - * @param poolId - * @return comma separated list of tags - */ - public String getStoragePoolTags(long poolId); - - /** - * Returns the secondary storage host - * @param zoneId - * @return secondary storage host - */ - public HostVO getSecondaryStorageHost(long zoneId); - - /** - * Returns the secondary storage host - * @param zoneId - * @return secondary storage host - */ - public VMTemplateHostVO findVmTemplateHost(long templateId, StoragePool pool); - - /** - * Moves a volume from its current storage pool to a storage pool with enough capacity in the specified zone, pod, or cluster - * @param volume - * @param destPoolDcId - * @param destPoolPodId - * @param destPoolClusterId - * @return VolumeVO - * @throws ConcurrentOperationException - */ - VolumeVO moveVolume(VolumeVO volume, long destPoolDcId, Long destPoolPodId, Long destPoolClusterId, HypervisorType dataDiskHyperType) throws ConcurrentOperationException; - - /** - * Create a volume based on the given criteria - * @param volume - * @param vm - * @param template - * @param dc - * @param pod - * @param clusterId - * @param offering - * @param diskOffering - * @param avoids - * @param size - * @param hyperType - * @return volume VO if success, null otherwise - */ - VolumeVO createVolume(VolumeVO volume, VMInstanceVO vm, VMTemplateVO template, DataCenterVO dc, HostPodVO pod, Long clusterId, - ServiceOfferingVO offering, DiskOfferingVO diskOffering, List<StoragePoolVO> avoids, long size, HypervisorType hyperType); - - /** - * Marks the specified volume as destroyed in the management server database. The expunge thread will delete the volume from its storage pool. - * @param volume - * @return - */ - boolean destroyVolume(VolumeVO volume) throws ConcurrentOperationException; - - /** Create capacity entries in the op capacity table - * @param storagePool - */ - public void createCapacityEntry(StoragePoolVO storagePool); - - /** - * Checks that the volume is stored on a shared storage pool - * @param volume - * @return true if the volume is on a shared storage pool, false otherwise - */ - boolean volumeOnSharedStoragePool(VolumeVO volume); - - Answer sendToPool(long poolId, Command cmd) throws StorageUnavailableException; - Answer sendToPool(StoragePool pool, Command cmd) throws StorageUnavailableException; - Answer[] sendToPool(long poolId, Commands cmd) throws StorageUnavailableException; - Answer[] sendToPool(StoragePool pool, Commands cmds) throws StorageUnavailableException; - Pair<Long, Answer[]> sendToPool(StoragePool pool, long[] hostIdsToTryFirst, List<Long> hostIdsToAvoid, Commands cmds) throws StorageUnavailableException; - Pair<Long, Answer> sendToPool(StoragePool pool, long[] hostIdsToTryFirst, List<Long> hostIdsToAvoid, Command cmd) throws StorageUnavailableException; - - /** - * Checks that one of the following is true: - * 1. The volume is not attached to any VM - * 2. The volume is attached to a VM that is running on a host with the KVM hypervisor, and the VM is stopped - * 3. The volume is attached to a VM that is running on a host with the XenServer hypervisor (the VM can be stopped or running) - * @return true if one of the above conditions is true - */ - boolean volumeInactive(VolumeVO volume); - - String getVmNameOnVolume(VolumeVO volume); - - /** - * Checks if a host has running VMs that are using its local storage pool. - * @return true if local storage is active on the host - */ - boolean isLocalStorageActiveOnHost(Host host); - - /** - * Cleans up storage pools by removing unused templates. - * @param recurring - true if this cleanup is part of a recurring garbage collection thread - */ - void cleanupStorage(boolean recurring); - - String getPrimaryStorageNameLabel(VolumeVO volume); - - /** - * Allocates one volume. - * @param <T> - * @param type - * @param offering - * @param name - * @param size - * @param template - * @param vm - * @param account - * @return VolumeVO a persisted volume. - */ - <T extends VMInstanceVO> DiskProfile allocateRawVolume(Type type, String name, DiskOfferingVO offering, Long size, T vm, Account owner); - <T extends VMInstanceVO> DiskProfile allocateTemplatedVolume(Type type, String name, DiskOfferingVO offering, VMTemplateVO template, T vm, Account owner); - - void createCapacityEntry(StoragePoolVO storagePool, short capacityType, long allocated); - - - void prepare(VirtualMachineProfile<? extends VirtualMachine> vm, DeployDestination dest, boolean recreate) throws StorageUnavailableException, InsufficientStorageCapacityException, ConcurrentOperationException; - - void release(VirtualMachineProfile<? extends VMInstanceVO> profile); - - void cleanupVolumes(long vmId) throws ConcurrentOperationException; - - void prepareForMigration(VirtualMachineProfile<? extends VirtualMachine> vm, DeployDestination dest); - - Answer sendToPool(StoragePool pool, long[] hostIdsToTryFirst, Command cmd) throws StorageUnavailableException; - - CapacityVO getSecondaryStorageUsedStats(Long hostId, Long zoneId); - - CapacityVO getStoragePoolUsedStats(Long poolId, Long clusterId, Long podId, Long zoneId); - - boolean createStoragePool(long hostId, StoragePoolVO pool); - - boolean delPoolFromHost(long hostId); - - HostVO getSecondaryStorageHost(long zoneId, long tmpltId); - - List<HostVO> getSecondaryStorageHosts(long zoneId); - - List<StoragePoolVO> ListByDataCenterHypervisor(long datacenterId, HypervisorType type); - - - List<VMInstanceVO> listByStoragePool(long storagePoolId); - - StoragePoolVO findLocalStorageOnHost(long hostId); - - VMTemplateHostVO getTemplateHostRef(long zoneId, long tmpltId, boolean readyOnly); - - boolean StorageMigration( - VirtualMachineProfile<? extends VirtualMachine> vm, - StoragePool destPool) throws ConcurrentOperationException; - - boolean stateTransitTo(Volume vol, Event event) - throws NoTransitionException; - - VolumeVO allocateDuplicateVolume(VolumeVO oldVol, Long templateId); - - Host updateSecondaryStorage(long secStorageId, String newUrl); - - List<Long> getUpHostsInPool(long poolId); - - void cleanupSecondaryStorage(boolean recurring); - - VolumeVO copyVolumeFromSecToPrimary(VolumeVO volume, VMInstanceVO vm, - VMTemplateVO template, DataCenterVO dc, HostPodVO pod, - Long clusterId, ServiceOfferingVO offering, - DiskOfferingVO diskOffering, List<StoragePoolVO> avoids, long size, - HypervisorType hyperType) throws NoTransitionException; - - String getSupportedImageFormatForCluster(Long clusterId); - - HypervisorType getHypervisorTypeFromFormat(ImageFormat format); - - boolean storagePoolHasEnoughSpace(List<Volume> volume, StoragePool pool); -}
