# STDOUT: ---v---v---v---v---v--- ansible-playbook 2.9.27 config file = /etc/ansible/ansible.cfg configured module search path = ['/home/jenkins/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /opt/ansible-2.9/lib/python3.9/site-packages/ansible executable location = /opt/ansible-2.9/bin/ansible-playbook python version = 3.9.18 (main, Sep 7 2023, 00:00:00) [GCC 11.4.1 20230605 (Red Hat 11.4.1-2)] Using /etc/ansible/ansible.cfg as config file Skipping callback 'actionable', as we already have a stdout callback. Skipping callback 'counter_enabled', as we already have a stdout callback. Skipping callback 'debug', as we already have a stdout callback. Skipping callback 'dense', as we already have a stdout callback. Skipping callback 'dense', as we already have a stdout callback. Skipping callback 'full_skip', as we already have a stdout callback. Skipping callback 'json', as we already have a stdout callback. Skipping callback 'minimal', as we already have a stdout callback. Skipping callback 'null', as we already have a stdout callback. Skipping callback 'oneline', as we already have a stdout callback. Skipping callback 'selective', as we already have a stdout callback. Skipping callback 'skippy', as we already have a stdout callback. Skipping callback 'stderr', as we already have a stdout callback. Skipping callback 'unixy', as we already have a stdout callback. Skipping callback 'yaml', as we already have a stdout callback. PLAYBOOK: tests_certificate_runafter.yml *************************************** 1 plays in /WORKDIR/git-weekly-ci1hx0xx75/tests/tests_certificate_runafter.yml PLAY [Test certificate issuance with run_after shell script] ******************* TASK [Gathering Facts] ********************************************************* task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/tests_certificate_runafter.yml:6 Saturday 03 August 2024 13:09:47 +0000 (0:00:00.011) 0:00:00.011 ******* ok: [sut] META: ran handlers TASK [Install cockpit] ********************************************************* task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/tests_certificate_runafter.yml:9 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.537) 0:00:00.548 ******* TASK [linux-system-roles.cockpit : Ensure ansible_facts and variables used by role] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:2 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.021) 0:00:00.570 ******* included: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/set_vars.yml for sut TASK [linux-system-roles.cockpit : Ensure ansible_facts used by role] ********** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/set_vars.yml:2 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.011) 0:00:00.581 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.cockpit : Check if system is ostree] ****************** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/set_vars.yml:11 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.016) 0:00:00.598 ******* ok: [sut] => { "changed": false, "stat": { "exists": false } } TASK [linux-system-roles.cockpit : Set flag to indicate system is ostree] ****** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/set_vars.yml:16 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.191) 0:00:00.790 ******* ok: [sut] => { "ansible_facts": { "__cockpit_is_ostree": false }, "changed": false } TASK [linux-system-roles.cockpit : Check if transactional-update exists in /sbin] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/set_vars.yml:23 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.019) 0:00:00.809 ******* ok: [sut] => { "changed": false, "stat": { "exists": false } } TASK [linux-system-roles.cockpit : Set flag if transactional-update exists] **** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/set_vars.yml:28 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.117) 0:00:00.926 ******* ok: [sut] => { "ansible_facts": { "__cockpit_is_transactional": false }, "changed": false } TASK [linux-system-roles.cockpit : Set version specific variables] ************* task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/set_vars.yml:32 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.019) 0:00:00.946 ******* ok: [sut] => (item=/WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/vars/CentOS-7.yml) => { "ansible_facts": { "__cockpit_packages": { "default": "{{ __cockpit_packages_minimal + __cockpit_packages_default }}", "full": "{{ __cockpit_packages_minimal + __cockpit_packages_default + __cockpit_packages_full }}", "minimal": "{{ __cockpit_packages_minimal }}" }, "__cockpit_packages_default": [ "cockpit", "cockpit-networkmanager", "cockpit-packagekit", "cockpit-selinux", "cockpit-storaged" ], "__cockpit_packages_exclude": [ "cockpit-machines-ovirt", "cockpit-tests" ], "__cockpit_packages_full": [ "cockpit-composer", "cockpit-dashboard", "cockpit-doc", "cockpit-docker", "cockpit-machines", "cockpit-pcp", "cockpit-shell" ], "__cockpit_packages_minimal": [ "cockpit-system", "cockpit-ws" ] }, "ansible_included_var_files": [ "/WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/vars/CentOS-7.yml" ], "ansible_loop_var": "item", "changed": false, "item": "/WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/vars/CentOS-7.yml" } TASK [linux-system-roles.cockpit : List active RHEL repositories] ************** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:11 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.020) 0:00:00.967 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.cockpit : Enable RHEL repositories] ******************* task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:18 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.015) 0:00:00.983 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.cockpit : Manage cockpit packages using platform specific package manager if applicable] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:23 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.015) 0:00:00.999 ******* included: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/setup-yum.yml for sut TASK [linux-system-roles.cockpit : If choosing custom package set, ensure minimal cockpit is included] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/setup-yum.yml:2 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.023) 0:00:01.022 ******* ok: [sut] => { "ansible_facts": { "cockpit_packages": "minimal" }, "changed": false } TASK [linux-system-roles.cockpit : Ensure Cockpit Web Console packages are installed.] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/setup-yum.yml:9 Saturday 03 August 2024 13:09:48 +0000 (0:00:00.018) 0:00:01.041 ******* ok: [sut] => { "changed": false, "rc": 0, "results": [ "cockpit-system-195.12-1.el7.centos.noarch providing cockpit-system is already installed", "cockpit-ws-195.12-1.el7.centos.x86_64 providing cockpit-ws is already installed" ] } lsrpackages: cockpit-system cockpit-ws TASK [linux-system-roles.cockpit : Configure firewall] ************************* task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:32 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.429) 0:00:01.470 ******* included: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/firewall.yml for sut TASK [Ensure the cockpit service is enabled] *********************************** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/firewall.yml:3 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.011) 0:00:01.482 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.cockpit : Configure selinux] ************************** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:35 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.017) 0:00:01.499 ******* included: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/selinux.yml for sut TASK [Ensure the service and the ports status with the selinux role] *********** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/selinux.yml:3 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.011) 0:00:01.510 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.cockpit : Create custom port configuration file directory] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:38 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.015) 0:00:01.526 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.cockpit : Create custom port configuration file] ****** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:47 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.016) 0:00:01.543 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.cockpit : Clean up port configuration file for undefined custom port] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:62 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.015) 0:00:01.559 ******* ok: [sut] => { "changed": false, "path": "/etc/systemd/system/cockpit.socket.d/listen.conf", "state": "absent" } TASK [linux-system-roles.cockpit : Ensure Cockpit Web Console is started/stopped and enabled/disabled] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:71 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.175) 0:00:01.734 ******* ok: [sut] => { "changed": false, "enabled": true, "name": "cockpit.socket", "state": "started", "status": { "Accept": "no", "ActiveEnterTimestamp": "Sat 2024-08-03 13:09:42 UTC", "ActiveEnterTimestampMonotonic": "1268613722", "ActiveExitTimestampMonotonic": "0", "ActiveState": "active", "After": "system.slice systemd-journald.socket sysinit.target", "AllowIsolate": "no", "AmbientCapabilities": "0", "AssertResult": "yes", "AssertTimestamp": "Sat 2024-08-03 13:09:42 UTC", "AssertTimestampMonotonic": "1268587725", "Backlog": "128", "Before": "shutdown.target cockpit.service sockets.target cockpit-motd.service", "BindIPv6Only": "default", "BlockIOAccounting": "no", "BlockIOWeight": "18446744073709551615", "Broadcast": "no", "CPUAccounting": "no", "CPUQuotaPerSecUSec": "infinity", "CPUSchedulingPolicy": "0", "CPUSchedulingPriority": "0", "CPUSchedulingResetOnFork": "no", "CPUShares": "18446744073709551615", "CanIsolate": "no", "CanReload": "no", "CanStart": "yes", "CanStop": "yes", "CapabilityBoundingSet": "18446744073709551615", "CollectMode": "inactive", "ConditionResult": "yes", "ConditionTimestamp": "Sat 2024-08-03 13:09:42 UTC", "ConditionTimestampMonotonic": "1268587723", "Conflicts": "shutdown.target", "ControlGroup": "/system.slice/cockpit.socket", "ControlPID": "0", "DefaultDependencies": "yes", "DeferAcceptUSec": "0", "Delegate": "no", "Description": "Cockpit Web Service Socket", "DevicePolicy": "auto", "DirectoryMode": "0755", "Documentation": "man:cockpit-ws(8)", "ExecStartPost": "{ path=/bin/ln ; argv[]=/bin/ln -snf active.motd /run/cockpit/motd ; ignore_errors=yes ; start_time=[Sat 2024-08-03 13:09:42 UTC] ; stop_time=[Sat 2024-08-03 13:09:42 UTC] ; pid=12029 ; code=exited ; status=1 }", "ExecStopPost": "{ path=/bin/ln ; argv[]=/bin/ln -snf /usr/share/cockpit/motd/inactive.motd /run/cockpit/motd ; ignore_errors=yes ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }", "FragmentPath": "/usr/lib/systemd/system/cockpit.socket", "FreeBind": "no", "IOScheduling": "0", "IPTOS": "-1", "IPTTL": "-1", "Id": "cockpit.socket", "IgnoreOnIsolate": "no", "IgnoreOnSnapshot": "no", "IgnoreSIGPIPE": "yes", "InactiveEnterTimestampMonotonic": "0", "InactiveExitTimestamp": "Sat 2024-08-03 13:09:42 UTC", "InactiveExitTimestampMonotonic": "1268589448", "JobTimeoutAction": "none", "JobTimeoutUSec": "0", "KeepAlive": "no", "KeepAliveIntervalUSec": "0", "KeepAliveProbes": "0", "KeepAliveTimeUSec": "0", "KillMode": "control-group", "KillSignal": "15", "LimitAS": "18446744073709551615", "LimitCORE": "18446744073709551615", "LimitCPU": "18446744073709551615", "LimitDATA": "18446744073709551615", "LimitFSIZE": "18446744073709551615", "LimitLOCKS": "18446744073709551615", "LimitMEMLOCK": "65536", "LimitMSGQUEUE": "819200", "LimitNICE": "0", "LimitNOFILE": "4096", "LimitNPROC": "14311", "LimitRSS": "18446744073709551615", "LimitRTPRIO": "0", "LimitRTTIME": "18446744073709551615", "LimitSIGPENDING": "14311", "LimitSTACK": "18446744073709551615", "ListenStream": "[::]:9090", "LoadState": "loaded", "Mark": "-1", "MaxConnections": "64", "MemoryAccounting": "no", "MemoryCurrent": "18446744073709551615", "MemoryLimit": "18446744073709551615", "MountFlags": "0", "NAccepted": "0", "NConnections": "0", "Names": "cockpit.socket", "NeedDaemonReload": "no", "Nice": "0", "NoDelay": "no", "NoNewPrivileges": "no", "NonBlocking": "no", "OOMScoreAdjust": "0", "OnFailureJobMode": "replace", "PassCredentials": "no", "PassSecurity": "no", "PipeSize": "0", "Priority": "-1", "PrivateDevices": "no", "PrivateNetwork": "no", "PrivateTmp": "no", "ProtectHome": "no", "ProtectSystem": "no", "ReceiveBuffer": "0", "RefuseManualStart": "no", "RefuseManualStop": "no", "RemoveOnStop": "no", "RequiredBy": "cockpit.service", "Requires": "system.slice sysinit.target", "Result": "success", "ReusePort": "no", "RuntimeDirectoryMode": "0755", "SameProcessGroup": "no", "SecureBits": "0", "SendBuffer": "0", "SendSIGHUP": "no", "SendSIGKILL": "yes", "Slice": "system.slice", "SocketMode": "0666", "StandardError": "inherit", "StandardInput": "null", "StandardOutput": "journal", "StartupBlockIOWeight": "18446744073709551615", "StartupCPUShares": "18446744073709551615", "StopWhenUnneeded": "no", "SubState": "listening", "SyslogLevelPrefix": "yes", "SyslogPriority": "30", "SystemCallErrorNumber": "0", "TTYReset": "no", "TTYVHangup": "no", "TTYVTDisallocate": "no", "TasksAccounting": "no", "TasksCurrent": "18446744073709551615", "TasksMax": "18446744073709551615", "TimeoutUSec": "1min 30s", "TimerSlackNSec": "50000", "Transient": "no", "Transparent": "no", "Triggers": "cockpit.service", "UMask": "0022", "UnitFilePreset": "disabled", "UnitFileState": "enabled", "WantedBy": "sockets.target", "Wants": "cockpit-motd.service" } } TASK [linux-system-roles.cockpit : Create cockpit.conf configuration file] ***** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:77 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.311) 0:00:02.046 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.cockpit : Check the OS version for self-sign] ********* task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:93 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.017) 0:00:02.063 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Create certificates using the certificate role] ************************** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:103 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.017) 0:00:02.080 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.cockpit : Set cockpit_cert and cockpit_private_key] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:109 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.015) 0:00:02.096 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.cockpit : Link to configured existing certificate] **** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:115 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.016) 0:00:02.113 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.cockpit : Link to configured existing certificate key] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/roles/linux-system-roles.cockpit/tasks/main.yml:125 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.015) 0:00:02.129 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Allow certmonger to write into Cockpit's certificate directory] ********** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/tests_certificate_runafter.yml:20 Saturday 03 August 2024 13:09:49 +0000 (0:00:00.015) 0:00:02.145 ******* changed: [sut] => { "changed": true, "gid": 0, "group": "root", "mode": "0755", "owner": "root", "path": "/etc/cockpit/ws-certs.d/", "secontext": "system_u:object_r:cert_t:s0", "size": 4096, "state": "directory", "uid": 0 } TASK [Get name of cockpit group to use] **************************************** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/tests_certificate_runafter.yml:28 Saturday 03 August 2024 13:09:50 +0000 (0:00:00.119) 0:00:02.264 ******* included: /WORKDIR/git-weekly-ci1hx0xx75/tests/tasks/get_cockpit_group.yml for sut TASK [Get name of cockpit group for tests] ************************************* task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/tasks/get_cockpit_group.yml:3 Saturday 03 August 2024 13:09:50 +0000 (0:00:00.011) 0:00:02.276 ******* ok: [sut] => { "ansible_facts": { "getent_group": { "cockpit-wsinstance": null } }, "changed": false } MSG: One or more supplied key could not be found in the database. TASK [Set __cockpit_test_group] ************************************************ task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/tasks/get_cockpit_group.yml:9 Saturday 03 August 2024 13:09:50 +0000 (0:00:00.157) 0:00:02.434 ******* ok: [sut] => { "ansible_facts": { "__cockpit_test_group": "cockpit-ws" }, "changed": false } TASK [Generate certificate with certificate system role] *********************** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/tests_certificate_runafter.yml:32 Saturday 03 August 2024 13:09:50 +0000 (0:00:00.017) 0:00:02.452 ******* TASK [fedora.linux_system_roles.certificate : Set version specific variables] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/main.yml:2 Saturday 03 August 2024 13:09:50 +0000 (0:00:00.037) 0:00:02.489 ******* included: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/set_vars.yml for sut TASK [fedora.linux_system_roles.certificate : Ensure ansible_facts used by role] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/set_vars.yml:2 Saturday 03 August 2024 13:09:50 +0000 (0:00:00.014) 0:00:02.504 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.certificate : Check if system is ostree] ******* task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/set_vars.yml:10 Saturday 03 August 2024 13:09:50 +0000 (0:00:00.018) 0:00:02.522 ******* ok: [sut] => { "changed": false, "stat": { "exists": false } } TASK [fedora.linux_system_roles.certificate : Set flag to indicate system is ostree] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/set_vars.yml:15 Saturday 03 August 2024 13:09:50 +0000 (0:00:00.119) 0:00:02.641 ******* ok: [sut] => { "ansible_facts": { "__certificate_is_ostree": false }, "changed": false } TASK [fedora.linux_system_roles.certificate : Set platform/version specific variables] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/set_vars.yml:19 Saturday 03 August 2024 13:09:50 +0000 (0:00:00.019) 0:00:02.661 ******* skipping: [sut] => (item=RedHat.yml) => { "ansible_loop_var": "item", "changed": false, "item": "RedHat.yml", "skip_reason": "Conditional result was False" } skipping: [sut] => (item=CentOS.yml) => { "ansible_loop_var": "item", "changed": false, "item": "CentOS.yml", "skip_reason": "Conditional result was False" } ok: [sut] => (item=CentOS_7.yml) => { "ansible_facts": { "__certificate_default_directory": "/etc/pki/tls", "__certificate_packages": [ "python-pyasn1", "python-cryptography", "python-dbus" ] }, "ansible_included_var_files": [ "/WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/vars/CentOS_7.yml" ], "ansible_loop_var": "item", "changed": false, "item": "CentOS_7.yml" } skipping: [sut] => (item=CentOS_7.9.yml) => { "ansible_loop_var": "item", "changed": false, "item": "CentOS_7.9.yml", "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.certificate : Ensure certificate role dependencies are installed] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/main.yml:5 Saturday 03 August 2024 13:09:50 +0000 (0:00:00.031) 0:00:02.692 ******* changed: [sut] => { "changed": true, "changes": { "installed": [ "python-pyasn1", "python-cryptography" ] }, "rc": 0, "results": [ "dbus-python-1.1.1-9.el7.x86_64 providing python-dbus is already installed", "Loaded plugins: fastestmirror\nLoading mirror speeds from cached hostfile\nResolving Dependencies\n--> Running transaction check\n---> Package python2-cryptography.x86_64 0:1.7.2-2.el7 will be installed\n--> Processing Dependency: python-idna >= 2.0 for package: python2-cryptography-1.7.2-2.el7.x86_64\n--> Processing Dependency: python-cffi >= 1.4.1 for package: python2-cryptography-1.7.2-2.el7.x86_64\n--> Processing Dependency: python-enum34 for package: python2-cryptography-1.7.2-2.el7.x86_64\n---> Package python2-pyasn1.noarch 0:0.1.9-7.el7 will be installed\n--> Running transaction check\n---> Package python-cffi.x86_64 0:1.6.0-5.el7 will be installed\n--> Processing Dependency: python-pycparser for package: python-cffi-1.6.0-5.el7.x86_64\n---> Package python-enum34.noarch 0:1.0.4-1.el7 will be installed\n---> Package python-idna.noarch 0:2.4-1.el7 will be installed\n--> Running transaction check\n---> Package python-pycparser.noarch 0:2.14-1.el7 will be installed\n--> Processing Dependency: python-ply for package: python-pycparser-2.14-1.el7.noarch\n--> Running transaction check\n---> Package python-ply.noarch 0:3.4-11.el7 will be installed\n--> Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package Arch Version Repository Size\n================================================================================\nInstalling:\n python2-cryptography x86_64 1.7.2-2.el7 base 502 k\n python2-pyasn1 noarch 0.1.9-7.el7 base 100 k\nInstalling for dependencies:\n python-cffi x86_64 1.6.0-5.el7 base 218 k\n python-enum34 noarch 1.0.4-1.el7 base 52 k\n python-idna noarch 2.4-1.el7 base 94 k\n python-ply noarch 3.4-11.el7 base 123 k\n python-pycparser noarch 2.14-1.el7 base 104 k\n\nTransaction Summary\n================================================================================\nInstall 2 Packages (+5 Dependent packages)\n\nTotal download size: 1.2 M\nInstalled size: 6.1 M\nDownloading packages:\n--------------------------------------------------------------------------------\nTotal 3.9 MB/s | 1.2 MB 00:00 \nRunning transaction check\nRunning transaction test\nTransaction test succeeded\nRunning transaction\n Installing : python2-pyasn1-0.1.9-7.el7.noarch 1/7 \n Installing : python-enum34-1.0.4-1.el7.noarch 2/7 \n Installing : python-ply-3.4-11.el7.noarch 3/7 \n Installing : python-pycparser-2.14-1.el7.noarch 4/7 \n Installing : python-cffi-1.6.0-5.el7.x86_64 5/7 \n Installing : python-idna-2.4-1.el7.noarch 6/7 \n Installing : python2-cryptography-1.7.2-2.el7.x86_64 7/7 \n Verifying : python-idna-2.4-1.el7.noarch 1/7 \n Verifying : python-pycparser-2.14-1.el7.noarch 2/7 \n Verifying : python-ply-3.4-11.el7.noarch 3/7 \n Verifying : python-cffi-1.6.0-5.el7.x86_64 4/7 \n Verifying : python-enum34-1.0.4-1.el7.noarch 5/7 \n Verifying : python2-pyasn1-0.1.9-7.el7.noarch 6/7 \n Verifying : python2-cryptography-1.7.2-2.el7.x86_64 7/7 \n\nInstalled:\n python2-cryptography.x86_64 0:1.7.2-2.el7 python2-pyasn1.noarch 0:0.1.9-7.el7\n\nDependency Installed:\n python-cffi.x86_64 0:1.6.0-5.el7 python-enum34.noarch 0:1.0.4-1.el7 \n python-idna.noarch 0:2.4-1.el7 python-ply.noarch 0:3.4-11.el7 \n python-pycparser.noarch 0:2.14-1.el7 \n\nComplete!\n" ] } lsrpackages: python-cryptography python-dbus python-pyasn1 TASK [fedora.linux_system_roles.certificate : Ensure provider packages are installed] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/main.yml:23 Saturday 03 August 2024 13:09:54 +0000 (0:00:04.206) 0:00:06.898 ******* changed: [sut] => (item=certmonger) => { "__certificate_provider": "certmonger", "ansible_loop_var": "__certificate_provider", "changed": true, "changes": { "installed": [ "certmonger" ] }, "rc": 0, "results": [ "Loaded plugins: fastestmirror\nLoading mirror speeds from cached hostfile\nResolving Dependencies\n--> Running transaction check\n---> Package certmonger.x86_64 0:0.78.4-17.el7_9 will be installed\n--> Processing Dependency: libtevent.so.0(TEVENT_0.9.9)(64bit) for package: certmonger-0.78.4-17.el7_9.x86_64\n--> Processing Dependency: libtalloc.so.2(TALLOC_2.0.2)(64bit) for package: certmonger-0.78.4-17.el7_9.x86_64\n--> Processing Dependency: libxmlrpc_util.so.3()(64bit) for package: certmonger-0.78.4-17.el7_9.x86_64\n--> Processing Dependency: libxmlrpc_client.so.3()(64bit) for package: certmonger-0.78.4-17.el7_9.x86_64\n--> Processing Dependency: libxmlrpc.so.3()(64bit) for package: certmonger-0.78.4-17.el7_9.x86_64\n--> Processing Dependency: libtevent.so.0()(64bit) for package: certmonger-0.78.4-17.el7_9.x86_64\n--> Processing Dependency: libtalloc.so.2()(64bit) for package: certmonger-0.78.4-17.el7_9.x86_64\n--> Running transaction check\n---> Package libtalloc.x86_64 0:2.1.16-1.el7 will be installed\n---> Package libtevent.x86_64 0:0.9.39-1.el7 will be installed\n---> Package xmlrpc-c.x86_64 0:1.32.5-1905.svn2451.el7 will be installed\n---> Package xmlrpc-c-client.x86_64 0:1.32.5-1905.svn2451.el7 will be installed\n--> Finished Dependency Resolution\n\nDependencies Resolved\n\n================================================================================\n Package Arch Version Repository Size\n================================================================================\nInstalling:\n certmonger x86_64 0.78.4-17.el7_9 updates 608 k\nInstalling for dependencies:\n libtalloc x86_64 2.1.16-1.el7 base 33 k\n libtevent x86_64 0.9.39-1.el7 base 41 k\n xmlrpc-c x86_64 1.32.5-1905.svn2451.el7 base 130 k\n xmlrpc-c-client x86_64 1.32.5-1905.svn2451.el7 base 32 k\n\nTransaction Summary\n================================================================================\nInstall 1 Package (+4 Dependent packages)\n\nTotal download size: 843 k\nInstalled size: 3.3 M\nDownloading packages:\n--------------------------------------------------------------------------------\nTotal 2.3 MB/s | 843 kB 00:00 \nRunning transaction check\nRunning transaction test\nTransaction test succeeded\nRunning transaction\n Installing : libtalloc-2.1.16-1.el7.x86_64 1/5 \n Installing : xmlrpc-c-1.32.5-1905.svn2451.el7.x86_64 2/5 \n Installing : xmlrpc-c-client-1.32.5-1905.svn2451.el7.x86_64 3/5 \n Installing : libtevent-0.9.39-1.el7.x86_64 4/5 \n Installing : certmonger-0.78.4-17.el7_9.x86_64 5/5 \n Verifying : xmlrpc-c-1.32.5-1905.svn2451.el7.x86_64 1/5 \n Verifying : libtalloc-2.1.16-1.el7.x86_64 2/5 \n Verifying : certmonger-0.78.4-17.el7_9.x86_64 3/5 \n Verifying : xmlrpc-c-client-1.32.5-1905.svn2451.el7.x86_64 4/5 \n Verifying : libtevent-0.9.39-1.el7.x86_64 5/5 \n\nInstalled:\n certmonger.x86_64 0:0.78.4-17.el7_9 \n\nDependency Installed:\n libtalloc.x86_64 0:2.1.16-1.el7 \n libtevent.x86_64 0:0.9.39-1.el7 \n xmlrpc-c.x86_64 0:1.32.5-1905.svn2451.el7 \n xmlrpc-c-client.x86_64 0:1.32.5-1905.svn2451.el7 \n\nComplete!\n" ] } lsrpackages: certmonger TASK [fedora.linux_system_roles.certificate : Ensure pre-scripts hooks directory exists] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/main.yml:35 Saturday 03 August 2024 13:09:59 +0000 (0:00:04.848) 0:00:11.747 ******* changed: [sut] => (item=certmonger) => { "__certificate_provider": "certmonger", "ansible_loop_var": "__certificate_provider", "changed": true, "gid": 0, "group": "root", "mode": "0700", "owner": "root", "path": "/etc/certmonger//pre-scripts", "secontext": "unconfined_u:object_r:etc_t:s0", "size": 4096, "state": "directory", "uid": 0 } TASK [fedora.linux_system_roles.certificate : Ensure post-scripts hooks directory exists] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/main.yml:61 Saturday 03 August 2024 13:09:59 +0000 (0:00:00.141) 0:00:11.888 ******* changed: [sut] => (item=certmonger) => { "__certificate_provider": "certmonger", "ansible_loop_var": "__certificate_provider", "changed": true, "gid": 0, "group": "root", "mode": "0700", "owner": "root", "path": "/etc/certmonger//post-scripts", "secontext": "unconfined_u:object_r:etc_t:s0", "size": 4096, "state": "directory", "uid": 0 } TASK [fedora.linux_system_roles.certificate : Ensure provider service is running] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/main.yml:90 Saturday 03 August 2024 13:09:59 +0000 (0:00:00.136) 0:00:12.025 ******* changed: [sut] => (item=certmonger) => { "__certificate_provider": "certmonger", "ansible_loop_var": "__certificate_provider", "changed": true, "enabled": true, "name": "certmonger", "state": "started", "status": { "ActiveEnterTimestampMonotonic": "0", "ActiveExitTimestampMonotonic": "0", "ActiveState": "inactive", "After": "system.slice systemd-journald.socket dbus.service syslog.target network.target basic.target", "AllowIsolate": "no", "AmbientCapabilities": "0", "AssertResult": "no", "AssertTimestampMonotonic": "0", "Before": "shutdown.target", "BlockIOAccounting": "no", "BlockIOWeight": "18446744073709551615", "BusName": "org.fedorahosted.certmonger", "CPUAccounting": "no", "CPUQuotaPerSecUSec": "infinity", "CPUSchedulingPolicy": "0", "CPUSchedulingPriority": "0", "CPUSchedulingResetOnFork": "no", "CPUShares": "18446744073709551615", "CanIsolate": "no", "CanReload": "no", "CanStart": "yes", "CanStop": "yes", "CapabilityBoundingSet": "18446744073709551615", "CollectMode": "inactive", "ConditionResult": "no", "ConditionTimestampMonotonic": "0", "Conflicts": "shutdown.target", "ControlPID": "0", "DefaultDependencies": "yes", "Delegate": "no", "Description": "Certificate monitoring and PKI enrollment", "DevicePolicy": "auto", "EnvironmentFile": "/etc/sysconfig/certmonger (ignore_errors=yes)", "ExecMainCode": "0", "ExecMainExitTimestampMonotonic": "0", "ExecMainPID": "0", "ExecMainStartTimestampMonotonic": "0", "ExecMainStatus": "0", "ExecStart": "{ path=/usr/sbin/certmonger ; argv[]=/usr/sbin/certmonger -S -p /var/run/certmonger.pid -n $OPTS ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }", "FailureAction": "none", "FileDescriptorStoreMax": "0", "FragmentPath": "/usr/lib/systemd/system/certmonger.service", "GuessMainPID": "yes", "IOScheduling": "0", "Id": "certmonger.service", "IgnoreOnIsolate": "no", "IgnoreOnSnapshot": "no", "IgnoreSIGPIPE": "yes", "InactiveEnterTimestampMonotonic": "0", "InactiveExitTimestampMonotonic": "0", "JobTimeoutAction": "none", "JobTimeoutUSec": "0", "KillMode": "control-group", "KillSignal": "15", "LimitAS": "18446744073709551615", "LimitCORE": "18446744073709551615", "LimitCPU": "18446744073709551615", "LimitDATA": "18446744073709551615", "LimitFSIZE": "18446744073709551615", "LimitLOCKS": "18446744073709551615", "LimitMEMLOCK": "65536", "LimitMSGQUEUE": "819200", "LimitNICE": "0", "LimitNOFILE": "4096", "LimitNPROC": "14311", "LimitRSS": "18446744073709551615", "LimitRTPRIO": "0", "LimitRTTIME": "18446744073709551615", "LimitSIGPENDING": "14311", "LimitSTACK": "18446744073709551615", "LoadState": "loaded", "MainPID": "0", "MemoryAccounting": "no", "MemoryCurrent": "18446744073709551615", "MemoryLimit": "18446744073709551615", "MountFlags": "0", "Names": "certmonger.service", "NeedDaemonReload": "no", "Nice": "0", "NoNewPrivileges": "no", "NonBlocking": "no", "NotifyAccess": "none", "OOMScoreAdjust": "0", "OnFailureJobMode": "replace", "PIDFile": "/var/run/certmonger.pid", "PermissionsStartOnly": "no", "PrivateDevices": "no", "PrivateNetwork": "no", "PrivateTmp": "no", "ProtectHome": "no", "ProtectSystem": "no", "RefuseManualStart": "no", "RefuseManualStop": "no", "RemainAfterExit": "no", "Requires": "system.slice basic.target", "Restart": "no", "RestartUSec": "100ms", "Result": "success", "RootDirectoryStartOnly": "no", "RuntimeDirectoryMode": "0755", "SameProcessGroup": "no", "SecureBits": "0", "SendSIGHUP": "no", "SendSIGKILL": "yes", "Slice": "system.slice", "StandardError": "inherit", "StandardInput": "null", "StandardOutput": "journal", "StartLimitAction": "none", "StartLimitBurst": "5", "StartLimitInterval": "10000000", "StartupBlockIOWeight": "18446744073709551615", "StartupCPUShares": "18446744073709551615", "StatusErrno": "0", "StopWhenUnneeded": "no", "SubState": "dead", "SyslogLevelPrefix": "yes", "SyslogPriority": "30", "SystemCallErrorNumber": "0", "TTYReset": "no", "TTYVHangup": "no", "TTYVTDisallocate": "no", "TasksAccounting": "no", "TasksCurrent": "18446744073709551615", "TasksMax": "18446744073709551615", "TimeoutStartUSec": "1min 30s", "TimeoutStopUSec": "1min 30s", "TimerSlackNSec": "50000", "Transient": "no", "Type": "dbus", "UMask": "0022", "UnitFilePreset": "disabled", "UnitFileState": "disabled", "WatchdogTimestampMonotonic": "0", "WatchdogUSec": "0" } } TASK [fedora.linux_system_roles.certificate : Ensure certificate requests] ***** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/main.yml:101 Saturday 03 August 2024 13:10:00 +0000 (0:00:00.295) 0:00:12.320 ******* changed: [sut] => (item={'name': 'monger-cockpit', 'dns': ['localhost', 'www.example.com'], 'ca': 'local', 'group': 'cockpit-ws', 'run_after': 'DEST=/etc/cockpit/ws-certs.d/monger-cockpit.cert\ncat /etc/pki/tls/certs/monger-cockpit.crt \\\n/etc/pki/tls/private/monger-cockpit.key > $DEST\nchmod 640 $DEST\nchown root:cockpit-ws $DEST\n'}) => { "ansible_loop_var": "item", "changed": true, "item": { "ca": "local", "dns": [ "localhost", "www.example.com" ], "group": "cockpit-ws", "name": "monger-cockpit", "run_after": "DEST=/etc/cockpit/ws-certs.d/monger-cockpit.cert\ncat /etc/pki/tls/certs/monger-cockpit.crt \\\n/etc/pki/tls/private/monger-cockpit.key > $DEST\nchmod 640 $DEST\nchown root:cockpit-ws $DEST\n" } } MSG: Certificate requested (new). Pre/Post run hooks updated. File attributes updated. TASK [fedora.linux_system_roles.certificate : Slurp the contents of the files] *** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/main.yml:152 Saturday 03 August 2024 13:10:00 +0000 (0:00:00.713) 0:00:13.033 ******* skipping: [sut] => (item=['cert', {'name': 'monger-cockpit', 'dns': ['localhost', 'www.example.com'], 'ca': 'local', 'group': 'cockpit-ws', 'run_after': 'DEST=/etc/cockpit/ws-certs.d/monger-cockpit.cert\ncat /etc/pki/tls/certs/monger-cockpit.crt \\\n/etc/pki/tls/private/monger-cockpit.key > $DEST\nchmod 640 $DEST\nchown root:cockpit-ws $DEST\n'}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "cert", { "ca": "local", "dns": [ "localhost", "www.example.com" ], "group": "cockpit-ws", "name": "monger-cockpit", "run_after": "DEST=/etc/cockpit/ws-certs.d/monger-cockpit.cert\ncat /etc/pki/tls/certs/monger-cockpit.crt \\\n/etc/pki/tls/private/monger-cockpit.key > $DEST\nchmod 640 $DEST\nchown root:cockpit-ws $DEST\n" } ], "skip_reason": "Conditional result was False" } skipping: [sut] => (item=['key', {'name': 'monger-cockpit', 'dns': ['localhost', 'www.example.com'], 'ca': 'local', 'group': 'cockpit-ws', 'run_after': 'DEST=/etc/cockpit/ws-certs.d/monger-cockpit.cert\ncat /etc/pki/tls/certs/monger-cockpit.crt \\\n/etc/pki/tls/private/monger-cockpit.key > $DEST\nchmod 640 $DEST\nchown root:cockpit-ws $DEST\n'}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "key", { "ca": "local", "dns": [ "localhost", "www.example.com" ], "group": "cockpit-ws", "name": "monger-cockpit", "run_after": "DEST=/etc/cockpit/ws-certs.d/monger-cockpit.cert\ncat /etc/pki/tls/certs/monger-cockpit.crt \\\n/etc/pki/tls/private/monger-cockpit.key > $DEST\nchmod 640 $DEST\nchown root:cockpit-ws $DEST\n" } ], "skip_reason": "Conditional result was False" } skipping: [sut] => (item=['ca', {'name': 'monger-cockpit', 'dns': ['localhost', 'www.example.com'], 'ca': 'local', 'group': 'cockpit-ws', 'run_after': 'DEST=/etc/cockpit/ws-certs.d/monger-cockpit.cert\ncat /etc/pki/tls/certs/monger-cockpit.crt \\\n/etc/pki/tls/private/monger-cockpit.key > $DEST\nchmod 640 $DEST\nchown root:cockpit-ws $DEST\n'}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "ca", { "ca": "local", "dns": [ "localhost", "www.example.com" ], "group": "cockpit-ws", "name": "monger-cockpit", "run_after": "DEST=/etc/cockpit/ws-certs.d/monger-cockpit.cert\ncat /etc/pki/tls/certs/monger-cockpit.crt \\\n/etc/pki/tls/private/monger-cockpit.key > $DEST\nchmod 640 $DEST\nchown root:cockpit-ws $DEST\n" } ], "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.certificate : Create return data] ************** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/main.yml:160 Saturday 03 August 2024 13:10:00 +0000 (0:00:00.025) 0:00:13.059 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.certificate : Stop tracking certificates] ****** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/main.yml:176 Saturday 03 August 2024 13:10:00 +0000 (0:00:00.017) 0:00:13.076 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [fedora.linux_system_roles.certificate : Remove files] ******************** task path: /WORKDIR/git-weekly-ci1hx0xx75/.collection/ansible_collections/fedora/linux_system_roles/roles/certificate/tasks/main.yml:181 Saturday 03 August 2024 13:10:00 +0000 (0:00:00.018) 0:00:13.095 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Restart cockpit to use the new certificates] ***************************** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/tests_certificate_runafter.yml:57 Saturday 03 August 2024 13:10:00 +0000 (0:00:00.019) 0:00:13.114 ******* skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Get PEM of certmonger's local CA] **************************************** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/tests_certificate_runafter.yml:64 Saturday 03 August 2024 13:10:00 +0000 (0:00:00.016) 0:00:13.131 ******* changed: [sut] => { "changed": true, "cmd": [ "openssl", "pkcs12", "-in", "/var/lib/certmonger/local/creds", "-out", "/var/lib/certmonger/local/ca.pem", "-nokeys", "-nodes", "-passin", "pass:" ], "delta": "0:00:00.221689", "end": "2024-08-03 13:10:01.377310", "rc": 0, "start": "2024-08-03 13:10:01.155621" } STDERR: MAC verified OK TASK [Test - cockpit works with TLS and expected certificate] ****************** task path: /WORKDIR/git-weekly-ci1hx0xx75/tests/tests_certificate_runafter.yml:72 Saturday 03 August 2024 13:10:01 +0000 (0:00:00.406) 0:00:13.537 ******* ok: [sut] => { "changed": false, "cmd": [ "curl", "--cacert", "/var/lib/certmonger/local/ca.pem", "https://localhost:9090" ], "delta": "0:00:00.219679", "end": "2024-08-03 13:10:01.759906", "rc": 0, "start": "2024-08-03 13:10:01.540227" } STDOUT: