Martin Sivák has uploaded a new change for review. Change subject: engine: Improve reporting when scheduling fail on network ......................................................................
engine: Improve reporting when scheduling fail on network This fixes and improves the way we construct canDoAction messages in the NetworkPolicyUnit. Change-Id: Ic60daf20842ba69457b293f451060e21381faf80 Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1114987 Signed-off-by: Martin Sivak <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/errors/VdcBllMessages.java M backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties M frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java M frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties M frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties 6 files changed, 33 insertions(+), 20 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/90/29790/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java index a9c5391..88de9cf 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/scheduling/policyunits/NetworkPolicyUnit.java @@ -48,7 +48,6 @@ Map<Guid, VdsNetworkInterface> hostDisplayNics = getDisplayNics(displayNetwork); for (VDS host : hosts) { - List<String> missingIfs = new ArrayList<>(); ValidationResult result = validateRequiredNetworksAvailable(host, vm, @@ -56,14 +55,12 @@ displayNetwork, networksByName, hostNics.get(host.getId()), - hostDisplayNics.get(host.getId()), - missingIfs); + hostDisplayNics.get(host.getId())); if (!result.isValid()) { toRemoveHostList.add(host); - String nics = StringUtils.join(missingIfs, ", "); - messages.addMessage(host.getId(), String.format("$networkNames %1$s", nics)); - messages.addMessage(host.getId(), VdcBllMessages.VAR__DETAIL__NETWORK_MISSING.name()); + messages.addMessages(host.getId(), result.getVariableReplacements()); + messages.addMessage(host.getId(), result.getMessage().name()); } } hosts.removeAll(toRemoveHostList); @@ -107,8 +104,9 @@ Network displayNetwork, Map<String, Network> networksByName, List<String> hostNetworks, - VdsNetworkInterface displayNic, - List<String> missingNetworks) { + VdsNetworkInterface displayNic) { + + List<String> missingIfs = new ArrayList<>(); boolean onlyRequiredNetworks = Config.<Boolean> getValue(ConfigValues.OnlyRequiredNetworksMandatoryForVdsSelection); @@ -126,17 +124,18 @@ } } } + if (!found) { - if (missingNetworks != null) { - missingNetworks.add(vmIf.getNetworkName()); - } - StringBuilder sbBuilder = new StringBuilder(); - sbBuilder.append(Entities.vmInterfacesByNetworkName(vmNICs).keySet()); - log.debugFormat("host {0} is missing networks required by VM nics {1}", - vds.getName(), - sbBuilder.toString()); - return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_VDS_VM_NETWORKS); + missingIfs.add(vmIf.getNetworkName()); } + } + + if (!missingIfs.isEmpty()) { + String nics = StringUtils.join(missingIfs, ", "); + log.debugFormat("host {0} is missing networks required by VM nics {1}", + vds.getName(), nics); + return new ValidationResult(VdcBllMessages.VAR__DETAIL__NETWORK_MISSING, + String.format("$networkNames %1$s", nics)); } return validateDisplayNetworkAvailability(vds, onlyRequiredNetworks, displayNic, displayNetwork); @@ -185,7 +184,7 @@ // Check if display network attached to host and has a proper boot protocol if (displayNic == null) { log.debugFormat("host {0} is missing the cluster's display network", host.getName()); - return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_MISSING_DISPLAY_NETWORK); + return new ValidationResult(VdcBllMessages.VAR__DETAIL__DISPLAY_NETWORK_MISSING); } if (displayNic.getBootProtocol() == NetworkBootProtocol.NONE) { @@ -193,8 +192,8 @@ host.getName(), displayNetwork.getName(), displayNic.getName()); - return new ValidationResult(VdcBllMessages.ACTION_TYPE_FAILED_DISPLAY_NETWORK_HAS_NO_BOOT_PROTOCOL, - String.format("$DisplayNetwork %s", displayNetwork.getName())); + return new ValidationResult(VdcBllMessages.VAR__DETAIL__DISPLAY_NETWORK_HAS_NO_BOOT_PROTOCOL, + String.format("$DisplayNetwork %1$s", displayNetwork.getName())); } return ValidationResult.VALID; 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 2597294..36d266c 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 @@ -967,6 +967,8 @@ VAR__FILTERTYPE__INTERNAL, VAR__FILTERTYPE__EXTERNAL, VAR__DETAIL__NETWORK_MISSING, + VAR__DETAIL__DISPLAY_NETWORK_MISSING, + VAR__DETAIL__DISPLAY_NETWORK_HAS_NO_BOOT_PROTOCOL, VAR__DETAIL__AFFINITY_FAILED_POSITIVE, VAR__DETAIL__AFFINITY_FAILED_NEGATIVE, VAR__DETAIL__LOW_CPU_LEVEL, diff --git a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties index 33de79b1..a1c682f 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AppErrors.properties @@ -1166,6 +1166,8 @@ SCHEDULING_HOST_FILTERED_REASON=The host ${hostName} did not satisfy ${filterType} filter ${filterName}. SCHEDULING_HOST_FILTERED_REASON_WITH_DETAIL=The host ${hostName} did not satisfy ${filterType} filter ${filterName} because ${detailMessage}. VAR__DETAIL__NETWORK_MISSING=$detailMessage network(s) ${networkNames} are missing +VAR__DETAIL__DISPLAY_NETWORK_MISSING=$detailMessage display network was missing +VAR__DETAIL__DISPLAY_NETWORK_HAS_NO_BOOT_PROTOCOL=$detailMessage the display network ${DisplayNetwork} must have a DHCP or Static boot protocol when configured on a host VAR__DETAIL__AFFINITY_FAILED_POSITIVE=$detailMessage it did not match positive affinity rules ${affinityRules} VAR__DETAIL__AFFINITY_FAILED_NEGATIVE=$detailMessage it matched negative affinity rules ${affinityRules} VAR__DETAIL__LOW_CPU_LEVEL=$detailMessage its CPU level ${hostCPULevel} is lower than the VM requires ${vmCPULevel} diff --git a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java index ca4fd21..34abc7d 100644 --- a/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java +++ b/frontend/webadmin/modules/frontend/src/main/java/org/ovirt/engine/ui/frontend/AppErrors.java @@ -3129,6 +3129,12 @@ @DefaultStringValue("$detailMessage network(s) ${networkNames} are missing") String VAR__DETAIL__NETWORK_MISSING(); + @DefaultStringValue("$detailMessage display network was missing") + String VAR__DETAIL__DISPLAY_NETWORK_MISSING(); + + @DefaultStringValue("$detailMessage the display network ${DisplayNetwork} must have a DHCP or Static boot protocol when configured on a host") + String VAR__DETAIL__DISPLAY_NETWORK_HAS_NO_BOOT_PROTOCOL(); + @DefaultStringValue("$detailMessage its CPU level ${hostCPULevel} is lower than the VM requires ${vmCPULevel}") String VAR__DETAIL__LOW_CPU_LEVEL(); diff --git a/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties b/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties index c238683..b51699e 100644 --- a/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties +++ b/frontend/webadmin/modules/userportal-gwtp/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties @@ -999,6 +999,8 @@ SCHEDULING_HOST_FILTERED_REASON=The host ${hostName} did not satisfy ${filterType} filter ${filterName}. SCHEDULING_HOST_FILTERED_REASON_WITH_DETAIL=The host ${hostName} did not satisfy ${filterType} filter ${filterName} because ${detailMessage}. VAR__DETAIL__NETWORK_MISSING=$detailMessage network(s) ${networkNames} are missing +VAR__DETAIL__DISPLAY_NETWORK_MISSING=$detailMessage display network was missing +VAR__DETAIL__DISPLAY_NETWORK_HAS_NO_BOOT_PROTOCOL=$detailMessage the display network ${DisplayNetwork} must have a DHCP or Static boot protocol when configured on a host VAR__DETAIL__AFFINITY_FAILED_POSITIVE=$detailMessage it did not match positive affinity rules ${affinityRules} VAR__DETAIL__AFFINITY_FAILED_NEGATIVE=$detailMessage it matched negative affinity rules ${affinityRules} VAR__DETAIL__LOW_CPU_LEVEL=$detailMessage its CPU level ${hostCPULevel} is lower than the VM requires ${vmCPULevel} diff --git a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties index 8f95528..e75ed82 100644 --- a/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties +++ b/frontend/webadmin/modules/webadmin/src/main/resources/org/ovirt/engine/ui/frontend/AppErrors.properties @@ -1137,6 +1137,8 @@ SCHEDULING_HOST_FILTERED_REASON=The host ${hostName} did not satisfy ${filterType} filter ${filterName}. SCHEDULING_HOST_FILTERED_REASON_WITH_DETAIL=The host ${hostName} did not satisfy ${filterType} filter ${filterName} because ${detailMessage}. VAR__DETAIL__NETWORK_MISSING=$detailMessage network(s) ${networkNames} are missing +VAR__DETAIL__DISPLAY_NETWORK_MISSING=$detailMessage display network was missing +VAR__DETAIL__DISPLAY_NETWORK_HAS_NO_BOOT_PROTOCOL=$detailMessage the display network ${DisplayNetwork} must have a DHCP or Static boot protocol when configured on a host VAR__DETAIL__AFFINITY_FAILED_POSITIVE=$detailMessage it did not match positive affinity rules ${affinityRules} VAR__DETAIL__AFFINITY_FAILED_NEGATIVE=$detailMessage it matched negative affinity rules ${affinityRules} VAR__DETAIL__LOW_CPU_LEVEL=$detailMessage its CPU level ${hostCPULevel} is lower than the VM requires ${vmCPULevel} -- To view, visit http://gerrit.ovirt.org/29790 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: Ic60daf20842ba69457b293f451060e21381faf80 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Sivák <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
