'Configures the bootloader to boot an entry only once
This is not implemented by grubby, but directly implemented here, via
the \'boot_once_<bootloader>\' method.'

def boot_once(self, title=None):

    self.log.debug('Title    chosen    to    boot    once:    %s', title)
    available_titles = self.get_titles()
    if (title not in available_titles):
        self.log.error('Entry    with    title    "%s"    was    not    found', title)
        return (-1)
    default_title = self.get_default_title()
    self.log.debug('Title    actually    set    as    default:    %s', default_title)
    if (default_title == title):
        self.log.info('Doing    nothing:    entry    to    boot    once    is    the    same    as    default    entry')
        return
    else:
        self.log.debug('Setting    boot    once    for    entry:    %s', title)
    bootloader = self.get_bootloader()
    if (bootloader in ('grub', 'grub2', 'elilo')):
        entry_index = self._index_for_title(title)
        if (entry_index is None):
            self.log.error('Could    not    find    index    for    entry    with    title    "%s"', title)
            return (-1)
    if (bootloader == 'grub'):
        return self.boot_once_grub(entry_index)
    elif (bootloader == 'grub2'):
        return self.boot_once_grub2(entry_index)
    elif (bootloader == 'yaboot'):
        return self.boot_once_yaboot(title)
    elif (bootloader == 'elilo'):
        return self.boot_once_elilo(entry_index)
    else:
        self.log.error('Detected    bootloader    does    not    implement    boot    once')
        return (-1)
