From a79ca57d228c7ae6871ce87075e63ffa50777e69 Mon Sep 17 00:00:00 2001 From: Felix Fontein Date: Sun, 12 Jan 2020 23:59:25 +0100 Subject: [PATCH] Fix aws_ssm connection plugin. (#66393) --- lib/ansible/plugins/connection/aws_ssm.py | 11 ++++++++++- test/integration/targets/connection_aws_ssm/aliases | 1 - 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/lib/ansible/plugins/connection/aws_ssm.py b/lib/ansible/plugins/connection/aws_ssm.py index 39ac5527b6d..56ce62fe62a 100644 --- a/lib/ansible/plugins/connection/aws_ssm.py +++ b/lib/ansible/plugins/connection/aws_ssm.py @@ -146,7 +146,6 @@ EXAMPLES = r''' ''' import os -import boto3 import getpass import json import os @@ -158,9 +157,17 @@ import string import subprocess import time +try: + import boto3 + HAS_BOTO_3 = True +except ImportError as e: + HAS_BOTO_3_ERROR = str(e) + HAS_BOTO_3 = False + from functools import wraps from ansible import constants as C from ansible.errors import AnsibleConnectionFailure, AnsibleError, AnsibleFileNotFound +from ansible.module_utils.basic import missing_required_lib from ansible.module_utils.six import PY3 from ansible.module_utils.six.moves import xrange from ansible.module_utils._text import to_bytes, to_native, to_text @@ -240,6 +247,8 @@ class Connection(ConnectionBase): MARK_LENGTH = 26 def __init__(self, *args, **kwargs): + if not HAS_BOTO_3: + raise AnsibleError('{0}: {1}'.format(missing_required_lib("ncclient"), HAS_BOTO_3_ERROR)) super(Connection, self).__init__(*args, **kwargs) self.host = self._play_context.remote_addr diff --git a/test/integration/targets/connection_aws_ssm/aliases b/test/integration/targets/connection_aws_ssm/aliases index b50fd21ebac..96a01dcfbe2 100644 --- a/test/integration/targets/connection_aws_ssm/aliases +++ b/test/integration/targets/connection_aws_ssm/aliases @@ -4,4 +4,3 @@ shippable/aws/group1 non_local needs/root needs/target/connection -disabled