diff options
author | Jonathan Bauer | 2018-02-06 16:13:46 +0100 |
---|---|---|
committer | Jonathan Bauer | 2018-02-06 16:13:46 +0100 |
commit | 131867fb741814aedc5a99439dc0a5ef0c54bc37 (patch) | |
tree | 2d2aac46305f268766447f749d95e23c623f22d2 /core/modules/vbox-src | |
parent | [rfs-s32] real dd (diff) | |
download | mltk-131867fb741814aedc5a99439dc0a5ef0c54bc37.tar.gz mltk-131867fb741814aedc5a99439dc0a5ef0c54bc37.tar.xz mltk-131867fb741814aedc5a99439dc0a5ef0c54bc37.zip |
[vbox-src] gen_uuid helper
Diffstat (limited to 'core/modules/vbox-src')
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 |