diff options
author | steve-dave <steve-dave@users.noreply.github.com> | 2016-09-24 16:37:57 +1000 |
---|---|---|
committer | René Moser <mail@renemoser.net> | 2016-09-24 08:37:57 +0200 |
commit | 0dbb0b131f02ed6df4f7b0dc2962a326bc17bfab (patch) | |
tree | 3cb81ad14324dbaa12e1cd478675b707767a9076 /cloud/amazon | |
parent | 5e174c6e50ed57c685412b83814b4d6eaeda81eb (diff) | |
download | ansible-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.py | 12 |
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!!!' |