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

Reply via email to