'Wait for cluster to come up and display progress bar. Waits for all
spot requests to become \'active\', all instances to be in a \'running\'
state, and for all SSH daemons to come up.
msg - custom message to print out before waiting on the cluster'

@print_timing('Waiting    for    cluster    to    come    up')
def wait_for_cluster(self, msg='Waiting    for    cluster    to    come    up...'):

    interval = self.refresh_interval
    log.info(('%s    %s' % (msg, ('(updating    every    %ds)' % interval))))
    try:
        self.wait_for_active_spots()
        self.wait_for_running_instances()
        self.wait_for_ssh()
    except Exception:
        self.progress_bar.finish()
        raise
