Group data store related beans group the storage related beans and break out vendor specific plugin implementations into componentContext factories.
Signed-off-by: Prasanna Santhanam <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/70771264 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/70771264 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/70771264 Branch: refs/heads/simulator-storage-fixes Commit: 70771264074838ddfa1d202248b5f893df355055 Parents: 888fa63 Author: Prasanna Santhanam <[email protected]> Authored: Wed Jun 26 18:59:59 2013 +0530 Committer: Prasanna Santhanam <[email protected]> Committed: Wed Jun 26 19:11:27 2013 +0530 ---------------------------------------------------------------------- client/pom.xml | 7 +- client/tomcatconf/applicationContext.xml.in | 81 +++++++++++++------- client/tomcatconf/componentContext.xml.in | 16 +++- client/tomcatconf/nonossComponentContext.xml.in | 17 +++- .../tomcatconf/simulatorComponentContext.xml.in | 47 +++++------- developer/pom.xml | 6 ++ .../test/resource/storageContext.xml | 3 +- .../storage/datastore/DataStoreManagerImpl.java | 29 +++---- .../provider/DataStoreProviderManagerImpl.java | 28 ++++++- 9 files changed, 159 insertions(+), 75 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70771264/client/pom.xml ---------------------------------------------------------------------- diff --git a/client/pom.xml b/client/pom.xml index ffa5ec7..322e6fd 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -268,7 +268,12 @@ <groupId>org.apache.cloudstack</groupId> <artifactId>cloud-plugin-storage-image-swift</artifactId> <version>${project.version}</version> - </dependency> + </dependency> + <dependency> + <groupId>org.apache.cloudstack</groupId> + <artifactId>cloud-plugin-storage-image-simulator</artifactId> + <version>${project.version}</version> + </dependency> <dependency> <groupId>org.apache.cloudstack</groupId> <artifactId>cloud-plugin-syslog-alerts</artifactId> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70771264/client/tomcatconf/applicationContext.xml.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in index 1389dd5..f91a419 100644 --- a/client/tomcatconf/applicationContext.xml.in +++ b/client/tomcatconf/applicationContext.xml.in @@ -17,16 +17,14 @@ under the License. --> <beans xmlns="http://www.springframework.org/schema/beans" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:context="http://www.springframework.org/schema/context" - xmlns:tx="http://www.springframework.org/schema/tx" - xmlns:aop="http://www.springframework.org/schema/aop" - xsi:schemaLocation="http://www.springframework.org/schema/beans + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:context="http://www.springframework.org/schema/context" + xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd - http://www.springframework.org/schema/tx - http://www.springframework.org/schema/tx/spring-tx-3.0.xsd - http://www.springframework.org/schema/aop - http://www.springframework.org/schema/aop/spring-aop-3.0.xsd + + + + http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> @@ -617,7 +615,39 @@ <bean id="OvmGuru" class="com.cloud.ovm.hypervisor.OvmGuru"> <property name="name" value="OvmGuru"/> </bean> - + + + <!--Data Store components--> + <bean id="dataMotionServiceImpl" class="org.apache.cloudstack.storage.motion.DataMotionServiceImpl" /> + <bean id="dataObjectManagerImpl" class="org.apache.cloudstack.storage.datastore.DataObjectManagerImpl" /> + <bean id="defaultEndPointSelector" class="org.apache.cloudstack.storage.endpoint.DefaultEndPointSelector" /> + <bean id="objectInDataStoreManagerImpl" class="org.apache.cloudstack.storage.datastore.ObjectInDataStoreManagerImpl" /> + + <!-- + Data Store Provider Manager + --> + <bean id="dataStoreManagerImpl" class="org.apache.cloudstack.storage.datastore.DataStoreManagerImpl"> + <property name="primaryStoreMgr"> + <ref bean="#{dataStoreProviderManager.primaryDataStoreProviderMgr}"/> + </property> + <property name="imageDataStoreMgr"> + <ref bean="#{dataStoreProviderManager.imageStoreProviderMgr}"/> + </property> + </bean> + + <bean id="dataStoreProviderManager" + class="org.apache.cloudstack.storage.datastore.provider.DataStoreProviderManagerImpl"> + <property name="primaryDataStoreProviderMgr"> + <bean id="primaryDataStoreProviderMgr" class="org.apache.cloudstack.storage.datastore.manager.PrimaryDataStoreProviderManagerImpl" /> + </property> + <property name="imageStoreProviderMgr"> + <bean id="imageStoreProviderMgr" class="org.apache.cloudstack.storage.image.manager.ImageStoreProviderManagerImpl" /> + </property> + <property name="providers"> + <ref bean="storageProviders"/> + </property> + </bean> + <!-- Managers --> @@ -689,7 +719,7 @@ <bean id="capacityManagerImpl" class="com.cloud.capacity.CapacityManagerImpl" /> <bean id="clusterFenceManagerImpl" class="com.cloud.cluster.ClusterFenceManagerImpl" /> <bean id="configurationManagerImpl" class="com.cloud.configuration.ConfigurationManagerImpl" /> - <bean id="dataStoreProviderManagerImpl" class="org.apache.cloudstack.storage.datastore.provider.DataStoreProviderManagerImpl" /> + <bean id="elasticLoadBalancerManagerImpl" class="com.cloud.network.lb.ElasticLoadBalancerManagerImpl" /> <bean id="entityManagerImpl" class="com.cloud.dao.EntityManagerImpl" /> <bean id="externalLoadBalancerUsageManagerImpl" class="com.cloud.network.ExternalLoadBalancerUsageManagerImpl" /> @@ -728,6 +758,8 @@ <bean id="vpcManagerImpl" class="com.cloud.network.vpc.VpcManagerImpl" /> <bean id="vpcVirtualNetworkApplianceManagerImpl" class="com.cloud.network.router.VpcVirtualNetworkApplianceManagerImpl" /> + + <!-- Misc components --> @@ -751,12 +783,8 @@ <bean id="consoleProxyServlet" class="com.cloud.servlet.ConsoleProxyServlet" /> <bean id="dataCenterResourceManagerImpl" class="org.apache.cloudstack.engine.datacenter.entity.api.DataCenterResourceManagerImpl" /> <bean id="dataDisk" class="org.apache.cloudstack.engine.subsystem.api.storage.type.DataDisk" /> - <bean id="dataMotionServiceImpl" class="org.apache.cloudstack.storage.motion.DataMotionServiceImpl" /> - <bean id="dataObjectManagerImpl" class="org.apache.cloudstack.storage.datastore.DataObjectManagerImpl" /> - <bean id="dataStoreManagerImpl" class="org.apache.cloudstack.storage.datastore.DataStoreManagerImpl" /> - <bean id="defaultEndPointSelector" class="org.apache.cloudstack.storage.endpoint.DefaultEndPointSelector" /> - <bean id="primaryDataStoreProviderManagerImpl" class="org.apache.cloudstack.storage.datastore.manager.PrimaryDataStoreProviderManagerImpl" /> - <bean id="imageStoreProviderManagerImpl" class="org.apache.cloudstack.storage.image.manager.ImageStoreProviderManagerImpl" /> + + <bean id="eventUtils" class="com.cloud.event.EventUtils" /> <bean id="iSCSI" class="org.apache.cloudstack.storage.datastore.type.ISCSI" /> <bean id="ISO" class="org.apache.cloudstack.storage.image.format.ISO" /> @@ -768,7 +796,7 @@ <bean id="networkFileSystem" class="org.apache.cloudstack.storage.datastore.type.NetworkFileSystem" /> <bean id="networkRestService" class="org.apache.cloudstack.engine.rest.service.api.NetworkRestService" /> <bean id="OVA" class="org.apache.cloudstack.storage.image.format.OVA" /> - <bean id="objectInDataStoreManagerImpl" class="org.apache.cloudstack.storage.datastore.ObjectInDataStoreManagerImpl" /> + <bean id="podRestService" class="org.apache.cloudstack.engine.rest.service.api.PodRestService" /> <bean id="primaryDataStoreHelper" class="org.apache.cloudstack.storage.volume.datastore.PrimaryDataStoreHelper" /> <bean id="provisioningServiceImpl" class="org.apache.cloudstack.engine.service.api.ProvisioningServiceImpl" /> @@ -800,20 +828,19 @@ <bean id="downloadMonitorImpl" class="com.cloud.storage.download.DownloadMonitorImpl" /> <bean id="lBHealthCheckManagerImpl" class="com.cloud.network.lb.LBHealthCheckManagerImpl" /> <bean id="mockAgentManagerImpl" class="com.cloud.agent.manager.MockAgentManagerImpl" /> + + <bean id="volumeManagerImpl" class="com.cloud.storage.VolumeManagerImpl" /> + <bean id="ApplicationLoadBalancerService" class="org.apache.cloudstack.network.lb.ApplicationLoadBalancerManagerImpl" /> + <bean id="InternalLoadBalancerVMManager" class="org.apache.cloudstack.network.lb.InternalLoadBalancerVMManagerImpl" /> + <bean id="StorageCacheReplacementAlgorithm" class="org.apache.cloudstack.storage.cache.manager.StorageCacheReplacementAlgorithmLRU" /> + + <!--Simulator Components--> + <!--<bean id="simulatorImageStoreProvider" class="org.apache.cloudstack.storage.datastore.provider.SimulatorImageStoreProviderImpl" />--> <bean id="mockStorageManagerImpl" class="com.cloud.agent.manager.MockStorageManagerImpl" /> <bean id="mockVmManagerImpl" class="com.cloud.agent.manager.MockVmManagerImpl" /> <bean id="mockNetworkManagerImpl" class="com.cloud.agent.manager.MockNetworkManagerImpl" /> <bean id="simulatorManagerImpl" class="com.cloud.agent.manager.SimulatorManagerImpl" /> <bean id="vMSnapshotManagerImpl" class="com.cloud.vm.snapshot.VMSnapshotManagerImpl" /> - <bean id="volumeManagerImpl" class="com.cloud.storage.VolumeManagerImpl" /> - <bean id="ClassicalPrimaryDataStoreProvider" class="org.apache.cloudstack.storage.datastore.provider.CloudStackPrimaryDataStoreProviderImpl" /> - <bean id="cloudStackImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.CloudStackImageStoreProviderImpl" /> - <bean id="s3ImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.S3ImageStoreProviderImpl" /> - <bean id="swiftImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SwiftImageStoreProviderImpl" /> - <bean id="simulatorImageStoreProvider" class="org.apache.cloudstack.storage.datastore.provider.SimulatorImageStoreProviderImpl" /> - <bean id="ApplicationLoadBalancerService" class="org.apache.cloudstack.network.lb.ApplicationLoadBalancerManagerImpl" /> - <bean id="InternalLoadBalancerVMManager" class="org.apache.cloudstack.network.lb.InternalLoadBalancerVMManagerImpl" /> - <bean id="StorageCacheReplacementAlgorithm" class="org.apache.cloudstack.storage.cache.manager.StorageCacheReplacementAlgorithmLRU" /> <!--=======================================================================================================--> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70771264/client/tomcatconf/componentContext.xml.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/componentContext.xml.in b/client/tomcatconf/componentContext.xml.in index 61bca48..75c2c7a 100644 --- a/client/tomcatconf/componentContext.xml.in +++ b/client/tomcatconf/componentContext.xml.in @@ -89,7 +89,21 @@ It determines whether or not a adapter is activated or how it is loaded in order in its managing provider, ---> +--> + <!--Storage Providers--> + <bean id="storageProviders"> + <property name="#{providers}"> + <list> + <bean id="CloudStackPrimaryDataStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.CloudStackPrimaryDataStoreProviderImpl"/> + <!--<bean id="SolidfirePrimaryDataStoreProvider" class="org.apache.cloudstack.storage.datastore.provider.SolidfirePrimaryDataStoreProvider"/>--> + <!--<bean id="SamplePrimaryDataStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SamplePrimaryDatastoreProviderImpl"/>--> + <bean id="CloudStackImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.CloudStackImageStoreProviderImpl"/> + <bean id="S3ImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.S3ImageStoreProviderImpl"/> + <bean id="SwiftImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SwiftImageStoreProviderImpl"/> + <!--<bean id="SimulatorImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SimulatorImageStoreProviderImpl"/>--> + </list> + </property> + </bean> <!-- Security adapters --> <bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList"> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70771264/client/tomcatconf/nonossComponentContext.xml.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/nonossComponentContext.xml.in b/client/tomcatconf/nonossComponentContext.xml.in index 62685e9..d88ae58 100644 --- a/client/tomcatconf/nonossComponentContext.xml.in +++ b/client/tomcatconf/nonossComponentContext.xml.in @@ -176,7 +176,22 @@ It determines whether or not a adapter is activated or how it is loaded in order in its managing provider, ---> +--> + + <!--Storage Providers--> + <bean id="storageProviders"> + <property name="#{providers}"> + <list> + <bean id="CloudStackPrimaryDataStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.CloudStackPrimaryDataStoreProviderImpl"/> + <!--<bean id="SolidfirePrimaryDataStoreProvider" class="org.apache.cloudstack.storage.datastore.provider.SolidfirePrimaryDataStoreProvider"/>--> + <!--<bean id="SamplePrimaryDataStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SamplePrimaryDatastoreProviderImpl"/>--> + <bean id="CloudStackImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.CloudStackImageStoreProviderImpl"/> + <bean id="S3ImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.S3ImageStoreProviderImpl"/> + <bean id="SwiftImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SwiftImageStoreProviderImpl"/> + <!--<bean id="SimulatorImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SimulatorImageStoreProviderImpl"/>--> + </list> + </property> + </bean> <!-- Security adapters --> <bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList"> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70771264/client/tomcatconf/simulatorComponentContext.xml.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/simulatorComponentContext.xml.in b/client/tomcatconf/simulatorComponentContext.xml.in index cfe0a9a..42f4235 100644 --- a/client/tomcatconf/simulatorComponentContext.xml.in +++ b/client/tomcatconf/simulatorComponentContext.xml.in @@ -18,17 +18,8 @@ --> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xmlns:context="http://www.springframework.org/schema/context" - xmlns:tx="http://www.springframework.org/schema/tx" - xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation="http://www.springframework.org/schema/beans - http://www.springframework.org/schema/beans/spring-beans-3.0.xsd - http://www.springframework.org/schema/tx - http://www.springframework.org/schema/tx/spring-tx-3.0.xsd - http://www.springframework.org/schema/aop - http://www.springframework.org/schema/aop/spring-aop-3.0.xsd - http://www.springframework.org/schema/context - http://www.springframework.org/schema/context/spring-context-3.0.xsd"> + http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> <!-- OSS deployment component configuration @@ -36,10 +27,6 @@ <bean id="databaseUpgradeChecker" class="com.cloud.upgrade.DatabaseUpgradeChecker"/> <bean id="configurationDaoImpl" class="com.cloud.configuration.dao.ConfigurationDaoImpl"/> - <!-- simulator components --> - <!--<bean id="SimulatorSecondaryDiscoverer" class="com.cloud.resource.SimulatorSecondaryDiscoverer">--> - <!--<property name="name" value="SecondaryStorage"/>--> - <!--</bean>--> <bean id="SimulatorDiscoverer" class="com.cloud.resource.SimulatorDiscoverer"> <property name="name" value="Simulator Agent"/> </bean> @@ -47,6 +34,21 @@ <property name="name" value="Simulator Guru"/> </bean> + <!--Storage Providers--> + <bean id="storageProviders"> + <property name="#{providers}"> + <list> + <bean id="CloudStackPrimaryDataStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.CloudStackPrimaryDataStoreProviderImpl"/> + <!--<bean id="SolidfirePrimaryDataStoreProvider" class="org.apache.cloudstack.storage.datastore.provider.SolidfirePrimaryDataStoreProvider"/>--> + <!--<bean id="SamplePrimaryDataStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SamplePrimaryDatastoreProviderImpl"/>--> + <bean id="CloudStackImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.CloudStackImageStoreProviderImpl"/> + <bean id="S3ImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.S3ImageStoreProviderImpl"/> + <bean id="SwiftImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SwiftImageStoreProviderImpl"/> + <!--<bean id="SimulatorImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SimulatorImageStoreProviderImpl"/>--> + </list> + </property> + </bean> + <!-- Managers & pluggable adapters configuration under OSS deployment --> @@ -85,7 +87,6 @@ <property name="Adapters"> <list> <ref bean="SimulatorDiscoverer"/> - <ref bean="SimulatorSecondaryDiscoverer"/> <ref bean="XcpServerDiscoverer"/> <ref bean="SecondaryStorageDiscoverer"/> <ref bean="KvmServerDiscoverer"/> @@ -124,10 +125,6 @@ <ref bean="FirstFitPlanner"/> <ref bean="UserDispersingPlanner"/> <ref bean="UserConcentratedPodPlanner"/> - - <!-- - <ref bean="BareMetalPlanner" /> - --> </list> </property> </bean> @@ -175,9 +172,6 @@ <list> <ref bean="VirtualRouter"/> <ref bean="VpcVirtualRouter"/> - <!-- - <ref bean="BareMetalDhcp"/> - --> </list> </property> </bean> @@ -206,11 +200,6 @@ <ref bean="SecurityGroupProvider"/> <ref bean="VpcVirtualRouter"/> <ref bean="InternalLbVm"/> - <!-- - <ref bean="BareMetalDhcp"/> - <ref bean="BareMetalPxe"/> - <ref bean="BareMetalUserdata"/> - --> </list> </property> </bean> @@ -218,7 +207,8 @@ <!-- Image Store --> - <!--<bean id="simulatorImageStoreProvider" class="org.apache.cloudstack.storage.datastore.provider.SimulatorImageStoreProviderImpl" />--> + + <bean id="GlobalLoadBalancingRulesServiceImpl" class="org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl"/> @@ -244,5 +234,4 @@ <property name="name" value="ExplicitDedicationProcessor"/> <property name="type" value="ExplicitDedication"/> </bean> - </beans> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70771264/developer/pom.xml ---------------------------------------------------------------------- diff --git a/developer/pom.xml b/developer/pom.xml index a680b8a..e9284f4 100644 --- a/developer/pom.xml +++ b/developer/pom.xml @@ -58,6 +58,12 @@ <version>${project.version}</version> <scope>compile</scope> </dependency> + <dependency> + <groupId>org.apache.cloudstack</groupId> + <artifactId>cloud-plugin-storage-image-simulator</artifactId> + <version>${project.version}</version> + <scope>compile</scope> + </dependency> </dependencies> <build> <defaultGoal>install</defaultGoal> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70771264/engine/storage/integration-test/test/resource/storageContext.xml ---------------------------------------------------------------------- diff --git a/engine/storage/integration-test/test/resource/storageContext.xml b/engine/storage/integration-test/test/resource/storageContext.xml index 9f4f102..f9c891a 100644 --- a/engine/storage/integration-test/test/resource/storageContext.xml +++ b/engine/storage/integration-test/test/resource/storageContext.xml @@ -81,7 +81,8 @@ <bean id="ClassicalPrimaryDataStoreProvider" class="org.apache.cloudstack.storage.datastore.provider.CloudStackPrimaryDataStoreProviderImpl" /> <bean id="cloudStackImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.CloudStackImageStoreProviderImpl" /> <bean id="s3ImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.S3ImageStoreProviderImpl" /> - <bean id="swiftImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SwiftImageStoreProviderImpl" /> + <bean id="swiftImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SwiftImageStoreProviderImpl" /> + <bean id="simulatorImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SimulatorImageStoreProviderImpl" /> <bean id="BAREMETAL" class="org.apache.cloudstack.storage.image.format.BAREMETAL" /> <bean id="storagePoolAutomationImpl" class="com.cloud.storage.StoragePoolAutomationImpl" /> <bean id="AccountGuestVlanMapDaoImpl" class="com.cloud.network.dao.AccountGuestVlanMapDaoImpl" /> http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70771264/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java ---------------------------------------------------------------------- diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java index b92f92f..71df262 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java +++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/DataStoreManagerImpl.java @@ -18,11 +18,9 @@ */ package org.apache.cloudstack.storage.datastore; -import java.util.List; -import java.util.Map; - -import javax.inject.Inject; - +import com.cloud.storage.DataStoreRole; +import com.cloud.utils.exception.CloudRuntimeException; +import edu.emory.mathcs.backport.java.util.Collections; import org.apache.cloudstack.engine.subsystem.api.storage.DataStore; import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; import org.apache.cloudstack.engine.subsystem.api.storage.Scope; @@ -30,22 +28,20 @@ import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope; import org.apache.cloudstack.storage.image.datastore.ImageStoreProviderManager; import org.springframework.stereotype.Component; -import com.cloud.storage.DataStoreRole; -import com.cloud.utils.exception.CloudRuntimeException; - -import edu.emory.mathcs.backport.java.util.Collections; +import javax.inject.Inject; +import java.util.List; @Component public class DataStoreManagerImpl implements DataStoreManager { @Inject - PrimaryDataStoreProviderManager primaryStorMgr; + PrimaryDataStoreProviderManager primaryStoreMgr; @Inject ImageStoreProviderManager imageDataStoreMgr; @Override public DataStore getDataStore(long storeId, DataStoreRole role) { if (role == DataStoreRole.Primary) { - return primaryStorMgr.getPrimaryDataStore(storeId); + return primaryStoreMgr.getPrimaryDataStore(storeId); } else if (role == DataStoreRole.Image) { return imageDataStoreMgr.getImageStore(storeId); } else if (role == DataStoreRole.ImageCache) { @@ -57,7 +53,7 @@ public class DataStoreManagerImpl implements DataStoreManager { @Override public DataStore getDataStore(String uuid, DataStoreRole role) { if (role == DataStoreRole.Primary) { - return primaryStorMgr.getPrimaryDataStore(uuid); + return primaryStoreMgr.getPrimaryDataStore(uuid); } else if (role == DataStoreRole.Image) { return imageDataStoreMgr.getImageStore(uuid); } @@ -81,7 +77,7 @@ public class DataStoreManagerImpl implements DataStoreManager { @Override public DataStore getPrimaryDataStore(long storeId) { - return primaryStorMgr.getPrimaryDataStore(storeId); + return primaryStoreMgr.getPrimaryDataStore(storeId); } @Override @@ -94,4 +90,11 @@ public class DataStoreManagerImpl implements DataStoreManager { return imageDataStoreMgr.listImageStores(); } + public void setPrimaryStoreMgr(PrimaryDataStoreProviderManager primaryStoreMgr) { + this.primaryStoreMgr = primaryStoreMgr; + } + + public void setImageDataStoreMgr(ImageStoreProviderManager imageDataStoreMgr) { + this.imageDataStoreMgr = imageDataStoreMgr; + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70771264/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java ---------------------------------------------------------------------- diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java index 50238a8..132cb48 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java +++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java @@ -50,7 +50,7 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto @Inject PrimaryDataStoreProviderManager primaryDataStoreProviderMgr; @Inject - ImageStoreProviderManager imageDataStoreProviderMgr; + ImageStoreProviderManager imageStoreProviderMgr; @Override public DataStoreProvider getDataStoreProvider(String name) { @@ -125,7 +125,7 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto (PrimaryDataStoreDriver) provider.getDataStoreDriver()); primaryDataStoreProviderMgr.registerHostListener(provider.getName(), provider.getHostListener()); } else if (types.contains(DataStoreProviderType.IMAGE)) { - imageDataStoreProviderMgr.registerDriver(provider.getName(), + imageStoreProviderMgr.registerDriver(provider.getName(), (ImageStoreDriver) provider.getDataStoreDriver()); } } catch (Exception e) { @@ -168,4 +168,28 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto throw new InvalidParameterValueException("Invalid parameter: " + type); } } + + public void setProviders(List<DataStoreProvider> providers) { + this.providers = providers; + } + + public List<DataStoreProvider> getProviders() { + return providers; + } + + public void setPrimaryDataStoreProviderMgr(PrimaryDataStoreProviderManager primaryDataStoreProviderMgr) { + this.primaryDataStoreProviderMgr = primaryDataStoreProviderMgr; + } + + public PrimaryDataStoreProviderManager getPrimaryDataStoreProviderMgr() { + return primaryDataStoreProviderMgr; + } + + public void setImageStoreProviderMgr(ImageStoreProviderManager imageDataStoreProviderMgr) { + this.imageStoreProviderMgr = imageDataStoreProviderMgr; + } + + public ImageStoreProviderManager getImageStoreProviderMgr() { + return imageStoreProviderMgr; + } }
