diff --git a/v2/ansible/executor/playbook_executor.py b/v2/ansible/executor/playbook_executor.py
index 865b06f1088..94bdbf01e1f 100644
--- a/v2/ansible/executor/playbook_executor.py
+++ b/v2/ansible/executor/playbook_executor.py
@@ -16,7 +16,7 @@
# along with Ansible. If not, see .
# Make coding more python3-ish
-from __future__ import (absolute_import, division, print_function)
+from __future__ import (absolute_import, division)
__metaclass__ = type
import signal
diff --git a/v2/ansible/playbook/play.py b/v2/ansible/playbook/play.py
index 34c4d3e5608..eeabfce062a 100644
--- a/v2/ansible/playbook/play.py
+++ b/v2/ansible/playbook/play.py
@@ -16,7 +16,7 @@
# along with Ansible. If not, see .
# Make coding more python3-ish
-from __future__ import (absolute_import, division, print_function)
+from __future__ import (absolute_import, division)
__metaclass__ = type
from ansible.errors import AnsibleError, AnsibleParserError
diff --git a/v2/ansible/utils/display.py b/v2/ansible/utils/display.py
index 758a62fceea..dd44d61dd30 100644
--- a/v2/ansible/utils/display.py
+++ b/v2/ansible/utils/display.py
@@ -18,6 +18,7 @@
# FIXME: copied mostly from old code, needs py3 improvements
import textwrap
+import sys
from ansible import constants as C
from ansible.errors import *
@@ -97,15 +98,15 @@ class Display:
new_msg = "\n".join(wrapped) + "\n"
if new_msg not in deprecations:
- self._display(new_msg, color='purple', stderr=True)
+ self.display(new_msg, color='purple', stderr=True)
self._deprecations[new_msg] = 1
def warning(self, msg):
new_msg = "\n[WARNING]: %s" % msg
wrapped = textwrap.wrap(new_msg, 79)
new_msg = "\n".join(wrapped) + "\n"
- if new_msg not in warns:
- self._display(new_msg, color='bright purple', stderr=True)
+ if new_msg not in self._warns:
+ self.display(new_msg, color='bright purple', stderr=True)
self._warns[new_msg] = 1
def system_warning(self, msg):
diff --git a/v2/bin/ansible-playbook b/v2/bin/ansible-playbook
index e2cca104844..49748129e12 100755
--- a/v2/bin/ansible-playbook
+++ b/v2/bin/ansible-playbook
@@ -21,13 +21,9 @@ from ansible.utils.vars import combine_vars
from ansible.utils.vault import read_vault_file
from ansible.vars import VariableManager
-# Implement an ansible.utils.warning() function later
-def warning(*args, **kwargs):
- print(*args, **kwargs)
-
#---------------------------------------------------------------------------------------------------
-def main(args):
+def main(display, args):
''' run ansible-playbook operations '''
# create parser for CLI options
@@ -122,16 +118,14 @@ def main(args):
no_hosts = False
if len(inventory.list_hosts()) == 0:
# Empty inventory
- warning("provided hosts list is empty, only localhost is available")
+ display.warning("provided hosts list is empty, only localhost is available")
no_hosts = True
inventory.subset(options.subset)
if len(inventory.list_hosts()) == 0 and no_hosts is False:
# Invalid limit
raise errors.AnsibleError("Specified --limit does not match any hosts")
- # create the playbook executor, which manages running the plays
- # via a task queue manager
- display = Display()
+ # create the playbook executor, which manages running the plays via a task queue manager
pbex = PlaybookExecutor(playbooks=args, inventory=inventory, variable_manager=variable_manager, loader=loader, display=display, options=options)
results = pbex.run()
@@ -139,38 +133,34 @@ def main(args):
if isinstance(results, list):
for p in results:
- print('')
- print('playbook: %s' % p['playbook'])
- print('')
-
+ display.display('\nplaybook: %s\n' % p['playbook'])
for play in p['plays']:
if options.listhosts:
- print("\n %s (%s): host count=%d" % (play['name'], play['pattern'], len(play['hosts'])))
+ display.display("\n %s (%s): host count=%d" % (play['name'], play['pattern'], len(play['hosts'])))
for host in play['hosts']:
- print(" %s" % host)
+ display.display(" %s" % host)
if options.listtasks: #TODO: do we want to display block info?
- print("\n %s: task count=%d" % (play['name'], len(play['tasks'])))
+ display.display("\n %s" % (play['name']))
for task in play['tasks']:
- print(" %s" % task)
- if options.listtags:
- print("\n %s: tags count=%d" % (play['name'], len(play['tags'])))
+ display.display(" %s" % task)
+ if options.listtags: #TODO: fix once we figure out block handling above
+ display.display("\n %s: tags count=%d" % (play['name'], len(play['tags'])))
for tag in play['tags']:
- print(" %s" % tag)
+ display.display(" %s" % tag)
+ return 0
else:
return results
if __name__ == "__main__":
- #display(" ", log_only=True)
- #display(" ".join(sys.argv), log_only=True)
- #display(" ", log_only=True)
+
+ display = Display()
+ display.display(" ".join(sys.argv), log_only=True)
+
try:
- sys.exit(main(sys.argv[1:]))
+ sys.exit(main(display, sys.argv[1:]))
except AnsibleError as e:
- #display("ERROR: %s" % e, color='red', stderr=True)
- print(e)
+ display.display("[ERROR]: %s" % e, color='red', stderr=True)
sys.exit(1)
except KeyboardInterrupt:
- #display("ERROR: interrupted", color='red', stderr=True)
- print("keyboard interrupt")
+ display.display("[ERROR]: interrupted", color='red', stderr=True)
sys.exit(1)
-