You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ts...@apache.org on 2013/06/27 17:05:03 UTC
[1/6] git commit: updated refs/heads/simulatorStorageFixes to a6bb56b
Updated Branches:
refs/heads/simulatorStorageFixes [created] a6bb56b10
Set all templates/volumes to Ready in the simulator
Signed-off-by: Prasanna Santhanam <ts...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a6bb56b1
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a6bb56b1
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a6bb56b1
Branch: refs/heads/simulatorStorageFixes
Commit: a6bb56b10dd25b2b248644e0dbb2a0f394499cee
Parents: 373dd2b
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Thu Jun 27 20:16:42 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Thu Jun 27 20:34:26 2013 +0530
----------------------------------------------------------------------
client/tomcatconf/nonossComponentContext.xml.in | 1 -
.../driver/SimulatorImageStoreDriverImpl.java | 45 ++++++++++----------
2 files changed, 23 insertions(+), 23 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a6bb56b1/client/tomcatconf/nonossComponentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/nonossComponentContext.xml.in b/client/tomcatconf/nonossComponentContext.xml.in
index ff69b16..8c1799f 100644
--- a/client/tomcatconf/nonossComponentContext.xml.in
+++ b/client/tomcatconf/nonossComponentContext.xml.in
@@ -177,7 +177,6 @@
-->
-
<!--Motion Strategies-->
<bean id="vmwareStorageMotionStrategy" class="org.apache.cloudstack.storage.motion.VmwareStorageMotionStrategy" />
<bean id="dataMotionServiceImpl" class="org.apache.cloudstack.storage.motion.DataMotionServiceImpl">
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a6bb56b1/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java
----------------------------------------------------------------------
diff --git a/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java b/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java
index 74177ed..8816fc2 100644
--- a/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java
+++ b/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java
@@ -25,6 +25,7 @@ import com.cloud.agent.api.to.DataObjectType;
import com.cloud.agent.api.to.DataStoreTO;
import com.cloud.agent.api.to.NfsTO;
import com.cloud.storage.Storage;
+import com.cloud.storage.VMTemplateStorageResourceAssoc;
import com.cloud.storage.VMTemplateVO;
import com.cloud.storage.VolumeVO;
import com.cloud.storage.dao.VMTemplateDao;
@@ -32,6 +33,7 @@ import com.cloud.storage.dao.VolumeDao;
import org.apache.cloudstack.engine.subsystem.api.storage.CreateCmdResult;
import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine;
import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
import org.apache.cloudstack.framework.async.AsyncRpcContext;
@@ -41,6 +43,8 @@ import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
import org.apache.cloudstack.storage.image.BaseImageStoreDriverImpl;
import org.apache.cloudstack.storage.image.store.ImageStoreImpl;
+import org.apache.cloudstack.storage.to.TemplateObjectTO;
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
import javax.inject.Inject;
import java.util.Date;
@@ -93,57 +97,54 @@ public class SimulatorImageStoreDriverImpl extends BaseImageStoreDriverImpl {
protected Void createTemplateAsyncCallback(AsyncCallbackDispatcher<SimulatorImageStoreDriverImpl, DownloadAnswer> callback,
CreateContext<CreateCmdResult> context) {
- DownloadAnswer answer = callback.getResult();
DataObject obj = context.data;
DataStore store = obj.getDataStore();
+ TemplateObjectTO templateTO = (TemplateObjectTO)context.data.getTO();
TemplateDataStoreVO tmpltStoreVO = _templateStoreDao.findByStoreTemplate(store.getId(), obj.getId());
if (tmpltStoreVO != null) {
TemplateDataStoreVO updateBuilder = _templateStoreDao.createForUpdate();
- updateBuilder.setDownloadPercent(answer.getDownloadPct());
- updateBuilder.setDownloadState(answer.getDownloadStatus());
+ updateBuilder.setDownloadPercent(100);
+ updateBuilder.setDownloadState(VMTemplateStorageResourceAssoc.Status.DOWNLOADED);
updateBuilder.setLastUpdated(new Date());
- updateBuilder.setErrorString(answer.getErrorString());
- updateBuilder.setJobId(answer.getJobId());
- updateBuilder.setLocalDownloadPath(answer.getDownloadPath());
- updateBuilder.setInstallPath(answer.getInstallPath());
- updateBuilder.setSize(answer.getTemplateSize());
- updateBuilder.setPhysicalSize(answer.getTemplatePhySicalSize());
+ updateBuilder.setSize(new Long(5 * 1024L * 1024L));
+ updateBuilder.setPhysicalSize(new Long(5 * 1024L * 1024L));
+ updateBuilder.setDownloadUrl(templateTO.getOrigUrl());
+ updateBuilder.setInstallPath(templateTO.getPath());
+ updateBuilder.setTemplateId(templateTO.getId());
+ updateBuilder.setState(ObjectInDataStoreStateMachine.State.Ready);
_templateStoreDao.update(tmpltStoreVO.getId(), updateBuilder);
// update size in vm_template table
VMTemplateVO tmlptUpdater = _templateDao.createForUpdate();
- tmlptUpdater.setSize(answer.getTemplateSize());
+ tmlptUpdater.setSize(new Long(5 * 1024l * 1024l));
_templateDao.update(obj.getId(), tmlptUpdater);
}
-
return null;
}
protected Void createVolumeAsyncCallback(AsyncCallbackDispatcher<SimulatorImageStoreDriverImpl, DownloadAnswer> callback,
CreateContext<CreateCmdResult> context) {
- DownloadAnswer answer = callback.getResult();
DataObject obj = context.data;
DataStore store = obj.getDataStore();
+ VolumeObjectTO volumeTO = (VolumeObjectTO) context.data.getTO();
VolumeDataStoreVO volStoreVO = _volumeStoreDao.findByStoreVolume(store.getId(), obj.getId());
if (volStoreVO != null) {
VolumeDataStoreVO updateBuilder = _volumeStoreDao.createForUpdate();
- updateBuilder.setDownloadPercent(answer.getDownloadPct());
- updateBuilder.setDownloadState(answer.getDownloadStatus());
+ updateBuilder.setDownloadPercent(100);
+ updateBuilder.setDownloadState(VMTemplateStorageResourceAssoc.Status.DOWNLOADED);
updateBuilder.setLastUpdated(new Date());
- updateBuilder.setErrorString(answer.getErrorString());
- updateBuilder.setJobId(answer.getJobId());
- updateBuilder.setLocalDownloadPath(answer.getDownloadPath());
- updateBuilder.setInstallPath(answer.getInstallPath());
- updateBuilder.setSize(answer.getTemplateSize());
- updateBuilder.setPhysicalSize(answer.getTemplatePhySicalSize());
+ updateBuilder.setInstallPath(volumeTO.getPath());
+ updateBuilder.setVolumeId(volumeTO.getVolumeId());
+ updateBuilder.setSize(volumeTO.getSize());
+ updateBuilder.setPhysicalSize(volumeTO.getSize());
+ updateBuilder.setState(ObjectInDataStoreStateMachine.State.Ready);
_volumeStoreDao.update(volStoreVO.getId(), updateBuilder);
// update size in volume table
VolumeVO volUpdater = _volumeDao.createForUpdate();
- volUpdater.setSize(answer.getTemplateSize());
+ volUpdater.setSize(volumeTO.getSize());
_volumeDao.update(obj.getId(), volUpdater);
}
-
return null;
}
}
\ No newline at end of file
[2/6] git commit: updated refs/heads/simulatorStorageFixes to a6bb56b
Posted by ts...@apache.org.
Group storage subsystem components for spring
Breaking down storage components among oss, nonoss and simulator
contexts. The default components are loaded by
OSS - applicationContext + componentContext
NonOSS - applicationContext + nonossComponentContext
Simulator - applicationContext + simulatorComponentContext
provider beans are are selectively overridden for simpler configuration.
Where possible beans are loaded by local reference.
<list merge=true> does not unfortunately work perfectly for bean merging
the providers causing a bit of bloat. Explore for later.
Signed-off-by: Prasanna Santhanam <ts...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/2488694c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/2488694c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/2488694c
Branch: refs/heads/simulatorStorageFixes
Commit: 2488694ca8ed2ff5f54dce26e518be9c2e920aa1
Parents: 724b3f4
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Wed Jun 26 18:59:59 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Thu Jun 27 20:34:26 2013 +0530
----------------------------------------------------------------------
client/pom.xml | 7 +-
client/tomcatconf/applicationContext.xml.in | 178 +++++++++++++------
client/tomcatconf/componentContext.xml.in | 27 ++-
client/tomcatconf/nonossComponentContext.xml.in | 31 +++-
.../tomcatconf/simulatorComponentContext.xml.in | 49 +++--
developer/pom.xml | 6 +
.../storage/motion/DataMotionServiceImpl.java | 18 +-
.../test/resource/storageContext.xml | 3 +-
.../storage/datastore/DataStoreManagerImpl.java | 29 +--
.../provider/DataStoreProviderManagerImpl.java | 36 ++--
10 files changed, 255 insertions(+), 129 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2488694c/client/pom.xml
----------------------------------------------------------------------
diff --git a/client/pom.xml b/client/pom.xml
index b8182c2..7fe9dfd 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/2488694c/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in
index 1389dd5..041e040 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,96 @@
<bean id="OvmGuru" class="com.cloud.ovm.hypervisor.OvmGuru">
<property name="name" value="OvmGuru"/>
</bean>
-
+
+
+ <!--=====================================================================================================-->
+ <!-- -->
+ <!-- Storage Subsystem Components and Helpers -->
+ <!-- -->
+ <!--=====================================================================================================-->
+
+ <!--Filesystem types-->
+ <bean id="iSCSI" class="org.apache.cloudstack.storage.datastore.type.ISCSI" />
+ <bean id="networkFileSystem" class="org.apache.cloudstack.storage.datastore.type.NetworkFileSystem" />
+
+ <!--Image formats-->
+ <bean id="ISO" class="org.apache.cloudstack.storage.image.format.ISO" />
+ <bean id="OVA" class="org.apache.cloudstack.storage.image.format.OVA" />
+ <bean id="QCOW2" class="org.apache.cloudstack.storage.image.format.QCOW2" />
+ <bean id="VHD" class="org.apache.cloudstack.storage.image.format.VHD" />
+ <bean id="unknown" class="org.apache.cloudstack.storage.image.format.Unknown" />
+
+ <!--Data Store Services -->
+ <bean id="snapshotServiceImpl" class="org.apache.cloudstack.storage.snapshot.SnapshotServiceImpl"
+ depends-on="snapshotStateMachineManagerImpl, snapshotDataFactoryImpl, dataStoreManagerImpl, dataMotionServiceImpl, objectInDataStoreManagerImpl"/>
+ <bean id="templateServiceImpl" class="org.apache.cloudstack.storage.image.TemplateServiceImpl"
+ depends-on="dataObjectManagerImpl, dataStoreManagerImpl, dataMotionServiceImpl, objectInDataStoreManagerImpl, defaultEndPointSelector, templateDataFactoryImpl"/>
+ <bean id="volumeServiceImpl" class="org.apache.cloudstack.storage.volume.VolumeServiceImpl"
+ depends-on="snapshotManagerImpl, dataMotionServiceImpl"/>
+
+ <bean id="xenserverSnapshotStrategy" class="org.apache.cloudstack.storage.snapshot.XenserverSnapshotStrategy" />
+
+ <!--Data Store Factory-->
+ <bean id="templateDataFactoryImpl" class="org.apache.cloudstack.storage.image.TemplateDataFactoryImpl" />
+ <bean id="snapshotDataFactoryImpl" class="org.apache.cloudstack.storage.snapshot.SnapshotDataFactoryImpl"
+ depends-on="dataStoreManagerImpl, snapshotDataStoreDaoImpl, volumeDataFactoryImpl"/>
+ <bean id="volumeDataFactoryImpl" class="org.apache.cloudstack.storage.volume.VolumeDataFactoryImpl" />
+
+ <bean id="objectInDataStoreManagerImpl" class="org.apache.cloudstack.storage.datastore.ObjectInDataStoreManagerImpl" />
+ <bean id="dataObjectManagerImpl" class="org.apache.cloudstack.storage.datastore.DataObjectManagerImpl" />
+
+ <!--Data Store Helpers-->
+ <bean id="primaryDataStoreHelper" class="org.apache.cloudstack.storage.volume.datastore.PrimaryDataStoreHelper" />
+ <bean id="imageStoreHelper" class="org.apache.cloudstack.storage.image.datastore.ImageStoreHelper" />
+ <bean id="imageFormatHelper" class="org.apache.cloudstack.storage.image.format.ImageFormatHelper" />
+
+ <bean id="storageCacheRandomAllocator" class="org.apache.cloudstack.storage.cache.allocator.StorageCacheRandomAllocator" />
+ <bean id="storageCacheManagerImpl" class="org.apache.cloudstack.storage.cache.manager.StorageCacheManagerImpl" />
+ <bean id="StorageCacheReplacementAlgorithm" class="org.apache.cloudstack.storage.cache.manager.StorageCacheReplacementAlgorithmLRU" />
+
+ <bean id="snapshotStateMachineManagerImpl" class="org.apache.cloudstack.storage.snapshot.SnapshotStateMachineManagerImpl" />
+ <bean id="defaultEndPointSelector" class="org.apache.cloudstack.storage.endpoint.DefaultEndPointSelector" />
+
+
+ <bean id="ancientDataMotionStrategy" class="org.apache.cloudstack.storage.motion.AncientDataMotionStrategy" />
+ <bean id="xenserverStorageMotionStrategy" class="org.apache.cloudstack.storage.motion.XenServerStorageMotionStrategy" />
+
+ <!--Data Motion Services-->
+ <bean id="dataMotionServiceImpl" class="org.apache.cloudstack.storage.motion.DataMotionServiceImpl">
+ <property name="strategies">
+ <list>
+ <ref local="ancientDataMotionStrategy"/>
+ <ref local="xenserverStorageMotionStrategy"/>
+ </list>
+ </property>
+ </bean>
+
+ <!--
+ Data Store Provider Manager
+ -->
+ <bean id="primaryDataStoreProviderMgr"
+ class="org.apache.cloudstack.storage.datastore.manager.PrimaryDataStoreProviderManagerImpl"/>
+ <bean id="imageStoreProviderMgr" class="org.apache.cloudstack.storage.image.manager.ImageStoreProviderManagerImpl"/>
+
+ <bean id="dataStoreManagerImpl" class="org.apache.cloudstack.storage.datastore.DataStoreManagerImpl"
+ depends-on="dataStoreProviderManager">
+ <property name="primaryStoreMgr" ref="primaryDataStoreProviderMgr"/>
+ <property name="imageDataStoreMgr" ref="imageStoreProviderMgr"/>
+ </bean>
+
+ <bean id="CloudStackPrimaryDataStoreProviderImpl"
+ class="org.apache.cloudstack.storage.datastore.provider.CloudStackPrimaryDataStoreProviderImpl"/>
+
+ <bean id="dataStoreProviderManager"
+ class="org.apache.cloudstack.storage.datastore.provider.DataStoreProviderManagerImpl">
+ <property name="providers">
+ <list>
+ <!--Data Store Providers-->
+ <ref bean="CloudStackPrimaryDataStoreProviderImpl"/>
+ </list>
+ </property>
+ </bean>
+
<!--
Managers
-->
@@ -626,15 +713,15 @@
<property name="UserPasswordEncoders" value="#{userPasswordEncoders.Adapters}" />
<property name="SecurityCheckers" value="#{securityCheckers.Adapters}" />
</bean>
-
+
<bean id="managementServerImpl" class ="com.cloud.server.ManagementServerImpl">
<property name="UserAuthenticators" value="#{userAuthenticators.Adapters}" />
<property name="UserPasswordEncoders" value="#{userPasswordEncoders.Adapters}" />
<property name="HostAllocators" value="#{hostAllocators.Adapters}" />
- <property name="AffinityGroupProcessors" value="#{affinityProcessors.Adapters}" />
- <property name="Planners" value="#{deploymentPlanners.Adapters}" />
+ <property name="AffinityGroupProcessors" value="#{affinityProcessors.Adapters}" />
+ <property name="Planners" value="#{deploymentPlanners.Adapters}" />
</bean>
-
+
<bean id="storageManagerImpl" class="com.cloud.storage.StorageManagerImpl">
<property name="StoragePoolAllocators" value="#{storagePoolAllocators.Adapters}" />
</bean>
@@ -642,7 +729,7 @@
<bean id="FirstFitPlanner" class="com.cloud.deploy.FirstFitPlanner">
<property name="name" value="FirstFitPlanner"/>
</bean>
-
+
<bean id="resourceManagerImpl" class="com.cloud.resource.ResourceManagerImpl" >
<property name="PodAllocators" value="#{podAllocators.Adapters}" />
<property name="Discoverers" value="#{resourceDiscoverers.Adapters}" />
@@ -657,7 +744,7 @@
<property name="HostAllocators" value="#{hostAllocators.Adapters}" />
<property name="Planners" value="#{deploymentPlanners.Adapters}" />
</bean>
-
+
<bean id="networkManagerImpl" class="com.cloud.network.NetworkManagerImpl" >
<property name="NetworkGurus" value="#{networkGurus.Adapters}" />
<property name="NetworkElements" value="#{networkElements.Adapters}" />
@@ -668,9 +755,9 @@
<bean id="networkModelImpl" class="com.cloud.network.NetworkModelImpl">
<property name="NetworkElements" value="#{networkElements.Adapters}" />
</bean>
-
+
<bean id="configurationServerImpl" class="com.cloud.server.ConfigurationServerImpl" />
-
+
<bean id="clusterManagerImpl" class="com.cloud.cluster.ClusterManagerImpl" />
<bean id="clusteredAgentManagerImpl" class="com.cloud.agent.manager.ClusteredAgentManagerImpl" />
@@ -689,7 +776,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,17 +815,14 @@
<bean id="vpcManagerImpl" class="com.cloud.network.vpc.VpcManagerImpl" />
<bean id="vpcVirtualNetworkApplianceManagerImpl" class="com.cloud.network.router.VpcVirtualNetworkApplianceManagerImpl" />
+
+
<!--
Misc components
-->
<bean id="actionEventUtils" class="com.cloud.event.ActionEventUtils" />
<bean id="agentMonitor" class="com.cloud.agent.manager.AgentMonitor" />
<bean id="alertGenerator" class="com.cloud.event.AlertGenerator" />
- <bean id="ancientDataMotionStrategy" class="org.apache.cloudstack.storage.motion.AncientDataMotionStrategy" />
- <bean id="storageCacheManagerImpl" class="org.apache.cloudstack.storage.cache.manager.StorageCacheManagerImpl" />
- <bean id="storageCacheRandomAllocator" class="org.apache.cloudstack.storage.cache.allocator.StorageCacheRandomAllocator" />
- <bean id="xenserverSnapshotStrategy" class="org.apache.cloudstack.storage.snapshot.XenserverSnapshotStrategy" />
- <bean id="xenserverStorageMotionStrategy" class="org.apache.cloudstack.storage.motion.XenServerStorageMotionStrategy" />
<bean id="apiDBUtils" class="com.cloud.api.ApiDBUtils" />
<bean id="apiDiscoveryServiceImpl" class="org.apache.cloudstack.discovery.ApiDiscoveryServiceImpl" />
<bean id="apiDispatcher" class="com.cloud.api.ApiDispatcher" />
@@ -751,46 +835,24 @@
<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" />
- <bean id="templateDataFactoryImpl" class="org.apache.cloudstack.storage.image.TemplateDataFactoryImpl" />
- <bean id="imageStoreHelper" class="org.apache.cloudstack.storage.image.datastore.ImageStoreHelper" />
- <bean id="imageFormatHelper" class="org.apache.cloudstack.storage.image.format.ImageFormatHelper" />
- <bean id="templateServiceImpl" class="org.apache.cloudstack.storage.image.TemplateServiceImpl" />
+ <bean id="podRestService" class="org.apache.cloudstack.engine.rest.service.api.PodRestService" />
<bean id="iso" class="org.apache.cloudstack.engine.subsystem.api.storage.type.Iso" />
- <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" />
- <bean id="QCOW2" class="org.apache.cloudstack.storage.image.format.QCOW2" />
- <bean id="registerCompleteServlet" class="com.cloud.servlet.RegisterCompleteServlet" />
<bean id="rootDisk" class="org.apache.cloudstack.engine.subsystem.api.storage.type.RootDisk" />
- <bean id="snapshotDataFactoryImpl" class="org.apache.cloudstack.storage.snapshot.SnapshotDataFactoryImpl" />
- <bean id="snapshotServiceImpl" class="org.apache.cloudstack.storage.snapshot.SnapshotServiceImpl" />
- <bean id="snapshotStateMachineManagerImpl" class="org.apache.cloudstack.storage.snapshot.SnapshotStateMachineManagerImpl" />
+ <bean id="registerCompleteServlet" class="com.cloud.servlet.RegisterCompleteServlet" />
<bean id="statsCollector" class="com.cloud.server.StatsCollector" />
<bean id="storagePoolAutomationImpl" class="com.cloud.storage.StoragePoolAutomationImpl" />
- <bean id="unknown" class="org.apache.cloudstack.storage.image.format.Unknown" />
<bean id="usageEventUtils" class="com.cloud.event.UsageEventUtils" />
<bean id="userContextInitializer" class="com.cloud.user.UserContextInitializer" />
- <bean id="VHD" class="org.apache.cloudstack.storage.image.format.VHD" />
<bean id="vMEntityManagerImpl" class="org.apache.cloudstack.engine.cloud.entity.api.VMEntityManagerImpl" />
<bean id="virtualMachineEntityFactory" class="org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityFactory" />
<bean id="virtualMachineEntityImpl" class="org.apache.cloudstack.engine.cloud.entity.api.VirtualMachineEntityImpl" />
<bean id="virtualMachineRestService" class="org.apache.cloudstack.engine.rest.service.api.VirtualMachineRestService" />
- <bean id="volumeDataFactoryImpl" class="org.apache.cloudstack.storage.volume.VolumeDataFactoryImpl" />
<bean id="volumeRestService" class="org.apache.cloudstack.engine.rest.service.api.VolumeRestService" />
- <bean id="volumeServiceImpl" class="org.apache.cloudstack.storage.volume.VolumeServiceImpl" />
<bean id="volumeTypeHelper" class="org.apache.cloudstack.engine.subsystem.api.storage.type.VolumeTypeHelper" />
<bean id="zoneRestService" class="org.apache.cloudstack.engine.rest.service.api.ZoneRestService" />
<bean id="cloudZonesStartupProcessor" class="com.cloud.hypervisor.CloudZonesStartupProcessor" />
@@ -800,20 +862,18 @@
<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" />
+
+ <!--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/2488694c/client/tomcatconf/componentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/componentContext.xml.in b/client/tomcatconf/componentContext.xml.in
index 61bca48..e73f2e2 100644
--- a/client/tomcatconf/componentContext.xml.in
+++ b/client/tomcatconf/componentContext.xml.in
@@ -18,9 +18,9 @@
under the License.
-->
<beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ 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: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
@@ -31,6 +31,8 @@
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
+ <context:annotation-config />
+
<!--
@@ -89,7 +91,26 @@
It determines whether or not a adapter is activated or how it is loaded in order in its managing provider,
--->
+-->
+ <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"/>
+
+ <!--Storage Providers-->
+ <bean id="dataStoreProviderManager"
+ class="org.apache.cloudstack.storage.datastore.provider.DataStoreProviderManagerImpl">
+ <property name="providers">
+ <list merge="true">
+ <ref bean="CloudStackPrimaryDataStoreProviderImpl"/>
+ <ref local="CloudStackImageStoreProviderImpl"/>
+ <ref local="S3ImageStoreProviderImpl"/>
+ <ref local="SwiftImageStoreProviderImpl"/>
+ </list>
+ </property>
+ </bean>
<!-- Security adapters -->
<bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList">
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2488694c/client/tomcatconf/nonossComponentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/nonossComponentContext.xml.in b/client/tomcatconf/nonossComponentContext.xml.in
index 62685e9..ff69b16 100644
--- a/client/tomcatconf/nonossComponentContext.xml.in
+++ b/client/tomcatconf/nonossComponentContext.xml.in
@@ -80,7 +80,6 @@
<bean id="VmwareDatacenterDaoImpl" class="com.cloud.hypervisor.vmware.dao.VmwareDatacenterDaoImpl" />
<bean id="VmwareDatacenterZoneMapDaoImpl" class="com.cloud.hypervisor.vmware.dao.VmwareDatacenterZoneMapDaoImpl" />
<bean id="LegacyZoneDaoImpl" class="com.cloud.hypervisor.vmware.dao.LegacyZoneDaoImpl" />
- <bean id="vmwareStorageMotionStrategy" class="org.apache.cloudstack.storage.motion.VmwareStorageMotionStrategy"/>
<!--
Nicira support components
@@ -176,7 +175,35 @@
It determines whether or not a adapter is activated or how it is loaded in order in its managing provider,
--->
+-->
+
+
+ <!--Motion Strategies-->
+ <bean id="vmwareStorageMotionStrategy" class="org.apache.cloudstack.storage.motion.VmwareStorageMotionStrategy" />
+ <bean id="dataMotionServiceImpl" class="org.apache.cloudstack.storage.motion.DataMotionServiceImpl">
+ <property name="strategies">
+ <list>
+ <ref bean="ancientDataMotionStrategy"/>
+ <ref bean="xenserverStorageMotionStrategy"/>
+ <ref local="vmwareStorageMotionStrategy"/>
+ </list>
+ </property>
+ </bean>
+
+ <!--<bean id="SolidfirePrimaryDataStoreProvider" class="org.apache.cloudstack.storage.datastore.provider.SolidfirePrimaryDataStoreProvider"/>-->
+ <!--Storage Providers-->
+ <bean id="dataStoreProviderManager"
+ class="org.apache.cloudstack.storage.datastore.provider.DataStoreProviderManagerImpl">
+ <property name="providers">
+ <list merge="true">
+ <ref bean="CloudStackPrimaryDataStoreProviderImpl"/>
+ <ref bean="CloudStackImageStoreProviderImpl"/>
+ <ref bean="S3ImageStoreProviderImpl"/>
+ <ref bean="SwiftImageStoreProviderImpl"/>
+ <!--<ref local="SolidfirePrimaryDataStoreProvider"/>-->
+ </list>
+ </property>
+ </bean>
<!-- Security adapters -->
<bean id="userAuthenticators" class="com.cloud.utils.component.AdapterList">
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2488694c/client/tomcatconf/simulatorComponentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/simulatorComponentContext.xml.in b/client/tomcatconf/simulatorComponentContext.xml.in
index cfe0a9a..74312fe 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,23 @@
<property name="name" value="Simulator Guru"/>
</bean>
+ <bean id="SimulatorImageStoreProviderImpl"
+ class="org.apache.cloudstack.storage.datastore.provider.SimulatorImageStoreProviderImpl"/>
+
+ <!--Storage Providers-->
+ <!--<bean id="dataStoreProviderManagerChild" parent="dataStoreProviderManager">-->
+ <bean id="dataStoreProviderManager"
+ class="org.apache.cloudstack.storage.datastore.provider.DataStoreProviderManagerImpl">
+ <property name="providers">
+ <!--Override the cloudstack default image store provider to use simulator defined provider-->
+ <list>
+ <!--Data Store Providers-->
+ <ref bean="CloudStackPrimaryDataStoreProviderImpl"/>
+ <ref bean="SimulatorImageStoreProviderImpl"/>
+ </list>
+ </property>
+ </bean>
+
<!--
Managers & pluggable adapters configuration under OSS deployment
-->
@@ -85,7 +89,6 @@
<property name="Adapters">
<list>
<ref bean="SimulatorDiscoverer"/>
- <ref bean="SimulatorSecondaryDiscoverer"/>
<ref bean="XcpServerDiscoverer"/>
<ref bean="SecondaryStorageDiscoverer"/>
<ref bean="KvmServerDiscoverer"/>
@@ -124,10 +127,6 @@
<ref bean="FirstFitPlanner"/>
<ref bean="UserDispersingPlanner"/>
<ref bean="UserConcentratedPodPlanner"/>
-
- <!--
- <ref bean="BareMetalPlanner" />
- -->
</list>
</property>
</bean>
@@ -175,9 +174,6 @@
<list>
<ref bean="VirtualRouter"/>
<ref bean="VpcVirtualRouter"/>
- <!--
- <ref bean="BareMetalDhcp"/>
- -->
</list>
</property>
</bean>
@@ -206,11 +202,6 @@
<ref bean="SecurityGroupProvider"/>
<ref bean="VpcVirtualRouter"/>
<ref bean="InternalLbVm"/>
- <!--
- <ref bean="BareMetalDhcp"/>
- <ref bean="BareMetalPxe"/>
- <ref bean="BareMetalUserdata"/>
- -->
</list>
</property>
</bean>
@@ -218,7 +209,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 +236,4 @@
<property name="name" value="ExplicitDedicationProcessor"/>
<property name="type" value="ExplicitDedication"/>
</bean>
-
</beans>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2488694c/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/2488694c/engine/storage/datamotion/src/org/apache/cloudstack/storage/motion/DataMotionServiceImpl.java
----------------------------------------------------------------------
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 22de0b2..c1cbdc7 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<DataMotionStrategy> strategies) {
+ this.strategies = strategies;
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2488694c/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/2488694c/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/2488694c/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..92b4e7a 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<DataStoreProvider> providers) {
+ this.providers = providers;
+ }
+
+ public void setPrimaryDataStoreProviderMgr(PrimaryDataStoreProviderManager primaryDataStoreProviderMgr) {
+ this.primaryDataStoreProviderMgr = primaryDataStoreProviderMgr;
+ }
+
+ public void setImageStoreProviderMgr(ImageStoreProviderManager imageDataStoreProviderMgr) {
+ this.imageStoreProviderMgr = imageDataStoreProviderMgr;
+ }
}
[4/6] git commit: updated refs/heads/simulatorStorageFixes to a6bb56b
Posted by ts...@apache.org.
Fix typo in backupSnapshotCommand
Signed-off-by: Prasanna Santhanam <ts...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/99e736af
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/99e736af
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/99e736af
Branch: refs/heads/simulatorStorageFixes
Commit: 99e736afad771f0e13de91972df47b0bc8e4dfac
Parents: 3d6edd6
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Wed Jun 26 18:59:20 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Thu Jun 27 20:34:26 2013 +0530
----------------------------------------------------------------------
.../storage/resource/StorageProcessor.java | 2 +-
.../StorageSubsystemCommandHandlerBase.java | 2 +-
.../kvm/storage/KVMStorageProcessor.java | 2 +-
.../resource/SimulatorStorageProcessor.java | 2 +-
.../resource/VmwareStorageProcessor.java | 2 +-
.../xen/resource/XenServerStorageProcessor.java | 72 ++++++++++----------
6 files changed, 40 insertions(+), 42 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99e736af/core/src/com/cloud/storage/resource/StorageProcessor.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/storage/resource/StorageProcessor.java b/core/src/com/cloud/storage/resource/StorageProcessor.java
index ca441ed..f503fa3 100644
--- a/core/src/com/cloud/storage/resource/StorageProcessor.java
+++ b/core/src/com/cloud/storage/resource/StorageProcessor.java
@@ -32,7 +32,7 @@ public interface StorageProcessor {
public Answer copyVolumeFromImageCacheToPrimary(CopyCommand cmd);
public Answer copyVolumeFromPrimaryToSecondary(CopyCommand cmd);
public Answer createTemplateFromVolume(CopyCommand cmd);
- public Answer backupSnasphot(CopyCommand cmd);
+ public Answer backupSnapshot(CopyCommand cmd);
public Answer attachIso(AttachCommand cmd);
public Answer attachVolume(AttachCommand cmd);
public Answer dettachIso(DettachCommand cmd);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99e736af/core/src/com/cloud/storage/resource/StorageSubsystemCommandHandlerBase.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/storage/resource/StorageSubsystemCommandHandlerBase.java b/core/src/com/cloud/storage/resource/StorageSubsystemCommandHandlerBase.java
index 23ccd31..c0bbfbe 100644
--- a/core/src/com/cloud/storage/resource/StorageSubsystemCommandHandlerBase.java
+++ b/core/src/com/cloud/storage/resource/StorageSubsystemCommandHandlerBase.java
@@ -81,7 +81,7 @@ public class StorageSubsystemCommandHandlerBase implements StorageSubsystemComma
return processor.createTemplateFromVolume(cmd);
}
} else if (srcData.getObjectType() == DataObjectType.SNAPSHOT && srcData.getDataStore().getRole() == DataStoreRole.Primary) {
- return processor.backupSnasphot(cmd);
+ return processor.backupSnapshot(cmd);
} else if (srcData.getObjectType() == DataObjectType.SNAPSHOT && destData.getObjectType() == DataObjectType.VOLUME) {
return processor.createVolumeFromSnapshot(cmd);
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99e736af/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
index 8dce094..25c94f7 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
@@ -404,7 +404,7 @@ public class KVMStorageProcessor implements StorageProcessor {
}
@Override
- public Answer backupSnasphot(CopyCommand cmd) {
+ public Answer backupSnapshot(CopyCommand cmd) {
DataTO srcData = cmd.getSrcTO();
DataTO destData = cmd.getDestTO();
SnapshotObjectTO snapshot = (SnapshotObjectTO) srcData;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99e736af/plugins/hypervisors/simulator/src/com/cloud/resource/SimulatorStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/simulator/src/com/cloud/resource/SimulatorStorageProcessor.java b/plugins/hypervisors/simulator/src/com/cloud/resource/SimulatorStorageProcessor.java
index 16ba367..d2be9cf 100644
--- a/plugins/hypervisors/simulator/src/com/cloud/resource/SimulatorStorageProcessor.java
+++ b/plugins/hypervisors/simulator/src/com/cloud/resource/SimulatorStorageProcessor.java
@@ -94,7 +94,7 @@ public class SimulatorStorageProcessor implements StorageProcessor {
}
@Override
- public Answer backupSnasphot(CopyCommand cmd) {
+ public Answer backupSnapshot(CopyCommand cmd) {
DataTO srcData = cmd.getSrcTO();
DataTO destData = cmd.getDestTO();
SnapshotObjectTO snapshot = (SnapshotObjectTO) srcData;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99e736af/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
index d3df0f5..421fb22 100644
--- a/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/storage/resource/VmwareStorageProcessor.java
@@ -652,7 +652,7 @@ public class VmwareStorageProcessor implements StorageProcessor {
return backupUuid + "/" + backupUuid;
}
@Override
- public Answer backupSnasphot(CopyCommand cmd) {
+ public Answer backupSnapshot(CopyCommand cmd) {
SnapshotObjectTO srcSnapshot = (SnapshotObjectTO)cmd.getSrcTO();
PrimaryDataStoreTO primaryStore = (PrimaryDataStoreTO)srcSnapshot.getDataStore();
SnapshotObjectTO destSnapshot = (SnapshotObjectTO)cmd.getDestTO();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/99e736af/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
index 399e234..8164421 100644
--- a/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
+++ b/plugins/hypervisors/xen/src/com/cloud/hypervisor/xen/resource/XenServerStorageProcessor.java
@@ -18,44 +18,8 @@
*/
package com.cloud.hypervisor.xen.resource;
-import java.beans.BeanInfo;
-import java.beans.IntrospectionException;
-import java.beans.Introspector;
-import java.beans.PropertyDescriptor;
-import java.io.File;
-import java.lang.reflect.InvocationTargetException;
-import java.net.URI;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.UUID;
-
-import org.apache.cloudstack.storage.command.AttachAnswer;
-import org.apache.cloudstack.storage.command.AttachCommand;
-import org.apache.cloudstack.storage.command.AttachPrimaryDataStoreAnswer;
-import org.apache.cloudstack.storage.command.AttachPrimaryDataStoreCmd;
-import org.apache.cloudstack.storage.command.CopyCmdAnswer;
-import org.apache.cloudstack.storage.command.CopyCommand;
-import org.apache.cloudstack.storage.command.CreateObjectAnswer;
-import org.apache.cloudstack.storage.command.CreateObjectCommand;
-import org.apache.cloudstack.storage.command.DeleteCommand;
-import org.apache.cloudstack.storage.command.DettachAnswer;
-import org.apache.cloudstack.storage.command.DettachCommand;
-import org.apache.cloudstack.storage.datastore.protocol.DataStoreProtocol;
-import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
-import org.apache.cloudstack.storage.to.SnapshotObjectTO;
-import org.apache.cloudstack.storage.to.TemplateObjectTO;
-import org.apache.cloudstack.storage.to.VolumeObjectTO;
-import org.apache.log4j.Logger;
-import org.apache.xmlrpc.XmlRpcException;
-
import com.cloud.agent.api.Answer;
import com.cloud.agent.api.CreateStoragePoolCommand;
-import com.cloud.agent.api.CreateVolumeFromSnapshotAnswer;
import com.cloud.agent.api.to.DataObjectType;
import com.cloud.agent.api.to.DataStoreTO;
import com.cloud.agent.api.to.DataTO;
@@ -88,6 +52,40 @@ import com.xensource.xenapi.VBD;
import com.xensource.xenapi.VDI;
import com.xensource.xenapi.VM;
import com.xensource.xenapi.VMGuestMetrics;
+import org.apache.cloudstack.storage.command.AttachAnswer;
+import org.apache.cloudstack.storage.command.AttachCommand;
+import org.apache.cloudstack.storage.command.AttachPrimaryDataStoreAnswer;
+import org.apache.cloudstack.storage.command.AttachPrimaryDataStoreCmd;
+import org.apache.cloudstack.storage.command.CopyCmdAnswer;
+import org.apache.cloudstack.storage.command.CopyCommand;
+import org.apache.cloudstack.storage.command.CreateObjectAnswer;
+import org.apache.cloudstack.storage.command.CreateObjectCommand;
+import org.apache.cloudstack.storage.command.DeleteCommand;
+import org.apache.cloudstack.storage.command.DettachAnswer;
+import org.apache.cloudstack.storage.command.DettachCommand;
+import org.apache.cloudstack.storage.datastore.protocol.DataStoreProtocol;
+import org.apache.cloudstack.storage.to.PrimaryDataStoreTO;
+import org.apache.cloudstack.storage.to.SnapshotObjectTO;
+import org.apache.cloudstack.storage.to.TemplateObjectTO;
+import org.apache.cloudstack.storage.to.VolumeObjectTO;
+import org.apache.log4j.Logger;
+import org.apache.xmlrpc.XmlRpcException;
+
+import java.beans.BeanInfo;
+import java.beans.IntrospectionException;
+import java.beans.Introspector;
+import java.beans.PropertyDescriptor;
+import java.io.File;
+import java.lang.reflect.InvocationTargetException;
+import java.net.URI;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.UUID;
public class XenServerStorageProcessor implements StorageProcessor {
private static final Logger s_logger = Logger.getLogger(XenServerStorageProcessor.class);
@@ -1209,7 +1207,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
}
@Override
- public Answer backupSnasphot(CopyCommand cmd) {
+ public Answer backupSnapshot(CopyCommand cmd) {
Connection conn = hypervisorResource.getConnection();
DataTO srcData = cmd.getSrcTO();
DataTO cacheData = cmd.getCacheTO();
[5/6] git commit: updated refs/heads/simulatorStorageFixes to a6bb56b
Posted by ts...@apache.org.
Don't report back resource state to ResourceManagerImpl
on adding sec. storage no need to report back to resourceManager since
the sc. storage is no longer a directly connected host.
Signed-off-by: Prasanna Santhanam <ts...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/373dd2b8
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/373dd2b8
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/373dd2b8
Branch: refs/heads/simulatorStorageFixes
Commit: 373dd2b8b9db50c4c5b63ed9ddf419f1296977c1
Parents: 2488694
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Wed Jun 26 19:03:24 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Thu Jun 27 20:34:26 2013 +0530
----------------------------------------------------------------------
.../agent/manager/MockAgentManagerImpl.java | 42 ++++++++------------
.../agent/manager/MockStorageManagerImpl.java | 6 +--
2 files changed, 18 insertions(+), 30 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/373dd2b8/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java
index 8542de3..69efc83 100755
--- a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java
+++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java
@@ -16,24 +16,6 @@
// under the License.
package com.cloud.agent.manager;
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import java.util.regex.PatternSyntaxException;
-
-import javax.ejb.Local;
-import javax.inject.Inject;
-import javax.naming.ConfigurationException;
-
-import org.apache.log4j.Logger;
-
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.Answer;
import com.cloud.agent.api.CheckHealthCommand;
@@ -45,7 +27,6 @@ import com.cloud.agent.api.HostStatsEntry;
import com.cloud.agent.api.MaintainAnswer;
import com.cloud.agent.api.PingTestCommand;
import com.cloud.dc.dao.HostPodDao;
-import com.cloud.host.Host;
import com.cloud.resource.AgentResourceBase;
import com.cloud.resource.AgentRoutingResource;
import com.cloud.resource.AgentStorageResource;
@@ -62,8 +43,24 @@ import com.cloud.utils.db.DB;
import com.cloud.utils.db.Transaction;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.NetUtils;
+import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
+import javax.ejb.Local;
+import javax.inject.Inject;
+import javax.naming.ConfigurationException;
+import java.security.NoSuchAlgorithmException;
+import java.security.SecureRandom;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.UUID;
+import java.util.concurrent.ConcurrentHashMap;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+import java.util.regex.PatternSyntaxException;
+
@Component
@Local(value = { MockAgentManager.class })
public class MockAgentManagerImpl extends ManagerBase implements MockAgentManager {
@@ -195,9 +192,6 @@ public class MockAgentManagerImpl extends ManagerBase implements MockAgentManage
random = SecureRandom.getInstance("SHA1PRNG");
_executor = new ThreadPoolExecutor(1, 5, 1, TimeUnit.DAYS, new LinkedBlockingQueue<Runnable>(),
new NamedThreadFactory("Simulator-Agent-Mgr"));
- // ComponentLocator locator = ComponentLocator.getCurrentLocator();
- // _simulatorMgr = (SimulatorManager)
- // locator.getComponent(SimulatorManager.Name);
} catch (NoSuchAlgorithmException e) {
s_logger.debug("Failed to initialize random:" + e.toString());
return false;
@@ -330,10 +324,6 @@ public class MockAgentManagerImpl extends ManagerBase implements MockAgentManage
details.put("guid", this.guid);
storageResource.configure("secondaryStorage", params);
storageResource.start();
- // on the simulator the ssvm is as good as a direct
- // agent
- _resourceMgr.addHost(mockHost.getDataCenterId(), storageResource, Host.Type.SecondaryStorageVM,
- details);
_resources.put(this.guid, storageResource);
} catch (ConfigurationException e) {
s_logger.debug("Failed to load secondary storage resource: " + e.toString());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/373dd2b8/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java
index 41c56a6..870dd8e 100644
--- a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java
+++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java
@@ -889,13 +889,12 @@ public class MockStorageManagerImpl extends ManagerBase implements MockStorageMa
@Override
public void preinstallTemplates(String url, long zoneId) {
MockSecStorageVO storage = null;
- Transaction txn = Transaction.open(Transaction.SIMULATOR_DB);
try {
storage = _mockSecStorageDao.findByUrl(url);
} catch (Exception ex) {
throw new CloudRuntimeException("Unable to find sec storage at " + url, ex);
} finally {
- txn = Transaction.open(Transaction.CLOUD_DB);
+ Transaction txn = Transaction.open(Transaction.CLOUD_DB);
txn.close();
}
if (storage == null) {
@@ -916,7 +915,7 @@ public class MockStorageManagerImpl extends ManagerBase implements MockStorageMa
storage.setCapacity(DEFAULT_HOST_STORAGE_SIZE);
storage.setMountPoint(dir);
- txn = Transaction.open(Transaction.SIMULATOR_DB);
+ Transaction txn = Transaction.open(Transaction.SIMULATOR_DB);
try {
txn.start();
storage = _mockSecStorageDao.persist(storage);
@@ -974,7 +973,6 @@ public class MockStorageManagerImpl extends ManagerBase implements MockStorageMa
txn.close();
}
}
-
}
@Override
[3/6] git commit: updated refs/heads/simulatorStorageFixes to a6bb56b
Posted by ts...@apache.org.
Fix typo in class name
AsyncRpcConext -> AsyncRpcContext
Signed-off-by: Prasanna Santhanam <ts...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3d6edd62
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3d6edd62
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3d6edd62
Branch: refs/heads/simulatorStorageFixes
Commit: 3d6edd62e11d581964bef4e68ce9394b85520f0c
Parents: 8dc99d9
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Tue Jun 25 19:05:30 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Thu Jun 27 20:34:26 2013 +0530
----------------------------------------------------------------------
.../storage/image/TemplateServiceImpl.java | 7 +---
.../storage/snapshot/SnapshotServiceImpl.java | 8 ++--
.../datastore/DataObjectManagerImpl.java | 8 ++--
.../storage/image/BaseImageStoreDriverImpl.java | 41 +++++++++-----------
.../storage/volume/VolumeServiceImpl.java | 16 ++++----
.../framework/async/AsyncRpcConext.java | 30 --------------
.../framework/async/AsyncRpcContext.java | 30 ++++++++++++++
.../AsyncSampleEventDrivenStyleCaller.java | 4 +-
.../motion/VmwareStorageMotionStrategyTest.java | 4 +-
.../CloudStackImageStoreLifeCycleImpl.java | 34 ++++++++--------
.../SamplePrimaryDataStoreDriverImpl.java | 12 +++---
.../template/HypervisorTemplateAdapter.java | 4 +-
12 files changed, 95 insertions(+), 103 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3d6edd62/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java b/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
index 96c35f3..581cd43 100644
--- a/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
+++ b/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
@@ -40,16 +40,14 @@ import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreState
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.Event;
import org.apache.cloudstack.engine.subsystem.api.storage.SnapshotInfo;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateDataFactory;
-import org.apache.cloudstack.engine.subsystem.api.storage.TemplateEvent;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateInfo;
import org.apache.cloudstack.engine.subsystem.api.storage.TemplateService;
-import org.apache.cloudstack.engine.subsystem.api.storage.TemplateState;
import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
import org.apache.cloudstack.framework.async.AsyncCallFuture;
import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
-import org.apache.cloudstack.framework.async.AsyncRpcConext;
+import org.apache.cloudstack.framework.async.AsyncRpcContext;
import org.apache.cloudstack.storage.command.CommandResult;
import org.apache.cloudstack.storage.command.DeleteCommand;
import org.apache.cloudstack.storage.datastore.DataObjectManager;
@@ -84,7 +82,6 @@ import com.cloud.template.TemplateManager;
import com.cloud.user.AccountManager;
import com.cloud.user.ResourceLimitService;
import com.cloud.utils.UriUtils;
-import com.cloud.utils.fsm.NoTransitionException;
@Component
public class TemplateServiceImpl implements TemplateService {
@@ -122,7 +119,7 @@ public class TemplateServiceImpl implements TemplateService {
@Inject
TemplateManager _tmpltMgr;
- class TemplateOpContext<T> extends AsyncRpcConext<T> {
+ class TemplateOpContext<T> extends AsyncRpcContext<T> {
final TemplateObject template;
final AsyncCallFuture<TemplateApiResult> future;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3d6edd62/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotServiceImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotServiceImpl.java b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotServiceImpl.java
index 631d220..a6ee88a 100644
--- a/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotServiceImpl.java
+++ b/engine/storage/snapshot/src/org/apache/cloudstack/storage/snapshot/SnapshotServiceImpl.java
@@ -33,7 +33,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreState
import org.apache.cloudstack.framework.async.AsyncCallFuture;
import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
-import org.apache.cloudstack.framework.async.AsyncRpcConext;
+import org.apache.cloudstack.framework.async.AsyncRpcContext;
import org.apache.cloudstack.storage.command.CommandResult;
import org.apache.cloudstack.storage.command.CopyCmdAnswer;
import org.apache.cloudstack.storage.datastore.ObjectInDataStoreManager;
@@ -79,7 +79,7 @@ public class SnapshotServiceImpl implements SnapshotService {
@Inject
VMSnapshotDao _vmSnapshotDao;
- static private class CreateSnapshotContext<T> extends AsyncRpcConext<T> {
+ static private class CreateSnapshotContext<T> extends AsyncRpcContext<T> {
final SnapshotInfo snapshot;
final AsyncCallFuture<SnapshotResult> future;
@@ -91,7 +91,7 @@ public class SnapshotServiceImpl implements SnapshotService {
}
}
- static private class DeleteSnapshotContext<T> extends AsyncRpcConext<T> {
+ static private class DeleteSnapshotContext<T> extends AsyncRpcContext<T> {
final SnapshotInfo snapshot;
final AsyncCallFuture<SnapshotResult> future;
@@ -104,7 +104,7 @@ public class SnapshotServiceImpl implements SnapshotService {
}
- static private class CopySnapshotContext<T> extends AsyncRpcConext<T> {
+ static private class CopySnapshotContext<T> extends AsyncRpcContext<T> {
final SnapshotInfo srcSnapshot;
final SnapshotInfo destSnapshot;
final AsyncCallFuture<SnapshotResult> future;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3d6edd62/engine/storage/src/org/apache/cloudstack/storage/datastore/DataObjectManagerImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/datastore/DataObjectManagerImpl.java b/engine/storage/src/org/apache/cloudstack/storage/datastore/DataObjectManagerImpl.java
index fa9f993..b8e7d6d 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/datastore/DataObjectManagerImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/datastore/DataObjectManagerImpl.java
@@ -30,7 +30,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreState
import org.apache.cloudstack.engine.subsystem.api.storage.ObjectInDataStoreStateMachine.Event;
import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
-import org.apache.cloudstack.framework.async.AsyncRpcConext;
+import org.apache.cloudstack.framework.async.AsyncRpcContext;
import org.apache.cloudstack.storage.command.CommandResult;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -78,7 +78,7 @@ public class DataObjectManagerImpl implements DataObjectManager {
return objectInDataStoreMgr.get(dataObj, dataStore);
}
- class CreateContext<T> extends AsyncRpcConext<T> {
+ class CreateContext<T> extends AsyncRpcContext<T> {
final DataObject objInStrore;
public CreateContext(AsyncCompletionCallback<T> callback, DataObject objInStore) {
@@ -205,7 +205,7 @@ public class DataObjectManagerImpl implements DataObjectManager {
return null;
}
- class CopyContext<T> extends AsyncRpcConext<T> {
+ class CopyContext<T> extends AsyncRpcContext<T> {
DataObject destObj;
DataObject srcObj;
@@ -293,7 +293,7 @@ public class DataObjectManagerImpl implements DataObjectManager {
return null;
}
- class DeleteContext<T> extends AsyncRpcConext<T> {
+ class DeleteContext<T> extends AsyncRpcContext<T> {
private final DataObject obj;
public DeleteContext(AsyncCompletionCallback<T> callback, DataObject obj) {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3d6edd62/engine/storage/src/org/apache/cloudstack/storage/image/BaseImageStoreDriverImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/BaseImageStoreDriverImpl.java b/engine/storage/src/org/apache/cloudstack/storage/image/BaseImageStoreDriverImpl.java
index 93b0c2b..44933f7 100644
--- a/engine/storage/src/org/apache/cloudstack/storage/image/BaseImageStoreDriverImpl.java
+++ b/engine/storage/src/org/apache/cloudstack/storage/image/BaseImageStoreDriverImpl.java
@@ -18,10 +18,16 @@
*/
package org.apache.cloudstack.storage.image;
-import java.util.Date;
-import java.util.Set;
-import javax.inject.Inject;
-
+import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.storage.DownloadAnswer;
+import com.cloud.agent.api.to.DataObjectType;
+import com.cloud.agent.api.to.DataTO;
+import com.cloud.storage.VMTemplateStorageResourceAssoc;
+import com.cloud.storage.VMTemplateVO;
+import com.cloud.storage.VolumeVO;
+import com.cloud.storage.dao.VMTemplateDao;
+import com.cloud.storage.dao.VolumeDao;
+import com.cloud.storage.download.DownloadMonitor;
import org.apache.cloudstack.engine.subsystem.api.storage.CopyCommandResult;
import org.apache.cloudstack.engine.subsystem.api.storage.CreateCmdResult;
import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
@@ -30,31 +36,22 @@ import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
import org.apache.cloudstack.engine.subsystem.api.storage.EndPointSelector;
import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
-import org.apache.cloudstack.framework.async.AsyncRpcConext;
+import org.apache.cloudstack.framework.async.AsyncRpcContext;
import org.apache.cloudstack.storage.command.CommandResult;
import org.apache.cloudstack.storage.command.DeleteCommand;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
-import org.apache.cloudstack.storage.image.ImageStoreDriver;
import org.apache.log4j.Logger;
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.storage.DownloadAnswer;
-import com.cloud.agent.api.to.DataObjectType;
-import com.cloud.agent.api.to.DataTO;
-import com.cloud.storage.VMTemplateStorageResourceAssoc;
-import com.cloud.storage.VMTemplateVO;
-import com.cloud.storage.VolumeVO;
-import com.cloud.storage.dao.VMTemplateDao;
-import com.cloud.storage.dao.VolumeDao;
-import com.cloud.storage.download.DownloadMonitor;
+import javax.inject.Inject;
+import java.util.Date;
public abstract class BaseImageStoreDriverImpl implements ImageStoreDriver {
private static final Logger s_logger = Logger.getLogger(BaseImageStoreDriverImpl.class);
@Inject
- VMTemplateDao templateDao;
+ VMTemplateDao _templateDao;
@Inject
DownloadMonitor _downloadMonitor;
@Inject
@@ -71,7 +68,7 @@ public abstract class BaseImageStoreDriverImpl implements ImageStoreDriver {
return null;
}
- class CreateContext<T> extends AsyncRpcConext<T> {
+ class CreateContext<T> extends AsyncRpcContext<T> {
final DataObject data;
public CreateContext(AsyncCompletionCallback<T> callback, DataObject data) {
@@ -115,9 +112,9 @@ public abstract class BaseImageStoreDriverImpl implements ImageStoreDriver {
updateBuilder.setPhysicalSize(answer.getTemplatePhySicalSize());
_templateStoreDao.update(tmpltStoreVO.getId(), updateBuilder);
// update size in vm_template table
- VMTemplateVO tmlptUpdater = templateDao.createForUpdate();
+ VMTemplateVO tmlptUpdater = _templateDao.createForUpdate();
tmlptUpdater.setSize(answer.getTemplateSize());
- templateDao.update(obj.getId(), tmlptUpdater);
+ _templateDao.update(obj.getId(), tmlptUpdater);
}
AsyncCompletionCallback<CreateCmdResult> caller = context.getParentCallback();
@@ -131,9 +128,9 @@ public abstract class BaseImageStoreDriverImpl implements ImageStoreDriver {
caller.complete(result);
} else if (answer.getDownloadStatus() == VMTemplateStorageResourceAssoc.Status.DOWNLOADED) {
if (answer.getCheckSum() != null) {
- VMTemplateVO templateDaoBuilder = templateDao.createForUpdate();
+ VMTemplateVO templateDaoBuilder = _templateDao.createForUpdate();
templateDaoBuilder.setChecksum(answer.getCheckSum());
- templateDao.update(obj.getId(), templateDaoBuilder);
+ _templateDao.update(obj.getId(), templateDaoBuilder);
}
CreateCmdResult result = new CreateCmdResult(null, null);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3d6edd62/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
----------------------------------------------------------------------
diff --git a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
index e9316ff..01adf54 100644
--- a/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
+++ b/engine/storage/volume/src/org/apache/cloudstack/storage/volume/VolumeServiceImpl.java
@@ -42,7 +42,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.VolumeService;
import org.apache.cloudstack.framework.async.AsyncCallFuture;
import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
-import org.apache.cloudstack.framework.async.AsyncRpcConext;
+import org.apache.cloudstack.framework.async.AsyncRpcContext;
import org.apache.cloudstack.storage.command.CommandResult;
import org.apache.cloudstack.storage.command.DeleteCommand;
import org.apache.cloudstack.storage.datastore.DataObjectManager;
@@ -115,7 +115,7 @@ public class VolumeServiceImpl implements VolumeService {
public VolumeServiceImpl() {
}
- private class CreateVolumeContext<T> extends AsyncRpcConext<T> {
+ private class CreateVolumeContext<T> extends AsyncRpcContext<T> {
private final DataObject volume;
private final AsyncCallFuture<VolumeApiResult> future;
@@ -171,7 +171,7 @@ public class VolumeServiceImpl implements VolumeService {
return null;
}
- private class DeleteVolumeContext<T> extends AsyncRpcConext<T> {
+ private class DeleteVolumeContext<T> extends AsyncRpcContext<T> {
private final VolumeObject volume;
private final AsyncCallFuture<VolumeApiResult> future;
@@ -263,7 +263,7 @@ public class VolumeServiceImpl implements VolumeService {
return null;
}
- class CreateBaseImageContext<T> extends AsyncRpcConext<T> {
+ class CreateBaseImageContext<T> extends AsyncRpcContext<T> {
private final VolumeInfo volume;
private final PrimaryDataStore dataStore;
private final TemplateInfo srcTemplate;
@@ -386,7 +386,7 @@ public class VolumeServiceImpl implements VolumeService {
return null;
}
- private class CreateVolumeFromBaseImageContext<T> extends AsyncRpcConext<T> {
+ private class CreateVolumeFromBaseImageContext<T> extends AsyncRpcContext<T> {
private final DataObject vo;
private final AsyncCallFuture<VolumeApiResult> future;
private final DataObject templateOnStore;
@@ -541,7 +541,7 @@ public class VolumeServiceImpl implements VolumeService {
return volDao.persist(newVol);
}
- private class CopyVolumeContext<T> extends AsyncRpcConext<T> {
+ private class CopyVolumeContext<T> extends AsyncRpcContext<T> {
final VolumeInfo srcVolume;
final VolumeInfo destVolume;
final AsyncCallFuture<VolumeApiResult> future;
@@ -745,7 +745,7 @@ public class VolumeServiceImpl implements VolumeService {
return null;
}
- private class MigrateVolumeContext<T> extends AsyncRpcConext<T> {
+ private class MigrateVolumeContext<T> extends AsyncRpcContext<T> {
final VolumeInfo srcVolume;
final VolumeInfo destVolume;
final AsyncCallFuture<VolumeApiResult> future;
@@ -813,7 +813,7 @@ public class VolumeServiceImpl implements VolumeService {
return null;
}
- private class MigrateVmWithVolumesContext<T> extends AsyncRpcConext<T> {
+ private class MigrateVmWithVolumesContext<T> extends AsyncRpcContext<T> {
final Map<VolumeInfo, DataStore> volumeToPool;
final AsyncCallFuture<CommandResult> future;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3d6edd62/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncRpcConext.java
----------------------------------------------------------------------
diff --git a/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncRpcConext.java b/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncRpcConext.java
deleted file mode 100644
index 102364c..0000000
--- a/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncRpcConext.java
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package org.apache.cloudstack.framework.async;
-
-public class AsyncRpcConext<T> {
- protected final AsyncCompletionCallback<T> parentCallBack;
- public AsyncRpcConext(AsyncCompletionCallback<T> callback) {
- this.parentCallBack = callback;
- }
-
- public AsyncCompletionCallback<T> getParentCallback() {
- return this.parentCallBack;
- }
-}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3d6edd62/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncRpcContext.java
----------------------------------------------------------------------
diff --git a/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncRpcContext.java b/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncRpcContext.java
new file mode 100644
index 0000000..cdb2054
--- /dev/null
+++ b/framework/ipc/src/org/apache/cloudstack/framework/async/AsyncRpcContext.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.cloudstack.framework.async;
+
+public class AsyncRpcContext<T> {
+ protected final AsyncCompletionCallback<T> parentCallBack;
+ public AsyncRpcContext(AsyncCompletionCallback<T> callback) {
+ this.parentCallBack = callback;
+ }
+
+ public AsyncCompletionCallback<T> getParentCallback() {
+ return this.parentCallBack;
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3d6edd62/framework/ipc/test/org/apache/cloudstack/framework/codestyle/AsyncSampleEventDrivenStyleCaller.java
----------------------------------------------------------------------
diff --git a/framework/ipc/test/org/apache/cloudstack/framework/codestyle/AsyncSampleEventDrivenStyleCaller.java b/framework/ipc/test/org/apache/cloudstack/framework/codestyle/AsyncSampleEventDrivenStyleCaller.java
index db39588..d98ba65 100644
--- a/framework/ipc/test/org/apache/cloudstack/framework/codestyle/AsyncSampleEventDrivenStyleCaller.java
+++ b/framework/ipc/test/org/apache/cloudstack/framework/codestyle/AsyncSampleEventDrivenStyleCaller.java
@@ -24,7 +24,7 @@ import org.apache.cloudstack.framework.async.AsyncCallFuture;
import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
import org.apache.cloudstack.framework.async.AsyncCallbackDriver;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
-import org.apache.cloudstack.framework.async.AsyncRpcConext;
+import org.apache.cloudstack.framework.async.AsyncRpcContext;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
@@ -59,7 +59,7 @@ public class AsyncSampleEventDrivenStyleCaller {
}
}
- private class TestContext<T> extends AsyncRpcConext<T> {
+ private class TestContext<T> extends AsyncRpcContext<T> {
private boolean finished;
private String result;
/**
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3d6edd62/plugins/hypervisors/vmware/test/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategyTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/test/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategyTest.java b/plugins/hypervisors/vmware/test/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategyTest.java
index 3d2ad57..b3ea5d5 100644
--- a/plugins/hypervisors/vmware/test/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategyTest.java
+++ b/plugins/hypervisors/vmware/test/org/apache/cloudstack/storage/motion/VmwareStorageMotionStrategyTest.java
@@ -37,7 +37,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.VolumeInfo;
import org.apache.cloudstack.framework.async.AsyncCallFuture;
import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
-import org.apache.cloudstack.framework.async.AsyncRpcConext;
+import org.apache.cloudstack.framework.async.AsyncRpcContext;
import org.apache.cloudstack.storage.command.CommandResult;
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
import org.apache.cloudstack.test.utils.SpringUtils;
@@ -209,7 +209,7 @@ public class VmwareStorageMotionStrategyTest {
assertFalse("Migration across cluster didn't fail.", this.result.isSuccess());
}
- private class MockContext<T> extends AsyncRpcConext<T> {
+ private class MockContext<T> extends AsyncRpcContext<T> {
final Map<VolumeInfo, DataStore> volumeToPool;
final AsyncCallFuture<CommandResult> future;
/**
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3d6edd62/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageStoreLifeCycleImpl.java
----------------------------------------------------------------------
diff --git a/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageStoreLifeCycleImpl.java b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageStoreLifeCycleImpl.java
index 7b30575..21a5e0a 100644
--- a/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageStoreLifeCycleImpl.java
+++ b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageStoreLifeCycleImpl.java
@@ -16,14 +16,14 @@
// under the License.
package org.apache.cloudstack.storage.datastore.lifecycle;
-import java.net.URI;
-import java.net.URISyntaxException;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import javax.inject.Inject;
-
+import com.cloud.agent.api.StoragePoolInfo;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.resource.Discoverer;
+import com.cloud.resource.ResourceManager;
+import com.cloud.storage.DataStoreRole;
+import com.cloud.storage.ScopeType;
+import com.cloud.utils.UriUtils;
import org.apache.cloudstack.engine.subsystem.api.storage.ClusterScope;
import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
import org.apache.cloudstack.engine.subsystem.api.storage.HostScope;
@@ -35,14 +35,12 @@ import org.apache.cloudstack.storage.image.datastore.ImageStoreProviderManager;
import org.apache.cloudstack.storage.image.store.lifecycle.ImageStoreLifeCycle;
import org.apache.log4j.Logger;
-import com.cloud.agent.api.StoragePoolInfo;
-import com.cloud.exception.InvalidParameterValueException;
-import com.cloud.hypervisor.Hypervisor.HypervisorType;
-import com.cloud.resource.Discoverer;
-import com.cloud.resource.ResourceManager;
-import com.cloud.storage.DataStoreRole;
-import com.cloud.storage.ScopeType;
-import com.cloud.utils.UriUtils;
+import javax.inject.Inject;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
public class CloudStackImageStoreLifeCycleImpl implements ImageStoreLifeCycle {
@@ -83,7 +81,7 @@ public class CloudStackImageStoreLifeCycleImpl implements ImageStoreLifeCycle {
DataStoreRole role = (DataStoreRole) dsInfos.get("role");
Map<String, String> details = (Map<String, String>) dsInfos.get("details");
- s_logger.info("Trying to add a new host at " + url + " in data center " + dcId);
+ s_logger.info("Trying to add a new data store at " + url + " to data center " + dcId);
URI uri = null;
try {
@@ -103,7 +101,7 @@ public class CloudStackImageStoreLifeCycleImpl implements ImageStoreLifeCycle {
if (dcId == null) {
throw new InvalidParameterValueException(
- "DataCenter id is null, and cloudstack default image storehas to be associated with a data center");
+ "DataCenter id is null, and cloudstack default image store has to be associated with a data center");
}
Map<String, Object> imageStoreParameters = new HashMap<String, Object>();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3d6edd62/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java
----------------------------------------------------------------------
diff --git a/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java b/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java
index 643c933..7a8cc9f 100644
--- a/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java
+++ b/plugins/storage/volume/sample/src/org/apache/cloudstack/storage/datastore/driver/SamplePrimaryDataStoreDriverImpl.java
@@ -23,7 +23,7 @@ import com.cloud.storage.dao.StoragePoolHostDao;
import org.apache.cloudstack.engine.subsystem.api.storage.*;
import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
-import org.apache.cloudstack.framework.async.AsyncRpcConext;
+import org.apache.cloudstack.framework.async.AsyncRpcContext;
import org.apache.cloudstack.storage.command.CommandResult;
import org.apache.cloudstack.storage.command.CreateObjectCommand;
import org.apache.cloudstack.storage.datastore.DataObjectManager;
@@ -54,7 +54,7 @@ public class SamplePrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver
return null;
}
- private class CreateVolumeContext<T> extends AsyncRpcConext<T> {
+ private class CreateVolumeContext<T> extends AsyncRpcContext<T> {
private final DataObject volume;
public CreateVolumeContext(AsyncCompletionCallback<T> callback, DataObject volume) {
super(callback);
@@ -81,8 +81,8 @@ public class SamplePrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver
/*
* DeleteCommand cmd = new DeleteCommand(vo.getUri());
*
- * EndPoint ep = selector.select(vo); AsyncRpcConext<CommandResult>
- * context = new AsyncRpcConext<CommandResult>(callback);
+ * EndPoint ep = selector.select(vo); AsyncRpcContext<CommandResult>
+ * context = new AsyncRpcContext<CommandResult>(callback);
* AsyncCallbackDispatcher<SamplePrimaryDataStoreDriverImpl, Answer>
* caller = AsyncCallbackDispatcher.create(this);
* caller.setCallback(caller.getTarget().deleteCallback(null, null))
@@ -91,7 +91,7 @@ public class SamplePrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver
}
public Void deleteCallback(AsyncCallbackDispatcher<SamplePrimaryDataStoreDriverImpl, Answer> callback,
- AsyncRpcConext<CommandResult> context) {
+ AsyncRpcContext<CommandResult> context) {
CommandResult result = new CommandResult();
Answer answer = callback.getResult();
if (!answer.getResult()) {
@@ -103,7 +103,7 @@ public class SamplePrimaryDataStoreDriverImpl implements PrimaryDataStoreDriver
/*
* private class CreateVolumeFromBaseImageContext<T> extends
- * AsyncRpcConext<T> { private final VolumeObject volume;
+ * AsyncRpcContext<T> { private final VolumeObject volume;
*
* public CreateVolumeFromBaseImageContext(AsyncCompletionCallback<T>
* callback, VolumeObject volume) { super(callback); this.volume = volume; }
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3d6edd62/server/src/com/cloud/template/HypervisorTemplateAdapter.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/HypervisorTemplateAdapter.java b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
index 92148c3..f15b94d 100755
--- a/server/src/com/cloud/template/HypervisorTemplateAdapter.java
+++ b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
@@ -39,7 +39,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
import org.apache.cloudstack.framework.async.AsyncCallFuture;
import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
-import org.apache.cloudstack.framework.async.AsyncRpcConext;
+import org.apache.cloudstack.framework.async.AsyncRpcContext;
import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
import org.apache.log4j.Logger;
import org.apache.cloudstack.storage.image.datastore.ImageStoreEntity;
@@ -169,7 +169,7 @@ public class HypervisorTemplateAdapter extends TemplateAdapterBase {
return template;
}
- private class CreateTemplateContext<T> extends AsyncRpcConext<T> {
+ private class CreateTemplateContext<T> extends AsyncRpcContext<T> {
final TemplateInfo template;
public CreateTemplateContext(AsyncCompletionCallback<T> callback, TemplateInfo template) {
super(callback);
[6/6] git commit: updated refs/heads/simulatorStorageFixes to a6bb56b
Posted by ts...@apache.org.
DataStore - provider, lifecycle, driver implementations for simulator
mock implementation to manage secondary storage related operations for
the simulator.
Signed-off-by: Prasanna Santhanam <ts...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/724b3f42
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/724b3f42
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/724b3f42
Branch: refs/heads/simulatorStorageFixes
Commit: 724b3f423016546116a1a0fb499fab9f90658523
Parents: 99e736a
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Tue Jun 25 19:37:04 2013 +0530
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Thu Jun 27 20:34:26 2013 +0530
----------------------------------------------------------------------
client/tomcatconf/applicationContext.xml.in | 3 +-
.../tomcatconf/simulatorComponentContext.xml.in | 11 +-
.../agent/manager/MockStorageManagerImpl.java | 11 +-
plugins/pom.xml | 7 +-
plugins/storage/image/simulator/pom.xml | 68 +++++++++
.../driver/SimulatorImageStoreDriverImpl.java | 149 +++++++++++++++++++
.../SimulatorImageStoreLifeCycleImpl.java | 132 ++++++++++++++++
.../SimulatorImageStoreProviderImpl.java | 98 ++++++++++++
8 files changed, 463 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/724b3f42/client/tomcatconf/applicationContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/applicationContext.xml.in b/client/tomcatconf/applicationContext.xml.in
index ac1f3e4..1389dd5 100644
--- a/client/tomcatconf/applicationContext.xml.in
+++ b/client/tomcatconf/applicationContext.xml.in
@@ -809,7 +809,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="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/724b3f42/client/tomcatconf/simulatorComponentContext.xml.in
----------------------------------------------------------------------
diff --git a/client/tomcatconf/simulatorComponentContext.xml.in b/client/tomcatconf/simulatorComponentContext.xml.in
index d71cf16..cfe0a9a 100644
--- a/client/tomcatconf/simulatorComponentContext.xml.in
+++ b/client/tomcatconf/simulatorComponentContext.xml.in
@@ -37,9 +37,9 @@
<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="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>
@@ -215,6 +215,11 @@
</property>
</bean>
+ <!--
+ Image Store
+ -->
+ <!--<bean id="simulatorImageStoreProvider" class="org.apache.cloudstack.storage.datastore.provider.SimulatorImageStoreProviderImpl" />-->
+
<bean id="GlobalLoadBalancingRulesServiceImpl"
class="org.apache.cloudstack.region.gslb.GlobalLoadBalancingRulesServiceImpl"/>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/724b3f42/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java
index 21b81e1..41c56a6 100644
--- a/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java
+++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java
@@ -476,7 +476,7 @@ public class MockStorageManagerImpl extends ManagerBase implements MockStorageMa
}
Transaction txn = Transaction.open(Transaction.SIMULATOR_DB);
MockSecStorageVO storage = null;
- String nfsUrl = ((NfsTO)cmd.getDataStore()).getUrl();
+ String nfsUrl = ((NfsTO) store).getUrl();
try {
txn.start();
storage = _mockSecStorageDao.findByUrl(nfsUrl);
@@ -868,19 +868,16 @@ public class MockStorageManagerImpl extends ManagerBase implements MockStorageMa
@Override
public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
- // TODO Auto-generated method stub
return true;
}
@Override
public boolean start() {
- // TODO Auto-generated method stub
return true;
}
@Override
public boolean stop() {
- // TODO Auto-generated method stub
return true;
}
@@ -891,17 +888,13 @@ public class MockStorageManagerImpl extends ManagerBase implements MockStorageMa
@Override
public void preinstallTemplates(String url, long zoneId) {
- Transaction txn = Transaction.open(Transaction.SIMULATOR_DB);
MockSecStorageVO storage = null;
+ Transaction txn = Transaction.open(Transaction.SIMULATOR_DB);
try {
- txn.start();
storage = _mockSecStorageDao.findByUrl(url);
- txn.commit();
} catch (Exception ex) {
- txn.rollback();
throw new CloudRuntimeException("Unable to find sec storage at " + url, ex);
} finally {
- txn.close();
txn = Transaction.open(Transaction.CLOUD_DB);
txn.close();
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/724b3f42/plugins/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/pom.xml b/plugins/pom.xml
index 9ad56c6..04eb55c 100755
--- a/plugins/pom.xml
+++ b/plugins/pom.xml
@@ -35,7 +35,7 @@
<module>api/rate-limit</module>
<module>api/discovery</module>
<module>acl/static-role-based</module>
- <module>affinity-group-processors/host-anti-affinity</module>
+ <module>affinity-group-processors/host-anti-affinity</module>
<module>affinity-group-processors/explicit-dedication</module>
<module>deployment-planners/user-concentrated-pod</module>
<module>deployment-planners/user-dispersing</module>
@@ -64,7 +64,8 @@
<module>storage/image/s3</module>
<module>storage/image/swift</module>
<module>storage/image/default</module>
- <module>storage/image/sample</module>
+ <module>storage/image/sample</module>
+ <module>storage/image/simulator</module>
<module>storage/volume/solidfire</module>
<module>storage/volume/default</module>
<module>storage/volume/sample</module>
@@ -158,8 +159,8 @@
</activation>
<modules>
<module>hypervisors/simulator</module>
+ <module>storage/image/simulator</module>
</modules>
</profile>
</profiles>
-
</project>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/724b3f42/plugins/storage/image/simulator/pom.xml
----------------------------------------------------------------------
diff --git a/plugins/storage/image/simulator/pom.xml b/plugins/storage/image/simulator/pom.xml
new file mode 100644
index 0000000..d4b6838
--- /dev/null
+++ b/plugins/storage/image/simulator/pom.xml
@@ -0,0 +1,68 @@
+<!-- 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. -->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <artifactId>cloud-plugin-storage-image-simulator</artifactId>
+ <name>Apache CloudStack Plugin - Storage Image Simulator provider</name>
+ <parent>
+ <groupId>org.apache.cloudstack</groupId>
+ <artifactId>cloudstack-plugins</artifactId>
+ <version>4.2.0-SNAPSHOT</version>
+ <relativePath>../../../pom.xml</relativePath>
+ </parent>
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.cloudstack</groupId>
+ <artifactId>cloud-engine-storage</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cloudstack</groupId>
+ <artifactId>cloud-engine-storage-image</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cloudstack</groupId>
+ <artifactId>cloud-engine-storage-volume</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cloudstack</groupId>
+ <artifactId>cloud-engine-storage-snapshot</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>mysql</groupId>
+ <artifactId>mysql-connector-java</artifactId>
+ <version>${cs.mysql.version}</version>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+ <build>
+ <defaultGoal>install</defaultGoal>
+ <sourceDirectory>src</sourceDirectory>
+ <testSourceDirectory>test</testSourceDirectory>
+ <plugins>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/724b3f42/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java
----------------------------------------------------------------------
diff --git a/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java b/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java
new file mode 100644
index 0000000..74177ed
--- /dev/null
+++ b/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/driver/SimulatorImageStoreDriverImpl.java
@@ -0,0 +1,149 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cloudstack.storage.datastore.driver;
+
+
+import com.cloud.agent.api.storage.DownloadAnswer;
+import com.cloud.agent.api.to.DataObjectType;
+import com.cloud.agent.api.to.DataStoreTO;
+import com.cloud.agent.api.to.NfsTO;
+import com.cloud.storage.Storage;
+import com.cloud.storage.VMTemplateVO;
+import com.cloud.storage.VolumeVO;
+import com.cloud.storage.dao.VMTemplateDao;
+import com.cloud.storage.dao.VolumeDao;
+import org.apache.cloudstack.engine.subsystem.api.storage.CreateCmdResult;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataObject;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.framework.async.AsyncCallbackDispatcher;
+import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
+import org.apache.cloudstack.framework.async.AsyncRpcContext;
+import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.TemplateDataStoreVO;
+import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreDao;
+import org.apache.cloudstack.storage.datastore.db.VolumeDataStoreVO;
+import org.apache.cloudstack.storage.image.BaseImageStoreDriverImpl;
+import org.apache.cloudstack.storage.image.store.ImageStoreImpl;
+
+import javax.inject.Inject;
+import java.util.Date;
+
+public class SimulatorImageStoreDriverImpl extends BaseImageStoreDriverImpl {
+
+ @Inject
+ TemplateDataStoreDao _templateStoreDao;
+ @Inject
+ VMTemplateDao _templateDao;
+ @Inject
+ VolumeDao _volumeDao;
+ @Inject
+ VolumeDataStoreDao _volumeStoreDao;
+
+ @Override
+ public DataStoreTO getStoreTO(DataStore store) {
+ ImageStoreImpl nfsStore = (ImageStoreImpl) store;
+ NfsTO nfsTO = new NfsTO();
+ nfsTO.setRole(store.getRole());
+ nfsTO.setUrl(nfsStore.getUri());
+ return nfsTO;
+ }
+
+ class CreateContext<T> extends AsyncRpcContext<T> {
+ final DataObject data;
+
+ public CreateContext(AsyncCompletionCallback<T> callback, DataObject data) {
+ super(callback);
+ this.data = data;
+ }
+ }
+
+ public String createEntityExtractUrl(DataStore store, String installPath, Storage.ImageFormat format) {
+ return null;
+ }
+
+ @Override
+ public void createAsync(DataObject data, AsyncCompletionCallback<CreateCmdResult> callback) {
+ CreateContext<CreateCmdResult> context = new CreateContext<CreateCmdResult>(callback, data);
+ AsyncCallbackDispatcher<SimulatorImageStoreDriverImpl, DownloadAnswer> caller = AsyncCallbackDispatcher
+ .create(this);
+ caller.setContext(context);
+ if (data.getType() == DataObjectType.TEMPLATE) {
+ this.createTemplateAsyncCallback(caller, context);
+ } else if (data.getType() == DataObjectType.VOLUME) {
+ this.createVolumeAsyncCallback(caller, context);
+ }
+ }
+
+ protected Void createTemplateAsyncCallback(AsyncCallbackDispatcher<SimulatorImageStoreDriverImpl, DownloadAnswer> callback,
+ CreateContext<CreateCmdResult> context) {
+ DownloadAnswer answer = callback.getResult();
+ DataObject obj = context.data;
+ DataStore store = obj.getDataStore();
+
+ TemplateDataStoreVO tmpltStoreVO = _templateStoreDao.findByStoreTemplate(store.getId(), obj.getId());
+ if (tmpltStoreVO != null) {
+ TemplateDataStoreVO updateBuilder = _templateStoreDao.createForUpdate();
+ updateBuilder.setDownloadPercent(answer.getDownloadPct());
+ updateBuilder.setDownloadState(answer.getDownloadStatus());
+ updateBuilder.setLastUpdated(new Date());
+ updateBuilder.setErrorString(answer.getErrorString());
+ updateBuilder.setJobId(answer.getJobId());
+ updateBuilder.setLocalDownloadPath(answer.getDownloadPath());
+ updateBuilder.setInstallPath(answer.getInstallPath());
+ updateBuilder.setSize(answer.getTemplateSize());
+ updateBuilder.setPhysicalSize(answer.getTemplatePhySicalSize());
+ _templateStoreDao.update(tmpltStoreVO.getId(), updateBuilder);
+ // update size in vm_template table
+ VMTemplateVO tmlptUpdater = _templateDao.createForUpdate();
+ tmlptUpdater.setSize(answer.getTemplateSize());
+ _templateDao.update(obj.getId(), tmlptUpdater);
+ }
+
+ return null;
+ }
+
+ protected Void createVolumeAsyncCallback(AsyncCallbackDispatcher<SimulatorImageStoreDriverImpl, DownloadAnswer> callback,
+ CreateContext<CreateCmdResult> context) {
+ DownloadAnswer answer = callback.getResult();
+ DataObject obj = context.data;
+ DataStore store = obj.getDataStore();
+
+ VolumeDataStoreVO volStoreVO = _volumeStoreDao.findByStoreVolume(store.getId(), obj.getId());
+ if (volStoreVO != null) {
+ VolumeDataStoreVO updateBuilder = _volumeStoreDao.createForUpdate();
+ updateBuilder.setDownloadPercent(answer.getDownloadPct());
+ updateBuilder.setDownloadState(answer.getDownloadStatus());
+ updateBuilder.setLastUpdated(new Date());
+ updateBuilder.setErrorString(answer.getErrorString());
+ updateBuilder.setJobId(answer.getJobId());
+ updateBuilder.setLocalDownloadPath(answer.getDownloadPath());
+ updateBuilder.setInstallPath(answer.getInstallPath());
+ updateBuilder.setSize(answer.getTemplateSize());
+ updateBuilder.setPhysicalSize(answer.getTemplatePhySicalSize());
+ _volumeStoreDao.update(volStoreVO.getId(), updateBuilder);
+ // update size in volume table
+ VolumeVO volUpdater = _volumeDao.createForUpdate();
+ volUpdater.setSize(answer.getTemplateSize());
+ _volumeDao.update(obj.getId(), volUpdater);
+ }
+
+ return null;
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/724b3f42/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/lifecycle/SimulatorImageStoreLifeCycleImpl.java
----------------------------------------------------------------------
diff --git a/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/lifecycle/SimulatorImageStoreLifeCycleImpl.java b/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/lifecycle/SimulatorImageStoreLifeCycleImpl.java
new file mode 100644
index 0000000..beaa7a5
--- /dev/null
+++ b/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/lifecycle/SimulatorImageStoreLifeCycleImpl.java
@@ -0,0 +1,132 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cloudstack.storage.datastore.lifecycle;
+
+
+import com.cloud.agent.api.StoragePoolInfo;
+import com.cloud.exception.InvalidParameterValueException;
+import com.cloud.hypervisor.Hypervisor;
+import com.cloud.storage.DataStoreRole;
+import com.cloud.storage.ScopeType;
+import com.cloud.utils.UriUtils;
+import org.apache.cloudstack.engine.subsystem.api.storage.ClusterScope;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStore;
+import org.apache.cloudstack.engine.subsystem.api.storage.HostScope;
+import org.apache.cloudstack.engine.subsystem.api.storage.ZoneScope;
+import org.apache.cloudstack.storage.datastore.db.ImageStoreVO;
+import org.apache.cloudstack.storage.image.datastore.ImageStoreHelper;
+import org.apache.cloudstack.storage.image.datastore.ImageStoreProviderManager;
+import org.apache.cloudstack.storage.image.store.lifecycle.ImageStoreLifeCycle;
+import org.apache.log4j.Logger;
+
+import javax.inject.Inject;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.HashMap;
+import java.util.Map;
+
+public class SimulatorImageStoreLifeCycleImpl implements ImageStoreLifeCycle {
+ private static final Logger s_logger = Logger.getLogger(SimulatorImageStoreLifeCycleImpl.class);
+
+ @Inject
+ ImageStoreHelper imageStoreHelper;
+
+ @Inject
+ ImageStoreProviderManager imageStoreMgr;
+
+
+ @Override
+ public DataStore initialize(Map<String, Object> dsInfos) {
+ Long dcId = (Long) dsInfos.get("zoneId");
+ String url = (String) dsInfos.get("url");
+ String name = (String) dsInfos.get("name");
+ if (name == null) {
+ name = url;
+ }
+ String providerName = (String) dsInfos.get("providerName");
+ DataStoreRole role = (DataStoreRole) dsInfos.get("role");
+ Map<String, String> details = (Map<String, String>) dsInfos.get("details");
+
+ s_logger.info("Trying to add a new data store at " + url + " to data center " + dcId);
+
+ URI uri;
+ try {
+ uri = new URI(UriUtils.encodeURIComponent(url));
+ if (uri.getScheme() == null) {
+ throw new InvalidParameterValueException("uri.scheme is null " + url + ", add nfs:// as a prefix");
+ } else if (uri.getScheme().equalsIgnoreCase("nfs")) {
+ if (uri.getHost() == null || uri.getHost().equalsIgnoreCase("") || uri.getPath() == null
+ || uri.getPath().equalsIgnoreCase("")) {
+ throw new InvalidParameterValueException(
+ "Your host and/or path is wrong. Make sure it is of the format nfs://hostname/path");
+ }
+ }
+ } catch (URISyntaxException e) {
+ throw new InvalidParameterValueException(url + " is not a valid uri");
+ }
+
+ if (dcId == null) {
+ throw new InvalidParameterValueException(
+ "DataCenter id is null, and simulator image store has to be associated with a data center");
+ }
+
+ Map<String, Object> imageStoreParameters = new HashMap<String, Object>();
+ imageStoreParameters.put("name", name);
+ imageStoreParameters.put("zoneId", dcId);
+ imageStoreParameters.put("url", url);
+ imageStoreParameters.put("protocol", uri.getScheme().toLowerCase());
+ imageStoreParameters.put("scope", ScopeType.ZONE);
+ imageStoreParameters.put("providerName", providerName);
+ imageStoreParameters.put("role", role);
+
+ ImageStoreVO ids = imageStoreHelper.createImageStore(imageStoreParameters, details);
+ return imageStoreMgr.getImageStore(ids.getId());
+ }
+
+ @Override
+ public boolean attachCluster(DataStore store, ClusterScope scope) {
+ return false;
+ }
+
+ @Override
+ public boolean attachHost(DataStore store, HostScope scope, StoragePoolInfo existingInfo) {
+ return false;
+ }
+
+ @Override
+ public boolean attachZone(DataStore dataStore, ZoneScope scope, Hypervisor.HypervisorType hypervisorType) {
+ return false;
+ }
+
+ @Override
+ public boolean maintain(DataStore store) {
+ return false;
+ }
+
+ @Override
+ public boolean cancelMaintain(DataStore store) {
+ return false;
+ }
+
+ @Override
+ public boolean deleteDataStore(DataStore store) {
+ return false;
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/724b3f42/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/provider/SimulatorImageStoreProviderImpl.java
----------------------------------------------------------------------
diff --git a/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/provider/SimulatorImageStoreProviderImpl.java b/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/provider/SimulatorImageStoreProviderImpl.java
new file mode 100644
index 0000000..775d743
--- /dev/null
+++ b/plugins/storage/image/simulator/src/org/apache/cloudstack/storage/datastore/provider/SimulatorImageStoreProviderImpl.java
@@ -0,0 +1,98 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.cloudstack.storage.datastore.provider;
+
+import com.cloud.storage.ScopeType;
+import com.cloud.utils.component.ComponentContext;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
+import org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
+import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider;
+import org.apache.cloudstack.storage.datastore.driver.SimulatorImageStoreDriverImpl;
+import org.apache.cloudstack.storage.datastore.lifecycle.SimulatorImageStoreLifeCycleImpl;
+import org.apache.cloudstack.storage.image.ImageStoreDriver;
+import org.apache.cloudstack.storage.image.datastore.ImageStoreHelper;
+import org.apache.cloudstack.storage.image.datastore.ImageStoreProviderManager;
+import org.apache.cloudstack.storage.image.store.lifecycle.ImageStoreLifeCycle;
+import org.springframework.stereotype.Component;
+
+import javax.inject.Inject;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+@Component
+public class SimulatorImageStoreProviderImpl implements ImageStoreProvider {
+
+ private final String _providerName = DataStoreProvider.NFS_IMAGE;
+ protected ImageStoreLifeCycle lifeCycle;
+ protected ImageStoreDriver driver;
+
+ @Inject
+ ImageStoreProviderManager storeMgr;
+ @Inject
+ ImageStoreHelper helper;
+
+ @Override
+ public boolean isScopeSupported(ScopeType scope) {
+ return true;
+ }
+
+ @Override
+ public boolean needDownloadSysTemplate() {
+ return false;
+ }
+
+ @Override
+ public DataStoreLifeCycle getDataStoreLifeCycle() {
+ return this.lifeCycle;
+ }
+
+ @Override
+ public DataStoreDriver getDataStoreDriver() {
+ return this.driver;
+ }
+
+ @Override
+ public HypervisorHostListener getHostListener() {
+ return null;
+ }
+
+ @Override
+ public String getName() {
+ return this._providerName;
+ }
+
+ @Override
+ public boolean configure(Map<String, Object> params) {
+ lifeCycle = ComponentContext.inject(SimulatorImageStoreLifeCycleImpl.class);
+ driver = ComponentContext.inject(SimulatorImageStoreDriverImpl.class);
+ storeMgr.registerDriver(this.getName(), driver);
+ return true;
+ }
+
+ @Override
+ public Set<DataStoreProviderType> getTypes() {
+ Set<DataStoreProviderType> types = new HashSet<DataStoreProviderType>();
+ types.add(DataStoreProviderType.IMAGE);
+ return types;
+ }
+}