def take_action(self, args):
try:
if args.playbook:
host = (models.Host.query
.filter_by(playbook_id=args.playbook)
.filter((models.Host.id == args.host) |
(models.Host.name == args.host)).one())
else:
host = models.Host.query.filter_by(id=args.host).one()
except (models.NoResultFound, models.MultipleResultsFound):
raise RuntimeError('Host %s could not be found' % args.host)
if not host.facts:
raise RuntimeError('No facts available for host %s' % args.host)
facts = ((k, v) for k, v in
six.iteritems(jsonutils.loads(host.facts.values))
if not args.fact or k in args.fact
)
return six.moves.zip(*sorted(facts))
评论列表
文章目录