def queue()

in cli/pollexy.py [0:0]


def queue(simulate, simulated_date, verbose):
    log = logging.getLogger('PollexyCli')
    if verbose:
        os.environ['LOG_LEVEL'] = 'DEBUG'
        log.setLevel(logging.DEBUG)
    try:
        if simulated_date:
            dt = arrow.get(simulated_date)
        else:
            dt = arrow.utcnow()
        scheduler = Scheduler()
        msgs = scheduler.get_messages()
        if len(msgs) == 0:
            click.echo("No messages are ready to be queued")
            return

        log.debug("Number of messages to be scheduled: %s" % len(msgs))
        for m in msgs:
            if not simulate:
                pm = PersonManager()
                p = pm.get_person(m.person_name)
                if not p:
                    log.warn(m.person_name +
                             "does not have an entry in the " +
                             "Person table")
                    continue
                if p.all_available_count(dt) == 0:
                    log.debug('No locations available for %s' %
                              m.person_name)
                    continue
                avail_windows = p.all_available(dt)
                log.debug('# of locations avail: {}, last_loc={}'
                          .format(p.all_available_count(dt),
                                  m.last_loc))
                if m.last_loc == p.all_available_count(dt)-1:
                    log.debug('Resetting to first location')
                    idx = 0
                else:
                    log.debug('Moving to next location')
                    idx = m.last_loc + 1

                active_window = avail_windows[int(idx)]
                next_exp = m.next_expiration_utc.isoformat()
                mm = MessageManager(LocationName=active_window.location_name)
                log.debug("Publishing message for person %s to location %s"
                          % (m.person_name, active_window.location_name))
                mm.publish_message(Body=m.body, UUID=m.uuid_key,
                                   PersonName=m.person_name,
                                   NoMoreOccurrences=m.no_more_occurrences,
                                   BotNames=m.bot_names,
                                   RequiredBots=m.required_bots,
                                   IceBreaker=m.ice_breaker,
                                   Introduction=m.introduction,
                                   ExpirationDateTimeInUtc=next_exp)
                scheduler.update_queue_status(m.uuid_key, m.person_name, True)
                scheduler.update_last_location(m.uuid_key, m.person_name, idx)
            else:
                click.echo("Publishing message(simulated):")
                click.echo(str(m))

    except Exception:
        print 'here'
        click.echo(traceback.print_exc())
        raise