def _rbd_pool(self, pool_name): rbd_ls = global_instance().rbd_ls.get(pool_name, None) if rbd_ls is None: rbd_ls = RbdLs(global_instance(), pool_name) global_instance().rbd_ls[pool_name] = rbd_ls status, value = rbd_ls.get() interval = 5 wait = interval - rbd_ls.latency def wait_and_load(): time.sleep(wait) rbd_ls.get() threading.Thread(target=wait_and_load).start() assert status != RbdLs.VALUE_NONE # FIXME bubble status up to UI return value