diff options
author | Toshio Kuratomi <a.badger@gmail.com> | 2015-08-05 09:42:30 -0700 |
---|---|---|
committer | Toshio Kuratomi <a.badger@gmail.com> | 2015-08-05 09:42:30 -0700 |
commit | cbac99de2004786517ea98120cf8a7f3031ff09e (patch) | |
tree | 024a86eaacf772b9f94df65ab1056c2ce27a1cf7 /notification | |
parent | 086c94687d04c4181b4d897166ff20e5073ba13b (diff) | |
parent | fe69c0e67aa872ed948ce8e4474d608f8b8c62e5 (diff) | |
download | ansible-modules-extras-cbac99de2004786517ea98120cf8a7f3031ff09e.tar.gz |
Merge pull request #784 from ansible/fetch_url-pushover
Switch from httplib to fetch_url
Diffstat (limited to 'notification')
-rw-r--r-- | notification/pushover.py | 47 |
1 files changed, 28 insertions, 19 deletions
diff --git a/notification/pushover.py b/notification/pushover.py index 50591718..0c1d6e94 100644 --- a/notification/pushover.py +++ b/notification/pushover.py @@ -57,24 +57,36 @@ EXAMPLES = ''' ''' import urllib -import httplib -class pushover(object): +class Pushover(object): ''' Instantiates a pushover object, use it to send notifications ''' + base_uri = 'https://api.pushover.net' + port = 443 - def __init__(self): - self.host, self.port = 'api.pushover.net', 443 + def __init__(self, module, user, token): + self.module = module + self.user = user + self.token = token - def run(self): + def run(self, priority, msg): ''' Do, whatever it is, we do. ''' + + url = '%s:%s/1/messages.json' % (self.base_uri, self.port) + # parse config - conn = httplib.HTTPSConnection(self.host, self.port) - conn.request("POST", "/1/messages.json", - urllib.urlencode(self.options), - {"Content-type": "application/x-www-form-urlencoded"}) - conn.getresponse() - return + options = dict(user=self.user, + token=self.token, + priority=priority, + message=msg) + data = urllib.urlencode(options) + + headers = { "Content-type": "application/x-www-form-urlencoded"} + r, info = fetch_url(self.module, url, method='POST', data=data, headers=headers) + if info['status'] != 200: + raise Exception(info) + + return r.read() def main(): @@ -88,14 +100,9 @@ def main(): ), ) - msg_object = pushover() - msg_object.options = {} - msg_object.options['user'] = module.params['user_key'] - msg_object.options['token'] = module.params['app_token'] - msg_object.options['priority'] = module.params['pri'] - msg_object.options['message'] = module.params['msg'] + msg_object = Pushover(module, module.params['user_key'], module.params['app_token']) try: - msg_object.run() + msg_object.run(module.params['pri'], module.params['msg']) except: module.fail_json(msg='Unable to send msg via pushover') @@ -103,4 +110,6 @@ def main(): # import module snippets from ansible.module_utils.basic import * -main() +from ansible.module_utils.urls import * +if __name__ == '__main__': + main() |