Tal Nisan has uploaded a new change for review. Change subject: core: Added tests for validation on managed custom mount option ......................................................................
core: Added tests for validation on managed custom mount option Change-Id: I678e116b8a534b69f87be59f9be8813b08cb6910 Bug-Url: https://bugzilla.redhat.com/1129597 Signed-off-by: Tal Nisan <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommand.java A backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommandTest.java M backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionTestCommon.java 3 files changed, 92 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/90/32490/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommand.java index 244638b..f7fb778 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommand.java @@ -113,7 +113,7 @@ private static final List<String> NFS_MANAGED_OPTIONS = Arrays.asList("timeo", "retrans", "vfs_type", "protocol_version", "nfsvers", "vers", "minorversion", "addr", "clientaddr"); private static final List<String> POSIX_MANAGED_OPTIONS = Arrays.asList("vfs_type", "addr", "clientaddr"); - private ValidationResult validateMountOptions() { + protected ValidationResult validateMountOptions() { String mountOptions = getConnection().getMountOptions(); if (StringUtils.isBlank(mountOptions)) { return ValidationResult.VALID; diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommandTest.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommandTest.java new file mode 100644 index 0000000..6d99853 --- /dev/null +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/ConnectStorageToVdsCommandTest.java @@ -0,0 +1,64 @@ +package org.ovirt.engine.core.bll.storage; + +import org.junit.Before; +import org.junit.Test; +import org.ovirt.engine.core.bll.ValidationResult; +import org.ovirt.engine.core.common.action.StorageServerConnectionParametersBase; +import org.ovirt.engine.core.common.businessentities.StorageServerConnections; +import org.ovirt.engine.core.common.businessentities.StorageType; +import org.ovirt.engine.core.common.errors.VdcBllMessages; + +import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; +import static org.ovirt.engine.core.bll.validator.ValidationResultMatchers.failsWith; + +public class ConnectStorageToVdsCommandTest { + + private ConnectStorageToVdsCommand command; + private StorageServerConnectionParametersBase params; + + @Before + public void prepareCommand() { + params = new StorageServerConnectionParametersBase(); + command = new ConnectStorageToVdsCommand(params); + } + + private StorageServerConnections createConnection(StorageType storageType, String mountOptions) { + StorageServerConnections conn = new StorageServerConnections(); + conn.setstorage_type(storageType); + conn.setMountOptions(mountOptions); + return conn; + } + + @Test + public void testNfsConnectionWithInvalidMountOptions() { + testConnectionMountOptionsValidations(StorageType.NFS, "timeo=30, nfsvers=4", false); + } + + @Test + public void testPosixConnectionWithInvalidMountOptions() { + testConnectionMountOptionsValidations(StorageType.POSIXFS, "timeo=30, vfs_type=nfs", false); + } + + @Test + public void testPosixConnectionWithValidMountOptions() { + testConnectionMountOptionsValidations(StorageType.POSIXFS, "timeo=30, validoption=666", true); + } + + @Test + public void testNfsConnectionWithValidMountOptions() { + testConnectionMountOptionsValidations(StorageType.NFS, "validoption=30, anothervalidoption=666", true); + } + + private void testConnectionMountOptionsValidations(StorageType storageType, String mountOptions, boolean shouldSucceed) { + StorageServerConnections newPosixConnection = createConnection(storageType, mountOptions); + params.setStorageServerConnection(newPosixConnection); + ValidationResult result = command.validateMountOptions(); + if (shouldSucceed) { + assertTrue(result.isValid()); + } + else { + assertThat(result, failsWith(VdcBllMessages.VALIDATION_STORAGE_CONNECTION_MOUNT_OPTIONS_CONTAINS_MANAGED_PROPERTY)); + } + } +} diff --git a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionTestCommon.java b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionTestCommon.java index 9db6865..5feef4c 100644 --- a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionTestCommon.java +++ b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/storage/StorageServerConnectionTestCommon.java @@ -2,12 +2,16 @@ import org.junit.Test; import org.ovirt.engine.core.bll.CanDoActionTestUtils; +import org.ovirt.engine.core.bll.ValidationResult; import org.ovirt.engine.core.common.action.StorageServerConnectionParametersBase; import org.ovirt.engine.core.common.businessentities.NfsVersion; import org.ovirt.engine.core.common.businessentities.StorageServerConnections; import org.ovirt.engine.core.common.businessentities.StorageType; import org.ovirt.engine.core.common.errors.VdcBllMessages; import org.ovirt.engine.core.compat.Guid; + +import static org.mockito.Mockito.doReturn; +import static org.mockito.Mockito.when; public abstract class StorageServerConnectionTestCommon { @@ -118,6 +122,29 @@ VdcBllMessages.VALIDATION_STORAGE_CONNECTION_EMPTY_VFSTYPE); } + @Test + public void testConnectionWithInvalidMountOptionsFails() { + StorageServerConnections newPosixConnection = + createPosixConnection("multipass.my.domain.tlv.company.com:/export/allstorage/data1", + StorageType.NFS, "nfs", "timeo=30"); + parameters.setStorageServerConnection(newPosixConnection); + parameters.setVdsId(Guid.Empty); + doReturn(new ValidationResult(VdcBllMessages.VALIDATION_STORAGE_CONNECTION_MOUNT_OPTIONS_CONTAINS_MANAGED_PROPERTY)).when(getCommand()).validateMountOptions(); + CanDoActionTestUtils.runAndAssertCanDoActionFailure(getCommand(), VdcBllMessages.VALIDATION_STORAGE_CONNECTION_MOUNT_OPTIONS_CONTAINS_MANAGED_PROPERTY); + } + + @Test + public void testConnectionWithValidMountOptionsSucceeds() { + StorageServerConnections newPosixConnection = + createPosixConnection("multipass.my.domain.tlv.company.com:/export/allstorage/data1", + StorageType.NFS, "nfs", "timeo=30"); + parameters.setStorageServerConnection(newPosixConnection); + parameters.setVdsId(Guid.Empty); + doReturn(ValidationResult.VALID).when(getCommand()).validateMountOptions(); + when(getCommand().getStorageConnDao().get(newPosixConnection.getid())).thenReturn(newPosixConnection); + CanDoActionTestUtils.runAndAssertCanDoActionSuccess(getCommand()); + } + protected abstract ConnectStorageToVdsCommand getCommand(); protected abstract boolean createConnectionWithId(); } -- To view, visit http://gerrit.ovirt.org/32490 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I678e116b8a534b69f87be59f9be8813b08cb6910 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.5 Gerrit-Owner: Tal Nisan <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
