summaryrefslogtreecommitdiff
path: root/cloud/amazon
diff options
context:
space:
mode:
authorsteve-dave <steve-dave@users.noreply.github.com>2016-09-24 16:37:57 +1000
committerRené Moser <mail@renemoser.net>2016-09-24 08:37:57 +0200
commit0dbb0b131f02ed6df4f7b0dc2962a326bc17bfab (patch)
tree3cb81ad14324dbaa12e1cd478675b707767a9076 /cloud/amazon
parent5e174c6e50ed57c685412b83814b4d6eaeda81eb (diff)
downloadansible-modules-extras-0dbb0b131f02ed6df4f7b0dc2962a326bc17bfab.tar.gz
ec2_win_password.py - handle missing or unparseable key file more intuitively (#2729)
Diffstat (limited to 'cloud/amazon')
-rw-r--r--cloud/amazon/ec2_win_password.py12
1 files changed, 9 insertions, 3 deletions
diff --git a/cloud/amazon/ec2_win_password.py b/cloud/amazon/ec2_win_password.py
index 4ddf4f8f..e0f6205f 100644
--- a/cloud/amazon/ec2_win_password.py
+++ b/cloud/amazon/ec2_win_password.py
@@ -142,9 +142,15 @@ def main():
try:
f = open(key_file, 'r')
- key = RSA.importKey(f.read(), key_passphrase)
- finally:
- f.close()
+ except IOError as e:
+ module.fail_json(msg = "I/O error (%d) opening key file: %s" % (e.errno, e.strerror))
+ else:
+ try:
+ with f:
+ key = RSA.importKey(f.read(), key_passphrase)
+ except (ValueError, IndexError, TypeError) as e:
+ module.fail_json(msg = "unable to parse key file")
+
cipher = PKCS1_v1_5.new(key)
sentinel = 'password decryption failed!!!'