Moti Asayag has uploaded a new change for review. Change subject: engine: Validate network provider properties ......................................................................
engine: Validate network provider properties Validates that host which is installed with network provider supplies all of the required properties or the provider has them defined. Change-Id: Idcdcddb9694426c1e656c9fa1e04dc7f37e8115c Bug-Url: https://bugzilla.redhat.com/1061728 Signed-off-by: Moti Asayag <masa...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java 2 files changed, 62 insertions(+), 0 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/20/29520/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsCommand.java index 332fd07..191113c 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVdsCommand.java @@ -30,7 +30,10 @@ import org.ovirt.engine.core.common.action.VdsActionParameters; import org.ovirt.engine.core.common.action.VdsOperationActionParameters.AuthenticationMethod; import org.ovirt.engine.core.common.businessentities.BusinessEntitiesDefinitions; +import org.ovirt.engine.core.common.businessentities.OpenstackNetworkProviderProperties; +import org.ovirt.engine.core.common.businessentities.OpenstackNetworkProviderProperties.AgentConfiguration; import org.ovirt.engine.core.common.businessentities.Provider; +import org.ovirt.engine.core.common.businessentities.ProviderType; import org.ovirt.engine.core.common.businessentities.StoragePool; import org.ovirt.engine.core.common.businessentities.VDS; import org.ovirt.engine.core.common.businessentities.VDSStatus; @@ -343,6 +346,18 @@ } } + if (returnValue && getParameters().getNetworkProviderId() != null) { + + NetworkProviderValidator validator = + new NetworkProviderValidator(getParameters().getNetworkProviderId(), + getParameters().getNetworkMappings()); + + returnValue = validate(validator.providerExists()) + && validate(validator.providerTypeValid()) + && validate(validator.networkMappingsProvided()) + && validate(validator.messagingBrokerPropertiesProvided()); + } + if (returnValue && isGlusterSupportEnabled()) { if (clusterHasServers()) { VDS upServer = getClusterUtils().getUpServer(getVdsGroupId()); @@ -554,4 +569,48 @@ return jobProperties; } + public class NetworkProviderValidator { + private Guid providerId; + private String mappings; + private Provider<?> provider; + + public NetworkProviderValidator(Guid providerId, String mappings) { + this.providerId = providerId; + this.mappings = mappings; + } + + public ValidationResult providerExists() { + provider = getProviderDao().get(providerId); + return provider == null + ? new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_PROVIDER_DOESNT_EXIST) + : ValidationResult.VALID; + } + + public ValidationResult providerTypeValid() { + return provider.getType() == ProviderType.OPENSTACK_NETWORK + ? ValidationResult.VALID + : new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_PROVIDER_TYPE_MISMATCH); + } + + public ValidationResult networkMappingsProvided() { + return StringUtils.isBlank(mappings) + && StringUtils.isBlank(getProviderProperties().getNetworkMappings()) + ? new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_MISSING_NETWORK_MAPPINGS) + : ValidationResult.VALID; + } + + public ValidationResult messagingBrokerPropertiesProvided() { + AgentConfiguration properties = getProviderProperties(); + return properties.getMessagingConfiguration() == null + || StringUtils.isEmpty(properties.getMessagingConfiguration().getAddress()) + ? new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_MISSING_MESSAGING_BROKER_PROPERTIES) + : ValidationResult.VALID; + } + + public AgentConfiguration getProviderProperties() { + OpenstackNetworkProviderProperties properties = + (OpenstackNetworkProviderProperties) provider.getAdditionalProperties(); + return properties.getAgentConfiguration(); + } + } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java index fe44459..7401dd6 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java @@ -547,6 +547,9 @@ ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_REQUIRED(ErrorType.NOT_SUPPORTED), ACTION_TYPE_FAILED_ISCSI_BOND_NETWORK_CANNOT_BE_REQUIRED(ErrorType.NOT_SUPPORTED), ACTION_TYPE_FAILED_PROVIDER_NETWORKS_USED(ErrorType.CONFLICT), + ACTION_TYPE_FAILED_PROVIDER_TYPE_MISMATCH(ErrorType.BAD_PARAMETERS), + ACTION_TYPE_FAILED_MISSING_NETWORK_MAPPINGS(ErrorType.BAD_PARAMETERS), + ACTION_TYPE_FAILED_MISSING_MESSAGING_BROKER_PROPERTIES(ErrorType.BAD_PARAMETERS), ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_PORT_MIRRORED(ErrorType.NOT_SUPPORTED), ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_BE_REWIRED(ErrorType.NOT_SUPPORTED), ACTION_TYPE_FAILED_EXTERNAL_NETWORK_CANNOT_HAVE_MTU(ErrorType.NOT_SUPPORTED), -- To view, visit http://gerrit.ovirt.org/29520 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Idcdcddb9694426c1e656c9fa1e04dc7f37e8115c Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Moti Asayag <masa...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches