diff --git a/client/pom.xml b/client/pom.xml
index d1eeb3b0e52..222c5208534 100644
--- a/client/pom.xml
+++ b/client/pom.xml
@@ -273,7 +273,12 @@
org.apache.cloudstack
cloud-plugin-storage-image-swift
${project.version}
-
+
+
+ org.apache.cloudstack
+ cloud-plugin-storage-image-simulator
+ ${project.version}
+
org.apache.cloudstack
cloud-plugin-syslog-alerts
diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in
index 5c61b4e2529..3d5d4fab16c 100644
--- a/client/tomcatconf/applicationContext.xml.in
+++ b/client/tomcatconf/applicationContext.xml.in
@@ -17,16 +17,14 @@
under the License.
-->
@@ -613,7 +611,96 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -622,15 +709,15 @@
-
+
-
-
+
+
-
+
@@ -638,7 +725,7 @@
-
+
@@ -653,7 +740,7 @@
-
+
@@ -664,9 +751,9 @@
-
+
-
+
@@ -685,7 +772,7 @@
-
+
@@ -724,17 +811,14 @@
+
+
-
-
-
-
-
@@ -747,46 +831,24 @@
-
-
-
-
-
-
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
-
-
-
-
+
-
-
-
-
@@ -796,21 +858,18 @@
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
diff --git a/client/tomcatconf/componentContext.xml.in b/client/tomcatconf/componentContext.xml.in
index d2c2dee83dd..a149327f601 100644
--- a/client/tomcatconf/componentContext.xml.in
+++ b/client/tomcatconf/componentContext.xml.in
@@ -18,9 +18,9 @@
under the License.
-->
+
+
+-->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/client/tomcatconf/nonossComponentContext.xml.in b/client/tomcatconf/nonossComponentContext.xml.in
index 7b65e71e39d..4ea1d31b684 100644
--- a/client/tomcatconf/nonossComponentContext.xml.in
+++ b/client/tomcatconf/nonossComponentContext.xml.in
@@ -80,7 +80,6 @@
-
+-->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/client/tomcatconf/simulatorComponentContext.xml.in b/client/tomcatconf/simulatorComponentContext.xml.in
index cfe0a9af4b0..74312fe5c5e 100644
--- a/client/tomcatconf/simulatorComponentContext.xml.in
+++ b/client/tomcatconf/simulatorComponentContext.xml.in
@@ -18,17 +18,8 @@
-->
+ http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
-
-
-
@@ -47,6 +34,23 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -85,7 +89,6 @@
-
@@ -124,10 +127,6 @@
-
-
@@ -175,9 +174,6 @@
-
@@ -206,11 +202,6 @@
-
@@ -218,7 +209,8 @@
-
+
+
@@ -244,5 +236,4 @@
-
diff --git a/developer/pom.xml b/developer/pom.xml
index a680b8aa98e..e9284f44109 100644
--- a/developer/pom.xml
+++ b/developer/pom.xml
@@ -58,6 +58,12 @@
${project.version}
compile
+
+ org.apache.cloudstack
+ cloud-plugin-storage-image-simulator
+ ${project.version}
+ compile
+
install
diff --git a/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/DataMotionServiceImpl.java b/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/DataMotionServiceImpl.java
index 22de0b25279..c1cbdc772cc 100644
--- a/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/DataMotionServiceImpl.java
+++ b/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/DataMotionServiceImpl.java
@@ -18,11 +18,9 @@
*/
package org.apache.cloudstack.storage.motion;
-import java.util.List;
-import java.util.Map;
-
-import javax.inject.Inject;
-
+import com.cloud.agent.api.to.VirtualMachineTO;
+import com.cloud.host.Host;
+import com.cloud.utils.exception.CloudRuntimeException;
import org.apache.cloudstack.engine.subsystem.api.storage.CopyCommandResult;
import org.apache.cloudstack.engine.subsystem.api.storage.DataMotionService;
import org.apache.cloudstack.engine.subsystem.api.storage.DataMotionStrategy;
@@ -32,9 +30,9 @@ import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
import org.springframework.stereotype.Component;
-import com.cloud.agent.api.to.VirtualMachineTO;
-import com.cloud.host.Host;
-import com.cloud.utils.exception.CloudRuntimeException;
+import javax.inject.Inject;
+import java.util.List;
+import java.util.Map;
@Component
public class DataMotionServiceImpl implements DataMotionService {
@@ -72,4 +70,8 @@ public class DataMotionServiceImpl implements DataMotionService {
}
throw new CloudRuntimeException("can't find strategy to move data");
}
+
+ public void setStrategies(List strategies) {
+ this.strategies = strategies;
+ }
}
diff --git a/engine/storage/integration-test/test/resource/storageContext.xml b/engine/storage/integration-test/test/resource/storageContext.xml
index 9f4f102edec..f9c891a036f 100644
--- a/engine/storage/integration-test/test/resource/storageContext.xml
+++ b/engine/storage/integration-test/test/resource/storageContext.xml
@@ -81,7 +81,8 @@
-
+
+
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 b92f92f655e..71df262dc85 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;
+ }
}
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 50238a89a70..92b4e7a5479 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
@@ -18,15 +18,8 @@
*/
package org.apache.cloudstack.storage.datastore.provider;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import javax.inject.Inject;
-import javax.naming.ConfigurationException;
-
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.utils.component.ManagerBase;
import org.apache.cloudstack.api.response.StorageProviderResponse;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider.DataStoreProviderType;
@@ -38,8 +31,13 @@ import org.apache.cloudstack.storage.image.datastore.ImageStoreProviderManager;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.utils.component.ManagerBase;
+import javax.inject.Inject;
+import javax.naming.ConfigurationException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
@Component
public class DataStoreProviderManagerImpl extends ManagerBase implements DataStoreProviderManager {
@@ -50,7 +48,7 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto
@Inject
PrimaryDataStoreProviderManager primaryDataStoreProviderMgr;
@Inject
- ImageStoreProviderManager imageDataStoreProviderMgr;
+ ImageStoreProviderManager imageStoreProviderMgr;
@Override
public DataStoreProvider getDataStoreProvider(String name) {
@@ -125,7 +123,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 +166,16 @@ public class DataStoreProviderManagerImpl extends ManagerBase implements DataSto
throw new InvalidParameterValueException("Invalid parameter: " + type);
}
}
+
+ public void setProviders(List providers) {
+ this.providers = providers;
+ }
+
+ public void setPrimaryDataStoreProviderMgr(PrimaryDataStoreProviderManager primaryDataStoreProviderMgr) {
+ this.primaryDataStoreProviderMgr = primaryDataStoreProviderMgr;
+ }
+
+ public void setImageStoreProviderMgr(ImageStoreProviderManager imageDataStoreProviderMgr) {
+ this.imageStoreProviderMgr = imageDataStoreProviderMgr;
+ }
}