'Inialise a new _HostMountState when the libvirt connection comes
up.
host_up will destroy and re-initialise the current state if one
already exists, but this is considered an error.
host_up will block before creating a new state until all operations
using a previous state have completed.
:param host: A connected libvirt Host object'

def host_up(self, host):

    with self.cond:
        if (self.state is not None):
            LOG.warning('host_up    called,    but    we    think    host    is    already    up')
            self._host_down()
        while (self.use_count != 0):
            self.cond.wait()
        if (self.state is None):
            LOG.debug('Initialising    _HostMountState    generation    %(gen)i', {'gen': self.generation})
            self.state = _HostMountState(host, self.generation)
            self.generation += 1
