diff options
author | Jonathan Bauer | 2018-02-01 18:01:22 +0100 |
---|---|---|
committer | Jonathan Bauer | 2018-02-01 18:01:22 +0100 |
commit | 94fab6008b14c8b62e8b5a68b5e19cf9797b6499 (patch) | |
tree | 82d968de7f65f33a96147b0b04565f89d698a6aa /core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/init_core.inc | |
parent | [vbox-src] finalized build script + conf (diff) | |
download | mltk-94fab6008b14c8b62e8b5a68b5e19cf9797b6499.tar.gz mltk-94fab6008b14c8b62e8b5a68b5e19cf9797b6499.tar.xz mltk-94fab6008b14c8b62e8b5a68b5e19cf9797b6499.zip |
[vbox-src] run-virt plugin functional (wip)
Diffstat (limited to 'core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/init_core.inc')
-rwxr-xr-x | core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/init_core.inc | 52 |
1 files changed, 52 insertions, 0 deletions
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 new file mode 100755 index 00000000..ad3cbe96 --- /dev/null +++ b/core/modules/vbox-src/data/opt/openslx/vmchooser/plugins/virtualbox/includes/init_core.inc @@ -0,0 +1,52 @@ +####################################################################### +# Include: Declaration of core variables and some sanity checks # +####################################################################### +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 + local MSG="Incomplete A required variable was not set by generic run-virt." + slxlog "virt-vbox-init" "${MSG}" + writelog "${MSG}" + error_user "Wichtige variablen, die das VBox Plugin benötigt, wurden nicht + gesetzt. Kann die VM nicht starten." + cleanexit 1 + fi + + # Check for vbox binaries in VBOX_BASE_DIR + for BIN in VBoxManage VirtualBox VBoxHeadless; do + if ! [ -x "${VBOX_BASE_DIR}/${BIN}" ]; then + local MSG="${BIN} not found in ${VBOX_BASE_DIR}." + writelog "${MSG}" + slxlog "virt-vbox-bin" "${MSG}" + cleanexit 1 + fi + done + + # Define which features the VMware plugin supports + declare -rg VBOX_ROOT="${TMPDIR}/vbox" # dir for configs + declare -rg VBOX_MACHINES_DIR="${VBOX_ROOT}/Machines" + declare -rg VBOX_SNAPSHOT_DIR="${VBOX_MACHINES_DIR}/${VM_CLEANNAME}/Snapshots" + if ! mkdir -p "${VBOX_SNAPSHOT_DIR}"; then + writelog "Failed to create '${VBOX_SNAPSHOT_DIR}'." + cleanexit 1 + fi + declare -rg VBOX_HDD_DIR="${VBOX_ROOT}/HardDisks" + if ! mkdir -p "${VBOX_HDD_DIR}"; then + writelog "Failed to create '${VBOX_HDD_DIR}'." + cleanexit 1 + fi + declare -rg VBOX_HDD_LINK="${VM_DISKFILE_RO}" + export VBOX_USER_HOME="${VBOX_ROOT}" # instead of $HOME/.VirtualBox + + # finally generate a random machine UUID, using some default if it fails. + declare -g MACHINE_UUID="$(cat /proc/sys/kernel/random/uuid)" + notempty MACHINE_UUID || MACHINE_UUID="00000000-0000-0000-0000-12345678" + readonly MACHINE_UUID + + writelog "Directories:" + writelog "\tConfig dir:\t\t$VBOX_ROOT" + writelog "\tMachines dir:\t\t$VBOX_MACHINES_DIR" + writelog "\tSnapshots dir:\t\t$VBOX_SNAPSHOT_DIR" +} + +call_post_source init_core |