From 9f577a0a32b227a6f42cafdfc3b7f2280163f211 Mon Sep 17 00:00:00 2001 From: Jonathan Bauer Date: Mon, 16 Apr 2018 11:09:49 +0200 Subject: [vbox-src] use xmlstarlet to handle placeholders --- .../includes/finalize_machine_config.inc | 45 ++++++++++++---------- 1 file changed, 25 insertions(+), 20 deletions(-) (limited to 'core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/finalize_machine_config.inc') diff --git a/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/finalize_machine_config.inc b/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/finalize_machine_config.inc index 178da0e7..084b777f 100755 --- a/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/finalize_machine_config.inc +++ b/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/finalize_machine_config.inc @@ -8,27 +8,20 @@ finalize_machine_config() { # remove ':' from MAC addr for vbox and generate a VDE (virtual device ethernet) VM_MAC_ADDR="$(sed 's/://g' <<< ${VM_MAC_ADDR})" - # translate network kinds (nat, bridged, host-only) - # TODO: Server should prepare this in returned xml - case "${network_kind}" in - bridge*) - network_kind='HostOnlyInterface name="vboxnet0"' - ;; - host*) - network_kind='HostOnlyInterface name="vboxnet2"' - ;; - *) - network_kind='HostOnlyInterface name="vboxnet1"' - esac - - sed -i "s,%VM_DISK_REDOLOGDIR%,$VBOX_SNAPSHOT_DIR,g" $TMPCONFIG - sed -i "s,%VM_DISK_PATH%,${VBOX_HDD_LINK},g" $TMPCONFIG - sed -i "s/%OpenSLX_MUUID%/{${MACHINE_UUID}}/g" $TMPCONFIG - sed -i "0,/%OpenSLX_HDDUUID_0/ s/%OpenSLX_HDDUUID_0%/{${HDD_UUID}}/" $TMPCONFIG - sed -i "0,/%OpenSLX_HDDUUID_0/ s/%OpenSLX_HDDUUID_0%/{${SNAPSHOT_UUID}}/" $TMPCONFIG - sed -i 's,%OpenSLX_CPU%,'"${CPU_CORES}"',g' $TMPCONFIG - sed -i 's,%OpenSLX_MEMORY%,'"${VM_MEM}"',g' $TMPCONFIG + # set machine uuid + set_attr "/VirtualBox/Machine" "uuid" "{${MACHINE_UUID}}" + + # set read-only image path and uuid + set_attr \ + "/VirtualBox/Machine/MediaRegistry/HardDisks/HardDisk" \ + "location" "${VBOX_HDD_LINK}" + set_attr \ + "/VirtualBox/Machine/MediaRegistry/HardDisks/HardDisk" \ + "uuid" "{${HDD_UUID}}" + # set snapshot dir + set_attr "/VirtualBox/Machine" "snapshotFolder" "${VBOX_SNAPSHOT_DIR}" + # Add a HardDisk node for the snapshot add_node \ "/VirtualBox/Machine/MediaRegistry/HardDisks/HardDisk" "HardDisk" \ @@ -37,6 +30,12 @@ finalize_machine_config() { "format=VDI" \ "type=Normal" + # set snapshot uuid to the storage controller + set_attr \ + "/VirtualBox/Machine/StorageControllers/StorageController/AttachedDevice/Image" \ + "uuid" "{${SNAPSHOT_UUID}}" + + # add storage controller and 2 floppies to it add_node \ "/VirtualBox/Machine/StorageControllers" "StorageController" \ @@ -77,6 +76,12 @@ finalize_machine_config() { # set the MAC address set_attr "/VirtualBox/Machine/Hardware/Network/Adapter" "MACAddress" "${VM_MAC_ADDR}" + # set vm's memory + set_attr "/VirtualBox/Machine/Hardware/Memory" "RAMSize" "${VM_MEM}" + + # set cpu cores and features + set_attr "/VirtualBox/Machine/Hardware/CPU" "count" "${CPU_CORES}" + # check if KVM is available and activate it if so if source /run/hwinfo && [ "${HW_KVM}" = "ENABLED" ]; then set_attr "/VirtualBox/Machine/Hardware/Paravirt" "provider" "KVM" -- cgit v1.2.3-55-g7522