def do_work_units(self, args):
        '''list work units that have not yet completed'''
        work_spec_name = self._get_work_spec_name(args)
        if args.status:
            status = args.status.upper()
            statusi = getattr(self.task_master, status, None)
            if statusi is None:
                self.stdout.write('unknown status {0!r}\n'.format(args.status))
                return
        else:
            statusi = None
        work_units = dict(self.task_master.get_work_units(
            work_spec_name, state=statusi, limit=args.limit))
        work_unit_names = sorted(work_units.keys())
        if args.limit:
            work_unit_names = work_unit_names[:args.limit]
        for k in work_unit_names:
            if args.details:
                tback = work_units[k].get('traceback', '')
                if tback:
                    tback += '\n'
                    work_units[k]['traceback'] = 'displayed below'
                self.stdout.write(
                    '{0!r}: {1}\n{2}'
                    .format(k, pprint.pformat(work_units[k], indent=4),
                            tback))
            else:
                self.stdout.write('{0}\n'.format(k))
list work units that have not yet completed