Moti Asayag has uploaded a new change for review. Change subject: engine: Report event for external port removal failure ......................................................................
engine: Report event for external port removal failure If an external network provider is inaccessible, the engine command should not be failed. Instead, the port removal failure will be logged to the events log for a future reference for the admin to handle it on the neutron server. Change-Id: I57d42da98ff1c86f242f53204520fd4e219b3205 Bug-Url: https://bugzilla.redhat.com/1102542 Signed-off-by: Moti Asayag <[email protected]> (cherry picked from commit 860309e6d9631acf715b7e44fb458393798ac393) --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/ExternalNetworkManager.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/ActivateDeactivateVmNicCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java M backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties 4 files changed, 22 insertions(+), 4 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/75/30675/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/ExternalNetworkManager.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/ExternalNetworkManager.java index 8d2ced2..08a1dd8 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/ExternalNetworkManager.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/ExternalNetworkManager.java @@ -3,9 +3,14 @@ import org.ovirt.engine.core.bll.network.cluster.NetworkHelper; import org.ovirt.engine.core.bll.provider.ProviderProxyFactory; import org.ovirt.engine.core.bll.provider.network.NetworkProviderProxy; +import org.ovirt.engine.core.common.AuditLogType; +import org.ovirt.engine.core.common.businessentities.Provider; import org.ovirt.engine.core.common.businessentities.network.Network; import org.ovirt.engine.core.common.businessentities.network.VmNic; +import org.ovirt.engine.core.common.errors.VdcBLLException; import org.ovirt.engine.core.dal.dbbroker.DbFacade; +import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector; +import org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogableBase; /** * Utility class to help manage external networks, such as deallocate NICs. @@ -53,9 +58,19 @@ */ public void deallocateIfExternal() { if (getNetwork() != null && getNetwork().isExternal()) { - NetworkProviderProxy providerProxy = ProviderProxyFactory.getInstance().create( - DbFacade.getInstance().getProviderDao().get(getNetwork().getProvidedBy().getProviderId())); - providerProxy.deallocate(nic); + Provider<?> provider = + DbFacade.getInstance().getProviderDao().get(getNetwork().getProvidedBy().getProviderId()); + NetworkProviderProxy providerProxy = ProviderProxyFactory.getInstance().create(provider); + + try { + providerProxy.deallocate(nic); + } catch (VdcBLLException e) { + AuditLogableBase removePortFailureEvent = new AuditLogableBase(); + removePortFailureEvent.addCustomValue("NicName", nic.getName()); + removePortFailureEvent.addCustomValue("NicId", nic.getId().toString()); + removePortFailureEvent.addCustomValue("ProviderName", provider.getName()); + AuditLogDirector.log(removePortFailureEvent, AuditLogType.REMOVE_PORT_FROM_EXTERNAL_PROVIDER_FAILED); + } } } } diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/ActivateDeactivateVmNicCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/ActivateDeactivateVmNicCommand.java index c85f7fb..341d7f7 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/ActivateDeactivateVmNicCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/network/vm/ActivateDeactivateVmNicCommand.java @@ -7,6 +7,7 @@ import org.ovirt.engine.core.bll.ValidationResult; import org.ovirt.engine.core.bll.VmCommand; import org.ovirt.engine.core.bll.context.CommandContext; +import org.ovirt.engine.core.bll.network.ExternalNetworkManager; import org.ovirt.engine.core.bll.network.VmInterfaceManager; import org.ovirt.engine.core.bll.network.cluster.NetworkHelper; import org.ovirt.engine.core.bll.provider.ProviderProxyFactory; @@ -162,7 +163,7 @@ } private void unplugFromExternalNetwork() { - getProviderProxy().deallocate(getParameters().getNic()); + new ExternalNetworkManager(getParameters().getNic(), getNetwork()).deallocateIfExternal(); } private NetworkProviderProxy getProviderProxy() { diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java index 4ef53e5..c15eb49 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/AuditLogType.java @@ -704,6 +704,7 @@ PERSIST_NETWORK_ON_HOST_FINISHED(1146), PERSIST_NETWORK_ON_HOST_FAILED(1147, AuditLogSeverity.ERROR), MULTI_UPDATE_NETWORK_NOT_POSSIBLE(1148, AuditLogSeverity.WARNING), + REMOVE_PORT_FROM_EXTERNAL_PROVIDER_FAILED(1149, AuditLogSeverity.WARNING), // Import/Export IMPORTEXPORT_STARTING_EXPORT_VM(1162), diff --git a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties index 3ddcca3..7851cfa 100644 --- a/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties +++ b/backend/manager/modules/dal/src/main/resources/bundles/AuditLogMessages.properties @@ -509,6 +509,7 @@ NETWORK_ATTACH_NETWORK_TO_VDS_GROUP_FAILED=Failed to attach Network ${NetworkName} to Cluster ${VdsGroupName} NETWORK_DETACH_NETWORK_TO_VDS_GROUP=Network ${NetworkName} detached from Cluster ${VdsGroupName} NETWORK_DETACH_NETWORK_TO_VDS_GROUP_FAILED=Failed to detach Network ${NetworkName} from Cluster ${VdsGroupName} +REMOVE_PORT_FROM_EXTERNAL_PROVIDER_FAILED=Failed to remove vNIC ${NicName} from external network provider ${ProviderName}. The vNIC can be identified on the provider by device id ${NicId}. NETWORK_ACTIVATE_VM_INTERFACE_SUCCESS=Network Interface ${InterfaceName} (${InterfaceType}) was plugged to VM ${VmName}. (User: ${UserName}) NETWORK_ACTIVATE_VM_INTERFACE_FAILURE=Failed to plug Network Interface ${InterfaceName} (${InterfaceType}) to VM ${VmName}. (User: ${UserName}) NETWORK_DEACTIVATE_VM_INTERFACE_SUCCESS=Network Interface ${InterfaceName} (${InterfaceType}) was unplugged from VM ${VmName}. (User: ${UserName}) -- To view, visit http://gerrit.ovirt.org/30675 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I57d42da98ff1c86f242f53204520fd4e219b3205 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.5 Gerrit-Owner: Moti Asayag <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
