Alona Kaplan has uploaded a new change for review.

Change subject: engine: Dual mode shouldn't be sent to vdsm on hotplug nic
......................................................................

engine: Dual mode shouldn't be sent to vdsm on hotplug nic

Since 3.0 vdsm doesn't support Dual mode on vm interface.
When running a vm, VmInfoBuilder takes care of replacing the
interface type in case it is Dual mode.
This patch adds the same treatment to hot plug nic.

Bug-Url: https://bugzilla.redhat.com/1079992
Bug-Url: https://bugzilla.redhat.com/1083959
Change-Id: Ifdc878a5f8391659a58cf25f2f9137c944689ce4
Signed-off-by: Alona Kaplan <[email protected]>
---
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HotPlugNicVDSCommand.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java
2 files changed, 15 insertions(+), 22 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/51/26451/1

diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HotPlugNicVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HotPlugNicVDSCommand.java
index 81297cc..35f53a0 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HotPlugNicVDSCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/HotPlugNicVDSCommand.java
@@ -47,7 +47,9 @@
 
         addAddress(map, vmDevice.getAddress());
         map.put(VdsProperties.SpecParams, vmDevice.getSpecParams());
-        map.put(VdsProperties.NIC_TYPE, 
VmInterfaceType.forValue(nic.getType()).getInternalName());
+        map.put(VdsProperties.NIC_TYPE,
+                
VmInfoBuilder.evaluateInterfaceType(VmInterfaceType.forValue(nic.getType()), 
getParameters().getVm()
+                        .getHasAgent()));
         map.put(VdsProperties.DeviceId, 
vmDevice.getId().getDeviceId().toString());
 
         if (vmDevice.getBootOrder() > 0) {
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java
index fceeccc..affae71 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilder.java
@@ -368,33 +368,24 @@
                 if (vmInterface.getType() != null) {
                     ifaceType = 
VmInterfaceType.forValue(vmInterface.getType());
                 }
-                if (ifaceType == VmInterfaceType.rtl8139_pv) {
-                    if (vm.getHasAgent()) {
-                        addNetworkInterfaceProperties(struct,
-                                vmInterface,
-                                vmDevice,
-                                VmInterfaceType.pv.name(),
-                                vm.getVdsGroupCompatibilityVersion());
-                    } else {
-                        addNetworkInterfaceProperties(struct,
-                                vmInterface,
-                                vmDevice,
-                                VmInterfaceType.rtl8139.name(),
-                                vm.getVdsGroupCompatibilityVersion());
-                    }
-                } else {
-                    addNetworkInterfaceProperties(struct,
-                            vmInterface,
-                            vmDevice,
-                            ifaceType.getInternalName(),
-                            vm.getVdsGroupCompatibilityVersion());
-                }
+
+                addNetworkInterfaceProperties(struct,
+                        vmInterface,
+                        vmDevice,
+                        VmInfoBuilder.evaluateInterfaceType(ifaceType, 
vm.getHasAgent()),
+                        vm.getVdsGroupCompatibilityVersion());
                 devices.add(struct);
                 addToManagedDevices(vmDevice);
             }
         }
     }
 
+    public static String evaluateInterfaceType(VmInterfaceType ifaceType, 
boolean vmHasAgent) {
+        return ifaceType == VmInterfaceType.rtl8139_pv
+                ? (vmHasAgent ? VmInterfaceType.pv.name() : 
VmInterfaceType.rtl8139.name())
+                : ifaceType.getInternalName();
+    }
+
     @Override
     protected void buildVmSoundDevices() {
         buildVmDevicesFromDb(VmDeviceGeneralType.SOUND, true);


-- 
To view, visit http://gerrit.ovirt.org/26451
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ifdc878a5f8391659a58cf25f2f9137c944689ce4
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.4
Gerrit-Owner: Alona Kaplan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to