summaryrefslogtreecommitdiffstats
path: root/core/modules/vbox-src/data/opt
diff options
context:
space:
mode:
authorJonathan Bauer2018-02-06 16:13:46 +0100
committerJonathan Bauer2018-02-06 16:13:46 +0100
commit131867fb741814aedc5a99439dc0a5ef0c54bc37 (patch)
tree2d2aac46305f268766447f749d95e23c623f22d2 /core/modules/vbox-src/data/opt
parent[rfs-s32] real dd (diff)
downloadmltk-131867fb741814aedc5a99439dc0a5ef0c54bc37.tar.gz
mltk-131867fb741814aedc5a99439dc0a5ef0c54bc37.tar.xz
mltk-131867fb741814aedc5a99439dc0a5ef0c54bc37.zip
[vbox-src] gen_uuid helper
Diffstat (limited to 'core/modules/vbox-src/data/opt')
-rwxr-xr-xcore/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/create_vbox_config.inc21
-rwxr-xr-xcore/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/init_core.inc13
2 files changed, 16 insertions, 18 deletions
diff --git a/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/create_vbox_config.inc b/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/create_vbox_config.inc
index bc0d299d..e432472f 100755
--- a/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/create_vbox_config.inc
+++ b/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/create_vbox_config.inc
@@ -2,24 +2,9 @@
# Include: create main vbox config file and add machine, hdd, ... entries #
################################################################################
create_vbox_config() {
- # TODO gen_uuid()
- # generated machine and floppy uuids
- # generate random machine/floppies UUIDs using kernel's generator
- # or some defaults if it failed/does not exists
- if [ -r "/proc/sys/kernel/random/uuid" ]; then
- declare -rg MACHINE_UUID="$(cat /proc/sys/kernel/random/uuid)"
- declare -rg SLX_FLOPPY_UUID="$(cat /proc/sys/kernel/random/uuid)"
- else
- # use VM's MAC address, if set (length: 6 * 2 + 5 * ':')
- if isset VM_MAC_ADDR && [ ${#VM_MAC_ADDR} -eq 17 ]; then
- local SUFFIX="${VM_MAC_ADDR//:/}"
- declare -rg MACHINE_UUID="00000000-0000-${SUFFIX:0:4}-${SUFFIX:4:12}"
- declare -rg SLX_FLOPPY_UUID="00000000-ffff-${SUFFIX:0:4}-${SUFFIX:4:12}"
- else
- declare -rg MACHINE_UUID="00000000-0000-0000-12345678"
- declare -rg SLX_FLOPPY_UUID="00000000-0000-ffff-12345678"
- fi
- fi
+ # generate random machine/floppies UUIDs
+ declare -rg MACHINE_UUID="$(gen_uuid)"
+ declare -rg SLX_FLOPPY_UUID="$(gen_uuid)"
cat <<EOF > "${VBOX_ROOT}/VirtualBox.xml"
<VirtualBox xmlns="http://www.innotek.de/VirtualBox-settings" version="1.12-linux">
diff --git a/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/init_core.inc b/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/init_core.inc
index 8a12dcda..d30a0408 100755
--- a/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/init_core.inc
+++ b/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/init_core.inc
@@ -100,6 +100,19 @@ print_namespaced() {
sed -E 's,(/)*/,\1/'"$1"':,g' <<< "$2"
}
+gen_uuid() {
+ local UUID="$(cat /proc/sys/kernel/random/uuid)"
+ notempty UUID && echo $UUID && return 0
+ # fallback using $RANDOM
+ UUID=
+ while [ ${#UUID} -lt 32 ]; do
+ UUID="$UUID$RANDOM"
+ done
+ # sequence might be larger than 32, cut it and insert dashes
+ echo -n "${UUID:0:32}" | \
+ sed -E 's,(.{8})(.{4})(.{4})(.{4})(.{12}),\1-\2-\3-\4-\5,'
+}
+
init_core() {
# check for variables that should have been set by the generic run-virt
if ! isset VM_CLEANNAME IMG_BASENAME SRC_IMG_ABSOLUTE VM_OS_TYPE; then