def report_sync(self, tag, report_type='full', detailed=False):
        serv = self._get_redis_serv()
        repo_name = self.conf.config['deploy.repo-name']
        LOG.info('Repo: {}'.format(repo_name))
        LOG.info('Tag: {}'.format(tag))
        minions = serv.smembers('deploy:{0}:minions'.format(repo_name))
        _fetch_info = self._get_fetch_info(serv, repo_name, minions, tag)
        _checkout_info = self._get_checkout_info(serv, repo_name, minions, tag)
        min_len = len(minions)
        fetch_len = len(_fetch_info['complete'])
        checkout_len = len(_checkout_info['complete'])
        fetch_report = "{0}/{1} minions completed fetch"
        fetch_report = fetch_report.format(fetch_len, min_len)
        checkout_report = "{0}/{1} minions completed checkout"
        checkout_report = checkout_report.format(checkout_len, min_len)
        if report_type == 'fetch':
            msgs = fetch_report
        elif report_type == 'checkout':
            msgs = checkout_report
        else:
            msgs = '{0}; {1}'.format(fetch_report, checkout_report)
        LOG.info("")
        LOG.info(msgs)
        if detailed:
            LOG.info("")
            LOG.info("Details:")
            LOG.info("")
            msg = ("{0} status: {1} [started: {2} mins ago,"
                   " last-return: {3} mins ago]")
            for minion in minions:
                try:
                    data = _fetch_info['pending'][minion]
                except KeyError:
                    if report_type == 'fetch':
                        continue
                    data = _fetch_info['complete'][minion]
                fetch_msg = msg.format('fetch',
                                       data['fetch_status'],
                                       data['fetch_checkin_mins'],
                                       data['fetch_mins'])
                try:
                    data = _checkout_info['pending'][minion]
                except __HOLE__:
                    if report_type == 'checkout':
                        continue
                    data = _checkout_info['complete'][minion]
                checkout_msg = msg.format('checkout',
                                          data['checkout_status'],
                                          data['checkout_checkin_mins'],
                                          data['checkout_mins'])
                if report_type == 'fetch':
                    msgs = '\n\t{}'.format(fetch_msg)
                elif report_type == 'checkout':
                    msgs = '\n\t{}'.format(checkout_msg)
                else:
                    msgs = '\n\t{0}\n\t{1}'.format(fetch_msg, checkout_msg)
                msgs = "{0}: {1}".format(minion, msgs)
                LOG.info(msgs)
dataset/ETHPy150Open trebuchet-deploy/trigger/trigger/drivers/trebuchet/local.py/ReportDriver.report_sync