mirror of
https://github.com/ansible-collections/kubernetes.core.git
synced 2026-03-26 21:33:02 +00:00
Merge pull request #69 from fabianvf/properly-serialize-log
k8s_log no longer attempts to parse log as JSON
This commit is contained in:
@@ -79,6 +79,43 @@
|
||||
- "'hello world' in pod_log.log"
|
||||
- item == 'hello world' or item == ''
|
||||
with_items: '{{ pod_log.log_lines }}'
|
||||
|
||||
- name: Create a job that calculates 7
|
||||
k8s:
|
||||
state: present
|
||||
wait: yes
|
||||
wait_timeout: 120
|
||||
wait_condition:
|
||||
type: Complete
|
||||
status: 'True'
|
||||
definition:
|
||||
apiVersion: batch/v1
|
||||
kind: Job
|
||||
metadata:
|
||||
name: int-log
|
||||
namespace: k8s-log
|
||||
spec:
|
||||
template:
|
||||
spec:
|
||||
containers:
|
||||
- name: busybox
|
||||
image: busybox
|
||||
command: ["echo", "7"]
|
||||
restartPolicy: Never
|
||||
backoffLimit: 4
|
||||
|
||||
- name: retrieve logs from the job
|
||||
k8s_log:
|
||||
api_version: batch/v1
|
||||
kind: Job
|
||||
namespace: k8s-log
|
||||
name: int-log
|
||||
register: job_logs
|
||||
|
||||
- name: verify the log was successfully retrieved
|
||||
assert:
|
||||
that: job_logs.log_lines[0] == "7"
|
||||
|
||||
always:
|
||||
- name: ensure that namespace is removed
|
||||
k8s:
|
||||
|
||||
@@ -127,6 +127,9 @@ log_lines:
|
||||
|
||||
|
||||
import copy
|
||||
|
||||
from ansible.module_utils.six import PY2
|
||||
|
||||
from ansible_collections.community.kubernetes.plugins.module_utils.common import KubernetesAnsibleModule
|
||||
from ansible_collections.community.kubernetes.plugins.module_utils.common import AUTH_ARG_SPEC
|
||||
|
||||
@@ -182,11 +185,12 @@ class KubernetesLogModule(KubernetesAnsibleModule):
|
||||
if self.params.get('container'):
|
||||
kwargs['query_params'] = dict(container=self.params['container'])
|
||||
|
||||
log = resource.log.get(
|
||||
log = serialize_log(resource.log.get(
|
||||
name=name,
|
||||
namespace=self.params.get('namespace'),
|
||||
serialize=False,
|
||||
**kwargs
|
||||
)
|
||||
))
|
||||
|
||||
self.exit_json(changed=False, log=log, log_lines=log.split('\n'))
|
||||
|
||||
@@ -228,6 +232,12 @@ class KubernetesLogModule(KubernetesAnsibleModule):
|
||||
return selectors
|
||||
|
||||
|
||||
def serialize_log(response):
|
||||
if PY2:
|
||||
return response.data
|
||||
return response.data.decode('utf8')
|
||||
|
||||
|
||||
def main():
|
||||
KubernetesLogModule().execute_module()
|
||||
|
||||
|
||||
Reference in New Issue
Block a user