mirror of
https://github.com/ansible-collections/community.general.git
synced 2024-09-14 20:13:21 +02:00
[opentelemetry] minor changes in the import, docs and exception (#3450)
* OrderedDict has been added to the Python stdlib since version 2.7 * Docs: cosmetic change in the python lib * See https://github.com/ansible/ansible/issues/75726 * Add changelog fragment * Apply suggestions from code review Co-authored-by: Felix Fontein <felix@fontein.de> Co-authored-by: Felix Fontein <felix@fontein.de>
This commit is contained in:
parent
316e1d6bf2
commit
774b2f642b
2 changed files with 8 additions and 23 deletions
|
@ -0,0 +1,2 @@
|
||||||
|
bugfixes:
|
||||||
|
- opentelemetry callback plugin - validated the task result exception without crashing. Also simplifying code a bit (https://github.com/ansible-collections/community.general/pull/3450, https://github.com/ansible/ansible/issues/75726).
|
|
@ -38,9 +38,9 @@ DOCUMENTATION = '''
|
||||||
env:
|
env:
|
||||||
- name: TRACEPARENT
|
- name: TRACEPARENT
|
||||||
requirements:
|
requirements:
|
||||||
- opentelemetry-api (python lib)
|
- opentelemetry-api (Python library)
|
||||||
- opentelemetry-exporter-otlp (python lib)
|
- opentelemetry-exporter-otlp (Python library)
|
||||||
- opentelemetry-sdk (python lib)
|
- opentelemetry-sdk (Python library)
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
|
||||||
|
@ -57,12 +57,12 @@ examples: |
|
||||||
'''
|
'''
|
||||||
|
|
||||||
import getpass
|
import getpass
|
||||||
import os
|
|
||||||
import socket
|
import socket
|
||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
|
|
||||||
|
from collections import OrderedDict
|
||||||
from os.path import basename
|
from os.path import basename
|
||||||
|
|
||||||
from ansible.errors import AnsibleError
|
from ansible.errors import AnsibleError
|
||||||
|
@ -88,18 +88,6 @@ except ImportError as imp_exc:
|
||||||
else:
|
else:
|
||||||
OTEL_LIBRARY_IMPORT_ERROR = None
|
OTEL_LIBRARY_IMPORT_ERROR = None
|
||||||
|
|
||||||
try:
|
|
||||||
from collections import OrderedDict
|
|
||||||
except ImportError:
|
|
||||||
try:
|
|
||||||
from ordereddict import OrderedDict
|
|
||||||
except ImportError as imp_exc:
|
|
||||||
ORDER_LIBRARY_IMPORT_ERROR = imp_exc
|
|
||||||
else:
|
|
||||||
ORDER_LIBRARY_IMPORT_ERROR = None
|
|
||||||
else:
|
|
||||||
ORDER_LIBRARY_IMPORT_ERROR = None
|
|
||||||
|
|
||||||
|
|
||||||
class TaskData:
|
class TaskData:
|
||||||
"""
|
"""
|
||||||
|
@ -253,7 +241,7 @@ class OpenTelemetrySource(object):
|
||||||
res = host_data.result._result
|
res = host_data.result._result
|
||||||
rc = res.get('rc', 0)
|
rc = res.get('rc', 0)
|
||||||
if host_data.status == 'failed':
|
if host_data.status == 'failed':
|
||||||
if 'exception' in res:
|
if res.get('exception') is not None:
|
||||||
message = res['exception'].strip().split('\n')[-1]
|
message = res['exception'].strip().split('\n')[-1]
|
||||||
elif 'msg' in res:
|
elif 'msg' in res:
|
||||||
message = res['msg']
|
message = res['msg']
|
||||||
|
@ -315,12 +303,7 @@ class CallbackModule(CallbackBase):
|
||||||
AnsibleError('The `opentelemetry-api`, `opentelemetry-exporter-otlp` or `opentelemetry-sdk` must be installed to use this plugin'),
|
AnsibleError('The `opentelemetry-api`, `opentelemetry-exporter-otlp` or `opentelemetry-sdk` must be installed to use this plugin'),
|
||||||
OTEL_LIBRARY_IMPORT_ERROR)
|
OTEL_LIBRARY_IMPORT_ERROR)
|
||||||
|
|
||||||
if ORDER_LIBRARY_IMPORT_ERROR:
|
self.tasks_data = OrderedDict()
|
||||||
raise_from(
|
|
||||||
AnsibleError('The `ordereddict` must be installed to use this plugin'),
|
|
||||||
ORDER_LIBRARY_IMPORT_ERROR)
|
|
||||||
else:
|
|
||||||
self.tasks_data = OrderedDict()
|
|
||||||
|
|
||||||
self.opentelemetry = OpenTelemetrySource(display=self._display)
|
self.opentelemetry = OpenTelemetrySource(display=self._display)
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue