integration test is passed again

This commit is contained in:
Edison Su 2013-05-12 14:41:06 -07:00
parent fdb523d219
commit e8259e38c2
9 changed files with 45 additions and 6 deletions

View File

@ -40,10 +40,22 @@
<module>storage/datamotion</module> <module>storage/datamotion</module>
<module>storage/cache</module> <module>storage/cache</module>
<module>storage/snapshot</module> <module>storage/snapshot</module>
<module>storage/integration-test</module>
<module>components-api</module> <module>components-api</module>
<module>schema</module> <module>schema</module>
<module>network</module> <module>network</module>
<module>service</module> <module>service</module>
</modules> </modules>
<profiles>
<profile>
<id>integration-test</id>
<activation>
<property>
<name>nonoss</name>
</property>
</activation>
<modules>
<module>storage/integration-test</module>
</modules>
</profile>
</profiles>
</project> </project>

View File

@ -59,6 +59,7 @@ import com.cloud.host.dao.HostDao;
import com.cloud.host.dao.HostDaoImpl; import com.cloud.host.dao.HostDaoImpl;
import com.cloud.host.dao.HostDetailsDaoImpl; import com.cloud.host.dao.HostDetailsDaoImpl;
import com.cloud.host.dao.HostTagsDaoImpl; import com.cloud.host.dao.HostTagsDaoImpl;
import com.cloud.hypervisor.HypervisorGuruManager;
import com.cloud.resource.ResourceManager; import com.cloud.resource.ResourceManager;
import com.cloud.server.ManagementServer; import com.cloud.server.ManagementServer;
import com.cloud.server.auth.UserAuthenticator; import com.cloud.server.auth.UserAuthenticator;
@ -251,6 +252,11 @@ public class ChildTestConfiguration extends TestConfiguration {
public AlertManager alertMgr() { public AlertManager alertMgr() {
return Mockito.mock(AlertManager.class); return Mockito.mock(AlertManager.class);
} }
@Bean
public HypervisorGuruManager hypervisorGuruMgr() {
return Mockito.mock(HypervisorGuruManager.class);
}
public static class Library implements TypeFilter { public static class Library implements TypeFilter {

View File

@ -64,6 +64,7 @@ import org.testng.AssertJUnit;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import com.cloud.agent.AgentManager; import com.cloud.agent.AgentManager;
import com.cloud.agent.api.Command;
import com.cloud.dc.ClusterVO; import com.cloud.dc.ClusterVO;
import com.cloud.dc.DataCenterVO; import com.cloud.dc.DataCenterVO;
import com.cloud.dc.HostPodVO; import com.cloud.dc.HostPodVO;
@ -75,6 +76,7 @@ import com.cloud.host.Host;
import com.cloud.host.HostVO; import com.cloud.host.HostVO;
import com.cloud.host.Host.Type; import com.cloud.host.Host.Type;
import com.cloud.host.dao.HostDao; import com.cloud.host.dao.HostDao;
import com.cloud.hypervisor.HypervisorGuruManager;
import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.org.Cluster.ClusterType; import com.cloud.org.Cluster.ClusterType;
import com.cloud.org.Managed.ManagedState; import com.cloud.org.Managed.ManagedState;
@ -87,6 +89,7 @@ import com.cloud.storage.SnapshotVO;
import com.cloud.storage.Storage; import com.cloud.storage.Storage;
import com.cloud.storage.StoragePoolStatus; import com.cloud.storage.StoragePoolStatus;
import com.cloud.storage.VMTemplateVO; import com.cloud.storage.VMTemplateVO;
import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.Storage.StoragePoolType; import com.cloud.storage.Storage.StoragePoolType;
import com.cloud.storage.Storage.TemplateType; import com.cloud.storage.Storage.TemplateType;
import com.cloud.storage.dao.SnapshotDao; import com.cloud.storage.dao.SnapshotDao;
@ -133,6 +136,8 @@ public class SnapshotTest extends CloudStackTestNGBase {
@Inject @Inject
AgentManager agentMgr; AgentManager agentMgr;
@Inject @Inject
HypervisorGuruManager hyGuruMgr;
@Inject
DataStoreManager dataStoreMgr; DataStoreManager dataStoreMgr;
@Inject @Inject
ResourceManager resourceMgr; ResourceManager resourceMgr;
@ -244,6 +249,7 @@ public class SnapshotTest extends CloudStackTestNGBase {
DataObject templateOnStore = store.create(template); DataObject templateOnStore = store.create(template);
TemplateObjectTO to = new TemplateObjectTO(); TemplateObjectTO to = new TemplateObjectTO();
to.setPath(this.getImageInstallPath()); to.setPath(this.getImageInstallPath());
to.setFormat(ImageFormat.VHD);
CopyCmdAnswer answer = new CopyCmdAnswer(to); CopyCmdAnswer answer = new CopyCmdAnswer(to);
templateOnStore.processEvent(Event.CreateOnlyRequested); templateOnStore.processEvent(Event.CreateOnlyRequested);
templateOnStore.processEvent(Event.OperationSuccessed, answer); templateOnStore.processEvent(Event.OperationSuccessed, answer);
@ -261,6 +267,8 @@ public class SnapshotTest extends CloudStackTestNGBase {
Mockito.when(epSelector.select(Mockito.any(DataObject.class), Mockito.any(DataObject.class))).thenReturn(ep); Mockito.when(epSelector.select(Mockito.any(DataObject.class), Mockito.any(DataObject.class))).thenReturn(ep);
Mockito.when(epSelector.select(Mockito.any(DataObject.class))).thenReturn(ep); Mockito.when(epSelector.select(Mockito.any(DataObject.class))).thenReturn(ep);
Mockito.when(epSelector.select(Mockito.any(DataStore.class))).thenReturn(ep); Mockito.when(epSelector.select(Mockito.any(DataStore.class))).thenReturn(ep);
Mockito.when(hyGuruMgr.getGuruProcessedCommandTargetHost(Mockito.anyLong(), Mockito.any(Command.class))).thenReturn(this.host.getId());
} }
public DataStore createPrimaryDataStore() { public DataStore createPrimaryDataStore() {

View File

@ -65,6 +65,7 @@ import org.testng.AssertJUnit;
import org.testng.annotations.Test; import org.testng.annotations.Test;
import com.cloud.agent.AgentManager; import com.cloud.agent.AgentManager;
import com.cloud.agent.api.Command;
import com.cloud.dc.ClusterVO; import com.cloud.dc.ClusterVO;
import com.cloud.dc.DataCenterVO; import com.cloud.dc.DataCenterVO;
import com.cloud.dc.HostPodVO; import com.cloud.dc.HostPodVO;
@ -78,6 +79,7 @@ import com.cloud.host.Host.Type;
import com.cloud.host.HostVO; import com.cloud.host.HostVO;
import com.cloud.host.dao.HostDao; import com.cloud.host.dao.HostDao;
import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.hypervisor.HypervisorGuruManager;
import com.cloud.org.Cluster.ClusterType; import com.cloud.org.Cluster.ClusterType;
import com.cloud.org.Managed.ManagedState; import com.cloud.org.Managed.ManagedState;
import com.cloud.resource.ResourceManager; import com.cloud.resource.ResourceManager;
@ -85,6 +87,7 @@ import com.cloud.resource.ResourceState;
import com.cloud.storage.DataStoreRole; import com.cloud.storage.DataStoreRole;
import com.cloud.storage.ScopeType; import com.cloud.storage.ScopeType;
import com.cloud.storage.Storage; import com.cloud.storage.Storage;
import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.StoragePoolStatus; import com.cloud.storage.StoragePoolStatus;
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
import com.cloud.storage.VMTemplateVO; import com.cloud.storage.VMTemplateVO;
@ -140,6 +143,8 @@ public class VolumeTest extends CloudStackTestNGBase {
VolumeDataFactory volFactory; VolumeDataFactory volFactory;
@Inject @Inject
EndPointSelector epSelector; EndPointSelector epSelector;
@Inject
HypervisorGuruManager hyGuruMgr;
long primaryStoreId; long primaryStoreId;
VMTemplateVO image; VMTemplateVO image;
String imageStoreName = "testImageStore"; String imageStoreName = "testImageStore";
@ -192,7 +197,7 @@ public class VolumeTest extends CloudStackTestNGBase {
imageStore = new ImageStoreVO(); imageStore = new ImageStoreVO();
imageStore.setName(imageStoreName); imageStore.setName(imageStoreName);
imageStore.setDataCenterId(dcId); imageStore.setDataCenterId(dcId);
imageStore.setProviderName("CloudStack ImageStore Provider"); imageStore.setProviderName(DataStoreProvider.NFS_IMAGE);
imageStore.setRole(DataStoreRole.Image); imageStore.setRole(DataStoreRole.Image);
imageStore.setUrl(this.getSecondaryStorage()); imageStore.setUrl(this.getSecondaryStorage());
imageStore.setUuid(UUID.randomUUID().toString()); imageStore.setUuid(UUID.randomUUID().toString());
@ -236,6 +241,7 @@ public class VolumeTest extends CloudStackTestNGBase {
DataObject templateOnStore = store.create(template); DataObject templateOnStore = store.create(template);
TemplateObjectTO to = new TemplateObjectTO(); TemplateObjectTO to = new TemplateObjectTO();
to.setPath(this.getImageInstallPath()); to.setPath(this.getImageInstallPath());
to.setFormat(ImageFormat.VHD);
CopyCmdAnswer answer = new CopyCmdAnswer(to); CopyCmdAnswer answer = new CopyCmdAnswer(to);
templateOnStore.processEvent(Event.CreateOnlyRequested); templateOnStore.processEvent(Event.CreateOnlyRequested);
templateOnStore.processEvent(Event.OperationSuccessed, answer); templateOnStore.processEvent(Event.OperationSuccessed, answer);
@ -253,6 +259,7 @@ public class VolumeTest extends CloudStackTestNGBase {
Mockito.when(epSelector.select(Mockito.any(DataObject.class), Mockito.any(DataObject.class))).thenReturn(ep); Mockito.when(epSelector.select(Mockito.any(DataObject.class), Mockito.any(DataObject.class))).thenReturn(ep);
Mockito.when(epSelector.select(Mockito.any(DataObject.class))).thenReturn(ep); Mockito.when(epSelector.select(Mockito.any(DataObject.class))).thenReturn(ep);
Mockito.when(epSelector.select(Mockito.any(DataStore.class))).thenReturn(ep); Mockito.when(epSelector.select(Mockito.any(DataStore.class))).thenReturn(ep);
Mockito.when(hyGuruMgr.getGuruProcessedCommandTargetHost(Mockito.anyLong(), Mockito.any(Command.class))).thenReturn(this.host.getId());
} }
public DataStore createPrimaryDataStore() { public DataStore createPrimaryDataStore() {
@ -297,7 +304,7 @@ public class VolumeTest extends CloudStackTestNGBase {
pool.setPoolType(StoragePoolType.NetworkFilesystem); pool.setPoolType(StoragePoolType.NetworkFilesystem);
pool.setPodId(podId); pool.setPodId(podId);
pool.setScope(ScopeType.CLUSTER); pool.setScope(ScopeType.CLUSTER);
pool.setStorageProviderName("cloudstack primary data store provider"); pool.setStorageProviderName(DataStoreProvider.DEFAULT_PRIMARY);
pool = this.primaryStoreDao.persist(pool); pool = this.primaryStoreDao.persist(pool);
DataStore store = this.dataStoreMgr.getPrimaryDataStore(pool.getId()); DataStore store = this.dataStoreMgr.getPrimaryDataStore(pool.getId());
return store; return store;

View File

@ -61,7 +61,6 @@
<bean id="dataStoreManagerImpl" class="org.apache.cloudstack.storage.datastore.DataStoreManagerImpl" /> <bean id="dataStoreManagerImpl" class="org.apache.cloudstack.storage.datastore.DataStoreManagerImpl" />
<bean id="primaryDataStoreProviderManagerImpl" class="org.apache.cloudstack.storage.datastore.manager.PrimaryDataStoreProviderManagerImpl" /> <bean id="primaryDataStoreProviderManagerImpl" class="org.apache.cloudstack.storage.datastore.manager.PrimaryDataStoreProviderManagerImpl" />
<bean id="imageStoreProviderManagerImpl" class="org.apache.cloudstack.storage.image.manager.ImageStoreProviderManagerImpl" /> <bean id="imageStoreProviderManagerImpl" class="org.apache.cloudstack.storage.image.manager.ImageStoreProviderManagerImpl" />
<bean id="hypervsiorHostEndPointRpcServer" class="org.apache.cloudstack.storage.HypervsiorHostEndPointRpcServer" />
<bean id="iSCSI" class="org.apache.cloudstack.storage.datastore.type.ISCSI" /> <bean id="iSCSI" class="org.apache.cloudstack.storage.datastore.type.ISCSI" />
<bean id="ISO" class="org.apache.cloudstack.storage.image.format.ISO" /> <bean id="ISO" class="org.apache.cloudstack.storage.image.format.ISO" />
<bean id="templateDataFactoryImpl" class="org.apache.cloudstack.storage.image.TemplateDataFactoryImpl" /> <bean id="templateDataFactoryImpl" class="org.apache.cloudstack.storage.image.TemplateDataFactoryImpl" />
@ -88,4 +87,5 @@
<bean id="swiftImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SwiftImageStoreProviderImpl" /> <bean id="swiftImageStoreProviderImpl" class="org.apache.cloudstack.storage.datastore.provider.SwiftImageStoreProviderImpl" />
<bean id="BAREMETAL" class="org.apache.cloudstack.storage.image.format.BAREMETAL" /> <bean id="BAREMETAL" class="org.apache.cloudstack.storage.image.format.BAREMETAL" />
<bean id="storagePoolAutomationImpl" class="com.cloud.storage.StoragePoolAutomationImpl" /> <bean id="storagePoolAutomationImpl" class="com.cloud.storage.StoragePoolAutomationImpl" />
<bean id="AccountGuestVlanMapDaoImpl" class="com.cloud.network.dao.AccountGuestVlanMapDaoImpl" />
</beans> </beans>

View File

@ -45,6 +45,11 @@
<artifactId>cloud-framework-ipc</artifactId> <artifactId>cloud-framework-ipc</artifactId>
<version>${project.version}</version> <version>${project.version}</version>
</dependency> </dependency>
<dependency>
<groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-secondary-storage</artifactId>
<version>${project.version}</version>
</dependency>
<dependency> <dependency>
<groupId>org.apache.cloudstack</groupId> <groupId>org.apache.cloudstack</groupId>
<artifactId>cloud-engine-api</artifactId> <artifactId>cloud-engine-api</artifactId>

View File

@ -24,6 +24,7 @@ import org.apache.cloudstack.engine.subsystem.api.storage.EndPoint;
import org.apache.cloudstack.framework.async.AsyncCompletionCallback; import org.apache.cloudstack.framework.async.AsyncCompletionCallback;
import org.apache.cloudstack.storage.command.CopyCommand; import org.apache.cloudstack.storage.command.CopyCommand;
import org.apache.cloudstack.storage.command.DownloadCommand; import org.apache.cloudstack.storage.command.DownloadCommand;
import org.apache.cloudstack.storage.resource.LocalNfsSecondaryStorageResource;
import com.cloud.agent.Listener; import com.cloud.agent.Listener;
import com.cloud.agent.api.Answer; import com.cloud.agent.api.Answer;
@ -37,7 +38,7 @@ public class LocalHostEndpoint implements EndPoint {
private ScheduledExecutorService executor; private ScheduledExecutorService executor;
ServerResource resource; ServerResource resource;
public LocalHostEndpoint() { public LocalHostEndpoint() {
//FIXME resource = new LocalNfsSecondaryStorageResource(); resource = new LocalNfsSecondaryStorageResource();
executor = Executors.newScheduledThreadPool(10); executor = Executors.newScheduledThreadPool(10);
} }
@Override @Override

View File

@ -853,6 +853,7 @@ public class XenServerStorageProcessor implements StorageProcessor {
TemplateObjectTO newVol = new TemplateObjectTO(); TemplateObjectTO newVol = new TemplateObjectTO();
newVol.setUuid(snapshotvdi.getUuid(conn)); newVol.setUuid(snapshotvdi.getUuid(conn));
newVol.setPath(newVol.getUuid()); newVol.setPath(newVol.getUuid());
newVol.setFormat(ImageFormat.VHD);
return new CopyCmdAnswer(newVol); return new CopyCmdAnswer(newVol);
} }
}catch (Exception e) { }catch (Exception e) {

View File

@ -179,7 +179,6 @@ CREATE TABLE `cloud`.`snapshot_store_ref` (
`update_count` bigint unsigned, `update_count` bigint unsigned,
`updated` datetime, `updated` datetime,
PRIMARY KEY (`id`), PRIMARY KEY (`id`),
CONSTRAINT `fk_snapshot_store_ref__store_id` FOREIGN KEY `fk_snapshot_store_ref__store_id` (`store_id`) REFERENCES `image_store` (`id`) ON DELETE CASCADE,
INDEX `i_snapshot_store_ref__store_id`(`store_id`), INDEX `i_snapshot_store_ref__store_id`(`store_id`),
CONSTRAINT `fk_snapshot_store_ref__snapshot_id` FOREIGN KEY `fk_snapshot_store_ref__snapshot_id` (`snapshot_id`) REFERENCES `snapshots` (`id`), CONSTRAINT `fk_snapshot_store_ref__snapshot_id` FOREIGN KEY `fk_snapshot_store_ref__snapshot_id` (`snapshot_id`) REFERENCES `snapshots` (`id`),
INDEX `i_snapshot_store_ref__snapshot_id`(`snapshot_id`) INDEX `i_snapshot_store_ref__snapshot_id`(`snapshot_id`)