#!/bin/sh

vmid=$1
vmname=$2
vlan=$3
gold=$4

set -e

[ "$vlan" = "N" ] && vlan="" || vlan=",tag=$vlan"

clone () {
set -e
    zfs clone $gd/$gold rpool/vmkvm/vm-$vmid-disk-0
    qm create $vmid --name $vmname \
        --cpu host --cores 4 --ostype win10 \
        --memory $mem --balloon 2048 \
        --scsihw virtio-scsi-pci --boot order=scsi0 \
        --ide2 none,media=cdrom \
        --net0 virtio,bridge=vmbr0$vlan \
        --protection 0 --agent 1

    qm set $vmid --scsi0 vmkvm:vm-$vmid-disk-0,discard=on,ssd=1 >/dev/null
    hw=$(sed -n 's/net0: virtio=\([^,]*\),.*/\1/p' /etc/pve/qemu-server/$vmid.conf) #'
}

mem=4096
gd=rpool/data/gold

node=$(ls /etc/pve/nodes/*/*/$vmid.conf 2>/dev/null | sed 's,/etc/pve/nodes/\([^/]\+\).*$,\1,') #'

status=ok
if [ -z "$node" ]; then
    clone
    node=$(hostname)
    status=changed
fi

if ssh $node qm status $vmid | grep -qv running; then
    ssh $node qm start $vmid && status=changed || exit 1
fi


echo $status
echo $hw
