'Get a unique ID associated with the current boot.
Should return a string with the semantics such that two separate
calls to Host.get_boot_id() return the same string if the host did
not reboot between the two calls, and two different strings if it
has rebooted at least once between the two calls.
:param timeout The number of seconds to wait before timing out.
:return: A string unique to this boot or None if not available.'

def get_boot_id(self, timeout=60):

    BOOT_ID_FILE = '/proc/sys/kernel/random/boot_id'
    NO_ID_MSG = 'no    boot_id    available'
    cmd = ('if    [    -f    %r    ];    then    cat    %r;    else    echo    %r;    fi' % (BOOT_ID_FILE, BOOT_ID_FILE, NO_ID_MSG))
    boot_id = self.run(cmd, timeout=timeout).stdout.strip()
    if (boot_id == NO_ID_MSG):
        return None
    return boot_id
