def host_disk_space(conn):
    pool = util.get_default_pool(conn)
    path = util.get_default_dir(conn)

    avail = 0
    if pool and pool.is_active():
        # FIXME: make sure not inactive?
        # FIXME: use a conn specific function after we send pool-added
        pool.refresh()
        avail = int(util.xpath(pool.get_xml(), "/pool/available"))

    elif not conn.is_remote() and os.path.exists(path):
        vfs = os.statvfs(os.path.dirname(path))
        avail = vfs[statvfs.F_FRSIZE] * vfs[statvfs.F_BAVAIL]

    return float(avail / 1024.0 / 1024.0 / 1024.0)
def check_default_pool_active(topwin, conn):
    default_pool = util.get_default_pool(conn)
    if default_pool and not default_pool.is_active():
        res = err_dial.yes_no(_("Default pool is not active."),
                              _("Storage pool '%s' is not active. "
                                "Would you like to start the pool "
                                "now?") % default_pool.get_name())
        if not res:
            return False

        # Try to start the pool
        try:
            default_pool.start()
            logging.info("Started pool '%s'", default_pool.get_name())
        except Exception, e:
            return topwin.err.show_err(_("Could not start storage_pool "
                                         "'%s': %s") %
                                         (default_pool.get_name(), str(e)))