# ephemeral-disk-warning - warns user that the disk is really, really ephemeral
#
# On Azure, the ephemeral disk is extremely ephemeral; the ephemeral disk is
# unsafe between boots. This places a file on /mnt that warns the user
# that the disk is a dangerous place for storing data of any importance.

env RESOURCE_DISK=/dev/disk/azure/resource-part1

start on (stopped rc RUNLEVEL=[2345] and stopped cloud-config)
task
script
    if [ ! -e $RESOURCE_DISK ]; then
            logger "Disk $RESOURCE_DISK does not exist, skipping ephemeral warning"
            exit 0
    fi

    ephemeral_kdev=$(readlink -f $RESOURCE_DISK)
    ephemeral_mp=$(awk '$1==kd {print$2}' "kd=$ephemeral_kdev" /proc/mounts)
    warn_file="$ephemeral_mp/DATALOSS_WARNING_README.txt"

    if [ -z "$ephemeral_mp" ]; then
            logger "Unable to discover mount point of $ephemeral_kdev. Ephemeral warning will not be written"
            exit 0
    else
            logger "Ephemeral disk $ephemeral_kdev located at $ephemeral_mp"
    fi

    if [ ! -e "$warn_file" ]; then
        cat >> $warn_file <<EOF
WARNING: THIS IS A TEMPORARY DISK.

Any data stored on this drive is SUBJECT TO LOSS and THERE IS NO WAY TO
RECOVER IT.

Please do not use this disk for storing any personal or application data.

For additional details to please refer to the MSDN documentation at:
http://msdn.microsoft.com/en-us/library/windowsazure/jj672979.aspx

To remove this warning run:
    sudo chattr -i $warn_file
    sudo rm $warn_file

This warning is written each boot; to disable it:
    echo "manual" | sudo tee /etc/init/ephemeral-disk-warning.override
    sudo systemctl disable ephemeral-disk-warning.service

EOF
        chmod 0444 $warn_file
        chattr +i $warn_file
        logger "Added ephemeral disk warning to $warn_file"
    fi
    logger "WARNING: $ephemeral_mp is an ephemeral disk. See $warn_file for more information"

end script
