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;
+    }
 }

Reply via email to