summaryrefslogtreecommitdiffstats
path: root/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericInterfaceDevices.java
diff options
context:
space:
mode:
Diffstat (limited to 'core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericInterfaceDevices.java')
-rw-r--r--core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericInterfaceDevices.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericInterfaceDevices.java b/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericInterfaceDevices.java
index ab44b784..6cf12ce2 100644
--- a/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericInterfaceDevices.java
+++ b/core/modules/qemu/runvirt-plugin-qemu/src/main/java/org/openslx/runvirt/plugin/qemu/configuration/TransformationGenericInterfaceDevices.java
@@ -4,7 +4,11 @@ import java.util.ArrayList;
import org.openslx.libvirt.domain.Domain;
import org.openslx.libvirt.domain.device.Interface;
+import org.openslx.libvirt.domain.device.InterfaceBridge;
+import org.openslx.libvirt.domain.device.Interface.Model;
+import org.openslx.libvirt.domain.device.Interface.Type;
import org.openslx.runvirt.plugin.qemu.cmdln.CommandLineArgs;
+import org.openslx.virtualization.configuration.VirtualizationConfigurationQemu;
import org.openslx.virtualization.configuration.VirtualizationConfigurationQemuUtils;
import org.openslx.virtualization.configuration.transformation.TransformationException;
import org.openslx.virtualization.configuration.transformation.TransformationGeneric;
@@ -59,8 +63,17 @@ public class TransformationGenericInterfaceDevices extends TransformationGeneric
final ArrayList<Interface> devices = config.getInterfaceDevices();
final Interface device = VirtualizationConfigurationQemuUtils.getArrayIndex( devices, index );
- if ( device != null ) {
- if ( macAddress == null ) {
+ if ( device == null ) {
+ if ( macAddress != null && !macAddress.isEmpty() ) {
+ // create network interface if it does not exists
+ final InterfaceBridge newDevice = config.addInterfaceBridgeDevice();
+ newDevice.setType( Type.BRIDGE );
+ newDevice.setModel( Model.VIRTIO );
+ newDevice.setMacAddress( macAddress );
+ newDevice.setSource( VirtualizationConfigurationQemu.NETWORK_BRIDGE_NAT_DEFAULT );
+ }
+ } else {
+ if ( macAddress == null || macAddress.isEmpty() ) {
// remove network interface device if MAC address is not set
device.remove();
} else {