Compare commits

..

1 commit

Author SHA1 Message Date
Yves MOYROUD
2244bcbd12
Merge d05a5c70b5 into f0b5f039d3 2025-04-14 11:05:46 +00:00
6 changed files with 20 additions and 47 deletions

View file

@ -1,3 +0,0 @@
---
minor_changes:
- profile_tasks - Add option to provide a different date/time format (https://github.com/ansible-collections/ansible.posix/issues/279).

View file

@ -1,6 +0,0 @@
---
bugfixes:
- ansible.posix.cgroup_perf_recap - fixes json module load path (https://github.com/ansible-collections/ansible.posix/issues/630).
trivial:
- ansible.posix.seboolean - remove unnecessary condition from seboolean integration tests (https://github.com/ansible-collections/ansible.posix/issues/630).
- ansible.posix.selinux - optimize conditions for selinux integration tests (https://github.com/ansible-collections/ansible.posix/issues/630).

View file

@ -132,7 +132,6 @@ DOCUMENTATION = '''
import csv import csv
import datetime import datetime
import json
import os import os
import time import time
import threading import threading
@ -143,7 +142,7 @@ from functools import partial
from ansible.module_utils._text import to_bytes, to_text from ansible.module_utils._text import to_bytes, to_text
from ansible.module_utils.six import with_metaclass from ansible.module_utils.six import with_metaclass
from ansible.parsing.ajson import AnsibleJSONEncoder from ansible.parsing.ajson import AnsibleJSONEncoder, json
from ansible.plugins.callback import CallbackBase from ansible.plugins.callback import CallbackBase

View file

@ -52,17 +52,6 @@ DOCUMENTATION = '''
- section: callback_profile_tasks - section: callback_profile_tasks
key: summary_only key: summary_only
version_added: 1.5.0 version_added: 1.5.0
datetime_format:
description:
- Datetime format, as expected by the C(strftime) and C(strptime) methods.
An C(iso8601) alias will be translated to C('%Y-%m-%dT%H:%M:%S.%f') if that datetime standard wants to be used.
default: '%A %d %B %Y %H:%M:%S %z'
env:
- name: PROFILE_TASKS_DATETIME_FORMAT
ini:
- section: callback_profile_tasks
key: datetime_format
version_added: 3.0.0
''' '''
EXAMPLES = ''' EXAMPLES = '''
@ -83,15 +72,14 @@ sample output: >
''' '''
import collections import collections
import time
from datetime import datetime
from ansible.module_utils.six.moves import reduce from ansible.module_utils.six.moves import reduce
from ansible.plugins.callback import CallbackBase from ansible.plugins.callback import CallbackBase
# define start time # define start time
dt0 = dtn = datetime.now().astimezone() t0 = tn = time.time()
def secondsToStr(t): def secondsToStr(t):
@ -116,18 +104,17 @@ def filled(msg, fchar="*"):
def timestamp(self): def timestamp(self):
if self.current is not None: if self.current is not None:
elapsed = (datetime.now().astimezone() - self.stats[self.current]['started']).total_seconds() elapsed = time.time() - self.stats[self.current]['started']
self.stats[self.current]['elapsed'] += elapsed self.stats[self.current]['elapsed'] += elapsed
def tasktime(self): def tasktime():
global dtn global tn
cdtn = datetime.now().astimezone() time_current = time.strftime('%A %d %B %Y %H:%M:%S %z')
datetime_current = cdtn.strftime(self.datetime_format) time_elapsed = secondsToStr(time.time() - tn)
time_elapsed = secondsToStr((cdtn - dtn).total_seconds()) time_total_elapsed = secondsToStr(time.time() - t0)
time_total_elapsed = secondsToStr((cdtn - dt0).total_seconds()) tn = time.time()
dtn = cdtn return filled('%s (%s)%s%s' % (time_current, time_elapsed, ' ' * 7, time_total_elapsed))
return filled('%s (%s)%s%s' % (datetime_current, time_elapsed, ' ' * 7, time_total_elapsed))
class CallbackModule(CallbackBase): class CallbackModule(CallbackBase):
@ -147,7 +134,6 @@ class CallbackModule(CallbackBase):
self.sort_order = None self.sort_order = None
self.summary_only = None self.summary_only = None
self.task_output_limit = None self.task_output_limit = None
self.datetime_format = None
super(CallbackModule, self).__init__() super(CallbackModule, self).__init__()
@ -173,14 +159,9 @@ class CallbackModule(CallbackBase):
else: else:
self.task_output_limit = int(self.task_output_limit) self.task_output_limit = int(self.task_output_limit)
self.datetime_format = self.get_option('datetime_format')
if self.datetime_format is not None:
if self.datetime_format == 'iso8601':
self.datetime_format = '%Y-%m-%dT%H:%M:%S.%f'
def _display_tasktime(self): def _display_tasktime(self):
if not self.summary_only: if not self.summary_only:
self._display.display(tasktime(self)) self._display.display(tasktime())
def _record_task(self, task): def _record_task(self, task):
""" """
@ -195,11 +176,10 @@ class CallbackModule(CallbackBase):
# with the same UUID is executed when `serial` is specified in a playbook. # with the same UUID is executed when `serial` is specified in a playbook.
# elapsed: Elapsed time since the first serialized task was started # elapsed: Elapsed time since the first serialized task was started
self.current = task._uuid self.current = task._uuid
dtn = datetime.now().astimezone()
if self.current not in self.stats: if self.current not in self.stats:
self.stats[self.current] = {'started': dtn, 'elapsed': 0.0, 'name': task.get_name()} self.stats[self.current] = {'started': time.time(), 'elapsed': 0.0, 'name': task.get_name()}
else: else:
self.stats[self.current]['started'] = dtn self.stats[self.current]['started'] = time.time()
if self._display.verbosity >= 2: if self._display.verbosity >= 2:
self.stats[self.current]['path'] = task.get_path() self.stats[self.current]['path'] = task.get_path()
@ -216,7 +196,7 @@ class CallbackModule(CallbackBase):
# Align summary report header with other callback plugin summary # Align summary report header with other callback plugin summary
self._display.banner("TASKS RECAP") self._display.banner("TASKS RECAP")
self._display.display(tasktime(self)) self._display.display(tasktime())
self._display.display(filled("", fchar="=")) self._display.display(filled("", fchar="="))
timestamp(self) timestamp(self)

View file

@ -20,4 +20,5 @@
ansible.builtin.include_tasks: seboolean.yml ansible.builtin.include_tasks: seboolean.yml
when: when:
- ansible_selinux is defined - ansible_selinux is defined
- ansible_selinux
- ansible_selinux.status == 'enabled' - ansible_selinux.status == 'enabled'

View file

@ -19,21 +19,23 @@
- name: Debug message for when SELinux is disabled - name: Debug message for when SELinux is disabled
ansible.builtin.debug: ansible.builtin.debug:
msg: SELinux is disabled msg: SELinux is disabled
when: ansible_selinux is defined and ansible_selinux.status == 'disabled' when: ansible_selinux is defined and not ansible_selinux
- name: Debug message for when SELinux is enabled and not disabled - name: Debug message for when SELinux is enabled and not disabled
ansible.builtin.debug: ansible.builtin.debug:
msg: SELinux is {{ ansible_selinux.status }} msg: SELinux is {{ ansible_selinux.status }}
when: ansible_selinux is defined when: ansible_selinux is defined and ansible_selinux
- name: Include_tasks for when SELinux is enabled - name: Include_tasks for when SELinux is enabled
ansible.builtin.include_tasks: selinux.yml ansible.builtin.include_tasks: selinux.yml
when: when:
- ansible_selinux is defined - ansible_selinux is defined
- ansible_selinux
- ansible_selinux.status == 'enabled' - ansible_selinux.status == 'enabled'
- name: Include tasks for selogin when SELinux is enabled - name: Include tasks for selogin when SELinux is enabled
ansible.builtin.include_tasks: selogin.yml ansible.builtin.include_tasks: selogin.yml
when: when:
- ansible_selinux is defined - ansible_selinux is defined
- ansible_selinux
- ansible_selinux.status == 'enabled' - ansible_selinux.status == 'enabled'