|
38 | 38 | import uuid |
39 | 39 |
|
40 | 40 | from functools import partial |
| 41 | +from ansible import constants as C |
41 | 42 | from ansible.module_utils._text import to_bytes, to_text |
42 | 43 | from ansible.module_utils.common.json import AnsibleJSONEncoder |
| 44 | +from ansible.module_utils.common.parameters import remove_values |
43 | 45 | from ansible.module_utils.six import iteritems |
44 | 46 | from ansible.module_utils.six.moves import cPickle |
| 47 | +from ansible.utils.helpers import deduplicate_list |
45 | 48 |
|
46 | 49 |
|
47 | 50 | def write_to_file_descriptor(fd, obj): |
@@ -163,12 +166,26 @@ def _exec_jsonrpc(self, name, *args, **kwargs): |
163 | 166 | try: |
164 | 167 | response = json.loads(out) |
165 | 168 | except ValueError: |
166 | | - params = [repr(arg) for arg in args] + ['{0}={1!r}'.format(k, v) for k, v in iteritems(kwargs)] |
| 169 | + sensitive_keys = list( |
| 170 | + C.MAGIC_VARIABLE_MAPPING["password"] |
| 171 | + + C.MAGIC_VARIABLE_MAPPING["private_key_file"] |
| 172 | + + C.MAGIC_VARIABLE_MAPPING["become_pass"] |
| 173 | + ) |
| 174 | + sensitive_values = [ |
| 175 | + v2 |
| 176 | + for k, v in iteritems(kwargs) |
| 177 | + for k2, v2 in iteritems(v) |
| 178 | + if k2 in sensitive_keys |
| 179 | + ] |
| 180 | + params = [repr(remove_values(arg, sensitive_values)) for arg in args] + [ |
| 181 | + "{0}={1!r}".format(k, remove_values(v, sensitive_values)) |
| 182 | + for k, v in iteritems(kwargs)] |
167 | 183 | params = ', '.join(params) |
168 | 184 | raise ConnectionError( |
169 | 185 | "Unable to decode JSON from response to {0}({1}). Received '{2}'.".format(name, params, out) |
170 | 186 | ) |
171 | 187 |
|
| 188 | + |
172 | 189 | if response['id'] != reqid: |
173 | 190 | raise ConnectionError('invalid json-rpc id received') |
174 | 191 | if "result_type" in response: |
|
0 commit comments