You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2015/03/12 07:04:57 UTC
[05/12] git commit: updated refs/heads/master to c27c694
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c27c6943/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/RepositoryTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/RepositoryTest.java b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/RepositoryTest.java
new file mode 100644
index 0000000..eaf6612
--- /dev/null
+++ b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/RepositoryTest.java
@@ -0,0 +1,183 @@
+/*******************************************************************************
+ * 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 com.cloud.hypervisor.ovm3.objects;
+
+import org.junit.Test;
+
+public class RepositoryTest {
+ ConnectionTest con = new ConnectionTest();
+ Repository repo = new Repository(con);
+ XmlTestResultTest results = new XmlTestResultTest();
+
+ private String REPOID = "f12842ebf5ed3fe78da1eb0e17f5ede8";
+ private String MGRID = "d1a749d4295041fb99854f52ea4dea97";
+ private String REPOALIAS = "OVS Repository";
+ private String REMOTENFS = "cs-mgmt:/volumes/cs-data/primary/ovm";
+ private String LOCALMOUNT = "/OVS/Repositories/f12842ebf5ed3fe78da1eb0e17f5ede8";
+ private String REPOVERSION = "3.0";
+ private String REPOSTATUS = "Mounted";
+ private String ISO = "systemvm.iso";
+ private String TEMPLATE = "0b53acb1-6554-41b8-b1e1-7b27a01b6acb";
+ private String DISK = "cfb5ee12-b99d-41d1-a5b2-44dea36c9de1.raw";
+ private String VM = "7efbdbe0-3d01-3b22-a8a0-1d41c6f2502f";
+ private String REPODISCOVERXML = "<string>"
+ + "<?xml version=\"1.0\" ?>"
+ + "<Discover_Repositories_Result>" + "<RepositoryList>"
+ + "<Repository Name=\""
+ + REPOID
+ + "\">"
+ + "<Version>"
+ + REPOVERSION
+ + "</Version>"
+ + "<Manager_UUID>"
+ + MGRID
+ + "</Manager_UUID>"
+ + "<Repository_UUID>"
+ + REPOID
+ + "</Repository_UUID>"
+ + "<Repository_Alias>"
+ + REPOALIAS
+ + "</Repository_Alias>"
+ + "<Assemblies/>"
+ + "<Templates>"
+ + "<Template Name=\""
+ + TEMPLATE
+ + "\">"
+ + "<File>"
+ + TEMPLATE
+ + ".raw</File>"
+ + "</Template>"
+ + "<Template Name=\"7d5c29db-6343-4431-b509-9646b45cc31b\">"
+ + "<File>7d5c29db-6343-4431-b509-9646b45cc31b.raw</File>"
+ + "</Template>"
+ + "</Templates>"
+ + "<VirtualMachines>"
+ + "<VirtualMachine Name=\""
+ + VM
+ + "\">"
+ + "<File>vm.cfg</File>"
+ + "</VirtualMachine>"
+ + "<VirtualMachine Name=\"pool\">"
+ + "<File>ovspoolfs.img</File>"
+ + "</VirtualMachine>"
+ + "<VirtualMachine Name=\"4fb50e31-b032-3012-b70b-7e27c2acdfe2\">"
+ + "<File>vm.cfg</File>"
+ + "</VirtualMachine>"
+ + "<VirtualMachine Name=\"5ffe3ddc-606d-3fec-a956-67638f7ba838\">"
+ + "<File>vm.cfg</File>"
+ + "</VirtualMachine>"
+ + "<VirtualMachine Name=\"14fc3846-45e5-3c08-ad23-432ceb07407b\">"
+ + "<File>vm.cfg</File>"
+ + "</VirtualMachine>"
+ + "</VirtualMachines>"
+ + "<VirtualDisks>"
+ + "<Disk>"
+ + DISK
+ + "</Disk>"
+ + "<Disk>b92dd5c5-0f24-4cca-b86a-153ac6e950a8.raw</Disk>"
+ + "<Disk>d144c278-0825-41d5-b9c6-8bb21f3dd1e7.raw</Disk>"
+ + "<Disk>99650d9f-c7ee-42df-92e3-6cafc0876141.raw</Disk>"
+ + "</VirtualDisks>"
+ + "<ISOs>"
+ + "<ISO>"
+ + ISO
+ + "</ISO>"
+ + "</ISOs>"
+ + "</Repository>"
+ + "</RepositoryList>"
+ + "</Discover_Repositories_Result>" + "</string>";
+ private String REPODBDISCOVERXML = "<string>"
+ + "<?xml version=\"1.0\" ?>"
+ + "<Discover_Repository_Db_Result>"
+ + "<RepositoryDbList>" + "<Repository Uuid=\""
+ + REPOID
+ + "\">"
+ + "<Fs_location>"
+ + REMOTENFS
+ + "</Fs_location>"
+ + "<Mount_point>"
+ + LOCALMOUNT
+ + "</Mount_point>"
+ + "<Filesystem_type>nfs</Filesystem_type>"
+ + "<Version>"
+ + REPOVERSION
+ + "</Version>"
+ + "<Alias>"
+ + REPOALIAS
+ + "</Alias>"
+ + "<Manager_uuid>"
+ + MGRID
+ + "</Manager_uuid>"
+ + "<Status>"
+ + REPOSTATUS
+ + "</Status>"
+ + "</Repository>"
+ + "</RepositoryDbList>"
+ + "</Discover_Repository_Db_Result>" + "</string>";
+
+ /*
+ * @Test Create a test repo that mimics the above so we can test against a
+ * live box... public void testCreateRepo() throws Ovm3ResourceException {
+ * con.setResult(null); repo.createRepo(REMOTENFS, LOCALMOUNT, REPOID,
+ * REPOALIAS); }
+ */
+ @Test
+ public void testDiscoverRepoBase() throws Ovm3ResourceException {
+ con.setResult(results.simpleResponseWrapWrapper(this.REPODISCOVERXML));
+ repo.discoverRepo(REPOID);
+ results.basicStringTest(repo.getRepo(REPOID).getUuid(), REPOID);
+ results.basicStringTest(repo.getRepo(REPOID).getAlias(), REPOALIAS);
+ results.basicStringTest(repo.getRepo(REPOID).getVersion(), REPOVERSION);
+ results.basicStringTest(repo.getRepo(REPOID).getManagerUuid(), MGRID);
+ }
+
+ @Test
+ public void testDiscoverRepoDetails() throws Ovm3ResourceException {
+ con.setResult(results.simpleResponseWrapWrapper(this.REPODISCOVERXML));
+ repo.discoverRepo(REPOID);
+ results.basicBooleanTest(results.basicListHasString(repo
+ .getRepo(REPOID).getRepoVirtualDisks(), DISK), true);
+ results.basicBooleanTest(results.basicListHasString(repo
+ .getRepo(REPOID).getRepoVirtualMachines(), VM), true);
+ results.basicBooleanTest(results.basicListHasString(repo
+ .getRepo(REPOID).getRepoTemplates(), TEMPLATE + ".raw"), true);
+ results.basicBooleanTest(results.basicListHasString(repo
+ .getRepo(REPOID).getRepoISOs(), ISO), true);
+ results.basicBooleanTest(results.basicListHasString(repo
+ .getRepo(REPOID).getRepoISOs(), VM), false);
+ }
+
+ @Test
+ public void testDiscoverRepoDb() throws Ovm3ResourceException {
+ con.setResult(results.simpleResponseWrapWrapper(this.REPODBDISCOVERXML));
+ repo.discoverRepoDb();
+ results.basicStringTest(repo.getRepoDb(REPOID).getUuid(), REPOID);
+ results.basicStringTest(repo.getRepoDb(REPOID).getAlias(), REPOALIAS);
+ results.basicStringTest(repo.getRepoDb(REPOID).getVersion(),
+ REPOVERSION);
+ results.basicStringTest(repo.getRepoDb(REPOID).getManagerUuid(), MGRID);
+ results.basicStringTest(repo.getRepoDb(REPOID).getMountPoint(),
+ LOCALMOUNT);
+ results.basicStringTest(repo.getRepoDb(REPOID).getFsLocation(),
+ REMOTENFS);
+ results.basicStringTest(repo.getRepoDb(REPOID).getStatus(), REPOSTATUS);
+ results.basicStringTest(repo.getRepoDb(REPOID).getFilesystemType(),
+ "nfs");
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c27c6943/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/StoragePluginTest.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/StoragePluginTest.java b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/StoragePluginTest.java
new file mode 100644
index 0000000..b041508
--- /dev/null
+++ b/plugins/hypervisors/ovm3/src/test/java/com/cloud/hypervisor/ovm3/objects/StoragePluginTest.java
@@ -0,0 +1,358 @@
+/*******************************************************************************
+ * 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 com.cloud.hypervisor.ovm3.objects;
+
+import static org.junit.Assert.assertNotNull;
+import java.io.File;
+
+import org.junit.Test;
+
+import com.cloud.hypervisor.ovm3.objects.StoragePlugin.FileProperties;
+import com.cloud.hypervisor.ovm3.objects.StoragePlugin.StorageDetails;
+
+public class StoragePluginTest {
+ ConnectionTest con = new ConnectionTest();
+ StoragePlugin sPt = new StoragePlugin(con);
+ XmlTestResultTest results = new XmlTestResultTest();
+ String NFSHOST = "nfs-store-1";
+ String NFSPATH = "/volumes/cs-data/primary";
+ String NFSMNT = "/nfsmnt";
+ String FSPROPUUID = sPt.deDash(sPt.newUuid());
+ String FSMNTUUID = sPt.newUuid();
+ String POOLUUID = sPt.deDash(FSMNTUUID);
+ String FILE = "a.file";
+ Long SIZE = 2096898048L;
+ String STORAGEPLUGINXML = "<string>"
+ + "<?xml version=\"1.0\" ?>"
+ + "<Discover_Storage_Plugins_Result>"
+ + "<storage_plugin_info_list>"
+ + "<storage_plugin_info plugin_impl_name=\"oracle.ocfs2.OCFS2.OCFS2Plugin\">"
+ + "<fs_api_version>1,2,7</fs_api_version>"
+ + "<generic_plugin>False</generic_plugin>"
+ + "<plugin_version>0.1.0-38</plugin_version>"
+ + "<filesys_type>LocalFS</filesys_type>"
+ + "<extended_api_version>None</extended_api_version>"
+ + "<plugin_desc>Oracle OCFS2 File system Storage Connect Plugin</plugin_desc>"
+ + "<cluster_required>True</cluster_required>"
+ + "<plugin_name>Oracle OCFS2 File system</plugin_name>"
+ + "<fs_extra_info_help>None</fs_extra_info_help>"
+ + "<required_api_vers>1,2,7</required_api_vers>"
+ + "<file_extra_info_help>None</file_extra_info_help>"
+ + "<ss_extra_info_help>None</ss_extra_info_help>"
+ + "<filesys_name>ocfs2</filesys_name>"
+ + "<vendor_name>Oracle</vendor_name>"
+ + "<plugin_type>ifs</plugin_type>"
+ + "<abilities>"
+ + "<resize_is_sync>YES</resize_is_sync>"
+ + "<clone_is_sync>YES</clone_is_sync>"
+ + "<access_control>NO</access_control>"
+ + "<custom_clone_name>YES</custom_clone_name>"
+ + "<require_storage_name>NO</require_storage_name>"
+ + "<backing_device_type>DEVICE_SINGLE</backing_device_type>"
+ + "<splitclone_while_open>NO</splitclone_while_open>"
+ + "<custom_snap_name>YES</custom_snap_name>"
+ + "<snapshot>ONLINE</snapshot>"
+ + "<splitclone>UNSUPPORTED</splitclone>"
+ + "<snap_is_sync>YES</snap_is_sync>"
+ + "<snapclone>ONLINE</snapclone>"
+ + "<splitclone_is_sync>NO</splitclone_is_sync>"
+ + "<clone>ONLINE</clone>"
+ + "<resize>ONLINE</resize>"
+ + "<snapclone_is_sync>YES</snapclone_is_sync>"
+ + "</abilities>"
+ + "</storage_plugin_info>"
+ + "<storage_plugin_info plugin_impl_name=\"oracle.generic.SCSIPlugin.GenericPlugin\">"
+ + "<storage_types>SAN,iSCSI</storage_types>"
+ + "<generic_plugin>True</generic_plugin>"
+ + "<plugin_version>1.1.0</plugin_version>"
+ + "<extended_api_version>1,2,9</extended_api_version>"
+ + "<plugin_desc>Oracle Storage Connect Plugin for Generic FC and iSCSI</plugin_desc>"
+ + "<plugin_name>Oracle Generic SCSI Plugin</plugin_name>"
+ + "<sa_api_version>1,2,7</sa_api_version>"
+ + "<required_api_vers>1,2,7</required_api_vers>"
+ + "<ss_extra_info_help>None</ss_extra_info_help>"
+ + "<se_extra_info_help>None</se_extra_info_help>"
+ + "<vendor_name>Oracle</vendor_name>"
+ + "<plugin_type>isa</plugin_type>"
+ + "<abilities>"
+ + "<resize_is_sync>UNSUPPORTED</resize_is_sync>"
+ + "<clone_is_sync>UNSUPPORTED</clone_is_sync>"
+ + "<access_control>NO</access_control>"
+ + "<custom_clone_name>UNSUPPORTED</custom_clone_name>"
+ + "<require_storage_name>UNSUPPORTED</require_storage_name>"
+ + "<custom_snap_name>UNSUPPORTED</custom_snap_name>"
+ + "<snapshot>UNSUPPORTED</snapshot>"
+ + "<splitclone>UNSUPPORTED</splitclone>"
+ + "<snap_is_sync>UNSUPPORTED</snap_is_sync>"
+ + "<snapclone>UNSUPPORTED</snapclone>"
+ + "<splitclone_is_sync>UNSUPPORTED</splitclone_is_sync>"
+ + "<clone>UNSUPPORTED</clone>"
+ + "<resize>UNSUPPORTED</resize>"
+ + "<snapclone_is_sync>UNSUPPORTED</snapclone_is_sync>"
+ + "</abilities>"
+ + "</storage_plugin_info>"
+ + "<storage_plugin_info plugin_impl_name=\"oracle.generic.NFSPlugin.GenericNFSPlugin\">"
+ + "<fs_api_version>1,2,7</fs_api_version>"
+ + "<generic_plugin>True</generic_plugin>"
+ + "<plugin_version>1.1.0</plugin_version>"
+ + "<filesys_type>NetworkFS</filesys_type>"
+ + "<extended_api_version>None</extended_api_version>"
+ + "<plugin_desc>Oracle Generic Network File System Storage Connect Plugin</plugin_desc>"
+ + "<cluster_required>False</cluster_required>"
+ + "<plugin_name>Oracle Generic Network File System</plugin_name>"
+ + "<fs_extra_info_help>None</fs_extra_info_help>"
+ + "<required_api_vers>1,2,7</required_api_vers>"
+ + "<file_extra_info_help>None</file_extra_info_help>"
+ + "<ss_extra_info_help>None</ss_extra_info_help>"
+ + "<filesys_name>NFS</filesys_name>"
+ + "<vendor_name>Oracle</vendor_name>"
+ + "<plugin_type>ifs</plugin_type>"
+ + "<abilities>"
+ + "<resize_is_sync>UNSUPPORTED</resize_is_sync>"
+ + "<clone_is_sync>UNSUPPORTED</clone_is_sync>"
+ + "<access_control>NO</access_control>"
+ + "<custom_clone_name>UNSUPPORTED</custom_clone_name>"
+ + "<require_storage_name>NO</require_storage_name>"
+ + "<backing_device_type>UNSUPPORTED</backing_device_type>"
+ + "<splitclone_while_open>UNSUPPORTED</splitclone_while_open>"
+ + "<custom_snap_name>UNSUPPORTED</custom_snap_name>"
+ + "<snapshot>UNSUPPORTED</snapshot>"
+ + "<splitclone>UNSUPPORTED</splitclone>"
+ + "<snap_is_sync>UNSUPPORTED</snap_is_sync>"
+ + "<snapclone>UNSUPPORTED</snapclone>"
+ + "<splitclone_is_sync>UNSUPPORTED</splitclone_is_sync>"
+ + "<clone>UNSUPPORTED</clone>"
+ + "<resize>UNSUPPORTED</resize>"
+ + "<snapclone_is_sync>UNSUPPORTED</snapclone_is_sync>"
+ + "</abilities>" + "</storage_plugin_info>"
+ + "</storage_plugin_info_list>"
+ + "</Discover_Storage_Plugins_Result>" + "</string>";
+ String NFSMOUNTRESPONSEXML = "<struct>" + "<member>"
+ + "<name>status</name>" + "<value><string></string></value>"
+ + "</member>" + "<member>" + "<name>uuid</name>"
+ + "<value><string>"
+ + FSPROPUUID
+ + "</string></value>"
+ + "</member>"
+ + "<member>"
+ + "<name>ss_uuid</name>"
+ + "<value><string>"
+ + FSMNTUUID
+ + "</string></value>"
+ + "</member>"
+ + "<member>"
+ + "<name>size</name>"
+ + "<value><string>263166853120</string></value>"
+ + "</member>"
+ + "<member>"
+ + "<name>free_sz</name>"
+ + "<value><string>259377299456</string></value>"
+ + "</member>"
+ + "<member>"
+ + "<name>state</name>"
+ + "<value><string>1</string></value>"
+ + "</member>"
+ + "<member>"
+ + "<name>mount_options</name>"
+ + "<value><array><data>"
+ + "</data></array></value>"
+ + "</member>"
+ + "<member>"
+ + "<name>access_grp_names</name>"
+ + "<value><array><data>"
+ + "</data></array></value>"
+ + "</member>"
+ + "<member>"
+ + "<name>access_path</name>"
+ + "<value><string>"
+ + NFSHOST
+ + ":"
+ + NFSPATH
+ + "</string></value>"
+ + "</member>"
+ + "<member>"
+ + "<name>name</name>"
+ + "<value><string>nfs:"
+ + NFSPATH
+ + "</string></value>" + "</member>" + "</struct>";
+ public String getNfsMountResponseXml() {
+ return NFSMOUNTRESPONSEXML;
+ }
+
+ public String getNfsFileSystemInfo() {
+ return NFSFILESYSTEMINFO;
+ }
+ public String getFileCreateXml() {
+ return FILECREATEXML;
+ }
+ public Long getFileSize() {
+ return SIZE;
+ }
+ public String getPoolUuid() {
+ return POOLUUID;
+ }
+ public String getFileName() {
+ return FILE;
+ }
+ String NFSFILESYSTEMINFO = NFSMOUNTRESPONSEXML;
+ String FILECREATEXML = "<struct>" + "<member>" + "<name>fr_type</name>"
+ + "<value><string>File</string></value>" + "</member>" + "<member>"
+ + "<name>ondisk_sz</name>" + "<value><string>0</string></value>"
+ + "</member>" + "<member>" + "<name>fs_uuid</name>"
+ + "<value><string>" + FSMNTUUID + "</string></value>" + "</member>"
+ + "<member>" + "<name>file_path</name>"
+ + "<value><string>/OVS/Repositories/" + POOLUUID + "/VirtualDisks/"
+ + FILE + "</string></value>" + "</member>" + "<member>"
+ + "<name>file_sz</name>" + "<value><string>" + SIZE
+ + "</string></value>" + "</member>" + "</struct>";
+
+ @Test
+ public void testNFSStorageMountCreation() throws Ovm3ResourceException {
+ con.setResult(results.simpleResponseWrapWrapper(NFSMOUNTRESPONSEXML));
+ StorageDetails sd = sPt.storagePluginMountNFS(NFSHOST, NFSPATH,
+ FSMNTUUID, NFSMNT);
+ con.setResult(results.simpleResponseWrapWrapper(NFSMOUNTRESPONSEXML));
+ NFSMNT = NFSMNT + File.separator + FSMNTUUID;
+ sd = sPt.storagePluginMountNFS(NFSHOST, NFSPATH, FSMNTUUID, NFSMNT);
+ results.basicLongTest(Long.valueOf(sd.getSize()), 263166853120L);
+ results.basicLongTest(Long.valueOf(sd.getFreeSize()), 259377299456L);
+ results.basicStringTest(sd.getName(), "nfs:" + NFSPATH);
+ results.basicStringTest(sd.getUuid(), FSPROPUUID);
+ results.basicStringTest(sd.getDetailsRelationalUuid(),FSMNTUUID);
+ }
+
+ @Test
+ public void testNFSStorageUnmount() throws Ovm3ResourceException {
+ con.setResult(results.getNil());
+ results.basicBooleanTest(sPt.storagePluginUnmountNFS(NFSHOST, NFSPATH, FSMNTUUID, NFSMNT));
+ }
+
+ @Test(expected = Ovm3ResourceException.class)
+ public void testStoragePluginIncorrectSsUuid() throws Ovm3ResourceException {
+ sPt.getStorageDetails().setDetailsRelationalUuid(FSMNTUUID);
+ }
+
+ @Test(expected = Ovm3ResourceException.class)
+ public void testStoragePluginIncorrectMntUuid()
+ throws Ovm3ResourceException {
+ sPt.getStorageDetails().setUuid(FSPROPUUID);
+ }
+
+ @Test(expected = Ovm3ResourceException.class)
+ public void testStoragePluginIncorrectUuid() throws Ovm3ResourceException {
+ sPt.getStorageServer().setUuid(FSMNTUUID);
+ }
+
+ @Test(expected = Ovm3ResourceException.class)
+ public void testStoragePluginNFSmountInvalidUuid()
+ throws Ovm3ResourceException {
+ NFSMOUNTRESPONSEXML = NFSMOUNTRESPONSEXML.replaceAll(FSPROPUUID,
+ sPt.deDash(FSMNTUUID));
+ con.setResult(results.simpleResponseWrapWrapper(NFSMOUNTRESPONSEXML));
+ assertNotNull(sPt.storagePluginMountNFS(NFSHOST, NFSPATH,
+ FSPROPUUID, NFSMNT));
+ }
+
+ @Test
+ public void testStorageFileCreation() throws Ovm3ResourceException {
+ con.setResult(results.simpleResponseWrapWrapper(FILECREATEXML));
+ FileProperties file = sPt.storagePluginCreate(FSMNTUUID, NFSHOST, FILE,
+ SIZE, false);
+ file.getOnDiskSize();
+ }
+
+ @Test(expected = Ovm3ResourceException.class)
+ public void testStorageFileCreationFileExistS()
+ throws Ovm3ResourceException {
+ con.setResult(results
+ .errorResponseWrap("exceptions OSError:[Errno.17] File exists "
+ + FILE));
+ FileProperties file = sPt.storagePluginCreate(FSMNTUUID, NFSHOST, FILE,
+ SIZE, false);
+ file.getSize();
+ }
+
+ @Test
+ public void testStorageFileInfo() throws Ovm3ResourceException {
+ con.setResult(results.simpleResponseWrapWrapper(FILECREATEXML));
+ FileProperties file = sPt.storagePluginGetFileInfo(FSMNTUUID, NFSHOST,
+ FILE);
+ file.getName();
+ file.getUuid();
+ file.getType();
+ file.getSize();
+ }
+
+ @Test
+ public void testDiscoverStoragePlugins() throws Ovm3ResourceException {
+ con.setResult(results.simpleResponseWrapWrapper(STORAGEPLUGINXML));
+ for (String plugin : sPt.discoverStoragePlugins()) {
+ sPt.checkStoragePluginProperties(plugin, "plugin_version");
+ sPt.checkStoragePluginAbility(plugin, "snapshot");
+ }
+ }
+
+ @Test(expected = Ovm3ResourceException.class)
+ public void testCheckStoragePluginBogusPlugin()
+ throws Ovm3ResourceException {
+ con.setResult(results.simpleResponseWrapWrapper(STORAGEPLUGINXML));
+ sPt.checkStoragePluginProperties("bogus", "plugin_version");
+ }
+
+ @Test(expected = Ovm3ResourceException.class)
+ public void testCheckStoragePluginBogusProperty()
+ throws Ovm3ResourceException {
+ con.setResult(results.simpleResponseWrapWrapper(STORAGEPLUGINXML));
+ sPt.checkStoragePluginAbility(sPt.getPluginType(), "blabla");
+ }
+
+ @Test
+ public void testMounts() throws Ovm3ResourceException {
+ con.setResult(results.simpleResponseWrapWrapper(NFSMOUNTRESPONSEXML));
+ sPt.storagePluginListFs(NFSHOST);
+ }
+
+ @Test
+ public void testGetFileSystemInfo() throws Ovm3ResourceException {
+ con.setResult(results.simpleResponseWrapWrapper(NFSMOUNTRESPONSEXML));
+ sPt.storagePluginGetFileSystemInfo(FSPROPUUID, FSMNTUUID, NFSHOST,
+ NFSPATH);
+ }
+
+ @Test
+ public void testStoragepluginDestroy() throws Ovm3ResourceException {
+ con.setResult(results.getNil());
+ sPt.storagePluginDestroy(FSMNTUUID, FILE);
+ }
+
+ @Test(expected = Ovm3ResourceException.class)
+ public void testStoragepluginDestroyWrongUUID()
+ throws Ovm3ResourceException {
+ con.setResult(results.getNil());
+ sPt.storagePluginDestroy(FSPROPUUID, FILE);
+ }
+
+ @Test
+ public void testStoragePluginSwitch() throws Ovm3ResourceException {
+ con.setResult(results.simpleResponseWrapWrapper(STORAGEPLUGINXML));
+ sPt.setISCSI();
+ sPt.setNFS();
+ sPt.setOCFS2();
+ }
+}