Commit c0456d22 by David Baumgold

Merge pull request #1537 from edx/import-later

Ignore import errors until we care about them
parents 99c0fe5e 43a98000
import os import os
import prettytable
import hipchat
import time import time
import random
from ansible import utils from ansible import utils
try:
import prettytable
except ImportError:
prettytable = None
try:
import hipchat
except ImportError:
hipchat = None
class CallbackModule(object): class CallbackModule(object):
...@@ -24,8 +29,21 @@ class CallbackModule(object): ...@@ -24,8 +29,21 @@ class CallbackModule(object):
""" """
def __init__(self): def __init__(self):
self.enabled = "HIPCHAT_TOKEN" in os.environ
if 'HIPCHAT_TOKEN' in os.environ: if not self.enabled:
return
# make sure we got our imports
if not hipchat:
raise ImportError(
"The hipchat plugin requires the hipchat Python module, "
"which is not installed or was not found."
)
if not prettytable:
raise ImportError(
"The hipchat plugin requires the prettytable Python module, "
"which is not installed or was not found."
)
self.start_time = time.time() self.start_time = time.time()
self.task_report = [] self.task_report = []
self.last_task = None self.last_task = None
...@@ -45,9 +63,6 @@ class CallbackModule(object): ...@@ -45,9 +63,6 @@ class CallbackModule(object):
self.hipchat_msg_color = os.getenv('HIPCHAT_MSG_COLOR', '') self.hipchat_msg_color = os.getenv('HIPCHAT_MSG_COLOR', '')
self.printed_playbook = False self.printed_playbook = False
self.playbook_name = None self.playbook_name = None
self.enabled = True
else:
self.enabled = False
def _send_hipchat(self, message, room=None, from_name=None, color=None, message_format='text'): def _send_hipchat(self, message, room=None, from_name=None, color=None, message_format='text'):
......
...@@ -22,11 +22,12 @@ import time ...@@ -22,11 +22,12 @@ import time
import json import json
import socket import socket
try: try:
import boto
except ImportError:
boto = None
else:
import boto.sqs import boto.sqs
from boto.exception import NoAuthHandlerFound from boto.exception import NoAuthHandlerFound
except ImportError:
print "Boto is required for the sqs_notify callback plugin"
raise
class CallbackModule(object): class CallbackModule(object):
...@@ -47,11 +48,19 @@ class CallbackModule(object): ...@@ -47,11 +48,19 @@ class CallbackModule(object):
- START events - START events
""" """
def __init__(self): def __init__(self):
self.enable_sqs = 'ANSIBLE_ENABLE_SQS' in os.environ
if not self.enable_sqs:
return
# make sure we got our imports
if not boto:
raise ImportError(
"The sqs callback module requires the boto Python module, "
"which is not installed or was not found."
)
self.start_time = time.time() self.start_time = time.time()
if 'ANSIBLE_ENABLE_SQS' in os.environ:
self.enable_sqs = True
if not 'SQS_REGION' in os.environ: if not 'SQS_REGION' in os.environ:
print 'ANSIBLE_ENABLE_SQS enabled but SQS_REGION ' \ print 'ANSIBLE_ENABLE_SQS enabled but SQS_REGION ' \
'not defined in environment' 'not defined in environment'
...@@ -75,8 +84,6 @@ class CallbackModule(object): ...@@ -75,8 +84,6 @@ class CallbackModule(object):
self.prefix = '' self.prefix = ''
self.last_seen_ts = {} self.last_seen_ts = {}
else:
self.enable_sqs = False
def runner_on_failed(self, host, res, ignore_errors=False): def runner_on_failed(self, host, res, ignore_errors=False):
if self.enable_sqs: if self.enable_sqs:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment