def wait_for_cluster_online(cluster):
    master_node = cluster.filter_by_role("master").first()
    helpers.wait_for(
        lambda: check_all_nodes_online_nailgun(master_node), timeout=600)

    controllers = cluster.filter_by_role("controller")
    for node in controllers:
        node.pacemaker.wait_for_all_nodes_online()
        helpers.wait_for(lambda: check_mysql_status(node))
        helpers.wait_for(lambda: check_rabbit_cluster_online(
            node, len(controllers)))
        helpers.wait_for(lambda: check_rabbitmq_queues_sync(
            node))

    time.sleep(5)
 def wait_for_management_vip(self, timeout=600):
     helpers.wait_for(self.get_management_vip_node, timeout=timeout)
 def wait_for_all_nodes_online(self, timeout=1200):
     helpers.wait_for(self.check_all_nodes_online, timeout=timeout)
 def wait_for_node_went_down(self, timeout=1200):
     helpers.wait_for(lambda: not self.check_all_nodes_online(), timeout=timeout)
 def wait_for_service_start(self, controller, name):
     logger.info("Start waiting for {0} on {1}"
                 .format(name, controller.hostname))
     helpers.wait_for(lambda: controller.os.check_process(name))