aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xkvmx28
1 files changed, 26 insertions, 2 deletions
diff --git a/kvmx b/kvmx
index 8667405..885ebec 100755
--- a/kvmx
+++ b/kvmx
@@ -2185,8 +2185,32 @@ function kvmx_create {
# Disposable guest
function kvmx_disposable {
- local date="`date +%Y%m%d%I%M%S`"
- local disposable="$VM-disposable-$date"
+ # Determine guest name by appending the current date
+ # This approache leads to the following UNIX socket error
+ # if the VM name is too long:
+ #
+ # UNIX socket path '/var/cache/qemu/.../monitor' is too long
+ # Path must be less than 108 bytes
+ #
+ #local date="`date +%Y%m%d%I%M%S`"
+ #local disposable="$VM-disposable-$date"
+
+ local disposable="$VM-disposable-"
+ local count=0
+
+ # Determine guest name using a sequential suffix
+ #
+ # This results in smaller guest names which are les prone to
+ # the UNIX socket path issue and also is easier to type
+ while true; do
+ disposable="${disposable}${count}"
+ if ! kvmx list_image ${disposable} &> /dev/null; then
+ break
+ fi
+
+ echo $count
+ let count++
+ done
# Clone and ensure we use a backing file
kvmx clone $VM $disposable --skell || exit 1