# 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_many_self_signed.yml ******************************************* 2 plays in /WORKDIR/git-weekly-cimwrvbmf8/tests/tests_many_self_signed.yml PLAY [Issue many self-signed certificates] ************************************* TASK [Gathering Facts] ********************************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tests_many_self_signed.yml:2 Saturday 30 December 2023 13:36:26 +0000 (0:00:00.013) 0:00:00.013 ***** ok: [sut] META: ran handlers TASK [linux-system-roles.certificate : Set version specific variables] ********* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:2 Saturday 30 December 2023 13:36:27 +0000 (0:00:01.516) 0:00:01.530 ***** included: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/set_vars.yml for sut TASK [linux-system-roles.certificate : Ensure ansible_facts used by role] ****** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/set_vars.yml:2 Saturday 30 December 2023 13:36:27 +0000 (0:00:00.010) 0:00:01.541 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.certificate : Check if system is ostree] ************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/set_vars.yml:11 Saturday 30 December 2023 13:36:27 +0000 (0:00:00.019) 0:00:01.560 ***** ok: [sut] => { "changed": false, "stat": { "exists": false } } TASK [linux-system-roles.certificate : Set flag to indicate system is ostree] *** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/set_vars.yml:16 Saturday 30 December 2023 13:36:27 +0000 (0:00:00.276) 0:00:01.836 ***** ok: [sut] => { "ansible_facts": { "__certificate_is_ostree": false }, "changed": false } TASK [linux-system-roles.certificate : Set platform/version specific variables] *** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/set_vars.yml:20 Saturday 30 December 2023 13:36:27 +0000 (0:00:00.023) 0:00:01.859 ***** skipping: [sut] => (item=RedHat.yml) => { "ansible_loop_var": "item", "changed": false, "item": "RedHat.yml", "skip_reason": "Conditional result was False" } skipping: [sut] => (item=Fedora.yml) => { "ansible_loop_var": "item", "changed": false, "item": "Fedora.yml", "skip_reason": "Conditional result was False" } skipping: [sut] => (item=Fedora_38.yml) => { "ansible_loop_var": "item", "changed": false, "item": "Fedora_38.yml", "skip_reason": "Conditional result was False" } skipping: [sut] => (item=Fedora_38.yml) => { "ansible_loop_var": "item", "changed": false, "item": "Fedora_38.yml", "skip_reason": "Conditional result was False" } TASK [linux-system-roles.certificate : Ensure certificate role dependencies are installed] *** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:5 Saturday 30 December 2023 13:36:27 +0000 (0:00:00.029) 0:00:01.889 ***** changed: [sut] => { "changed": true, "rc": 0, "results": [ "Installed: python3-cryptography-37.0.2-8.fc38.x86_64", "Installed: python3-pycparser-2.20-9.fc38.noarch", "Installed: python3-ply-3.11-18.fc38.noarch", "Installed: python3-pyasn1-0.5.1-1.fc38.noarch", "Installed: python3-cffi-1.15.1-4.fc38.x86_64" ] } lsrpackages: python3-cryptography python3-dbus python3-pyasn1 TASK [linux-system-roles.certificate : Ensure provider packages are installed] *** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:24 Saturday 30 December 2023 13:36:33 +0000 (0:00:05.059) 0:00:06.949 ***** changed: [sut] => (item=certmonger) => { "__certificate_provider": "certmonger", "ansible_loop_var": "__certificate_provider", "changed": true, "rc": 0, "results": [ "Installed: certmonger-0.79.17-3.fc38.x86_64", "Installed: dbus-tools-1:1.14.10-1.fc38.x86_64" ] } lsrpackages: certmonger TASK [linux-system-roles.certificate : Ensure pre-scripts hooks directory exists] *** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:37 Saturday 30 December 2023 13:36:37 +0000 (0:00:04.881) 0:00:11.830 ***** 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 [linux-system-roles.certificate : Ensure post-scripts hooks directory exists] *** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:63 Saturday 30 December 2023 13:36:38 +0000 (0:00:00.375) 0:00:12.206 ***** 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 [linux-system-roles.certificate : Ensure provider service is running] ***** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:92 Saturday 30 December 2023 13:36:38 +0000 (0:00:00.234) 0:00:12.441 ***** changed: [sut] => (item=certmonger) => { "__certificate_provider": "certmonger", "ansible_loop_var": "__certificate_provider", "changed": true, "enabled": true, "name": "certmonger", "state": "started", "status": { "AccessSELinuxContext": "system_u:object_r:certmonger_unit_file_t:s0", "ActiveEnterTimestampMonotonic": "0", "ActiveExitTimestampMonotonic": "0", "ActiveState": "inactive", "After": "network.target basic.target dbus.socket system.slice sysinit.target syslog.target systemd-journald.socket dbus-broker.service", "AllowIsolate": "no", "AssertResult": "no", "AssertTimestampMonotonic": "0", "Before": "shutdown.target", "BlockIOAccounting": "no", "BlockIOWeight": "[not set]", "BusName": "org.fedorahosted.certmonger", "CPUAccounting": "yes", "CPUAffinityFromNUMA": "no", "CPUQuotaPerSecUSec": "infinity", "CPUQuotaPeriodUSec": "infinity", "CPUSchedulingPolicy": "0", "CPUSchedulingPriority": "0", "CPUSchedulingResetOnFork": "no", "CPUShares": "[not set]", "CPUUsageNSec": "[not set]", "CPUWeight": "[not set]", "CacheDirectoryMode": "0755", "CanFreeze": "yes", "CanIsolate": "no", "CanReload": "no", "CanStart": "yes", "CanStop": "yes", "CapabilityBoundingSet": "cap_chown cap_dac_override cap_dac_read_search cap_fowner cap_fsetid cap_kill cap_setgid cap_setuid cap_setpcap cap_linux_immutable cap_net_bind_service cap_net_broadcast cap_net_admin cap_net_raw cap_ipc_lock cap_ipc_owner cap_sys_module cap_sys_rawio cap_sys_chroot cap_sys_ptrace cap_sys_pacct cap_sys_admin cap_sys_boot cap_sys_nice cap_sys_resource cap_sys_time cap_sys_tty_config cap_mknod cap_lease cap_audit_write cap_audit_control cap_setfcap cap_mac_override cap_mac_admin cap_syslog cap_wake_alarm cap_block_suspend cap_audit_read cap_perfmon cap_bpf cap_checkpoint_restore", "CleanResult": "success", "CollectMode": "inactive", "ConditionResult": "no", "ConditionTimestampMonotonic": "0", "ConfigurationDirectoryMode": "0755", "Conflicts": "shutdown.target", "ControlGroupId": "0", "ControlPID": "0", "CoredumpFilter": "0x33", "DefaultDependencies": "yes", "DefaultMemoryLow": "0", "DefaultMemoryMin": "0", "Delegate": "no", "Description": "Certificate monitoring and PKI enrollment", "DevicePolicy": "auto", "DropInPaths": "/usr/lib/systemd/system/service.d/10-timeout-abort.conf", "DynamicUser": "no", "EnvironmentFiles": "/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 /run/certmonger.pid -n $OPTS ; ignore_errors=no ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }", "ExecStartEx": "{ path=/usr/sbin/certmonger ; argv[]=/usr/sbin/certmonger -S -p /run/certmonger.pid -n $OPTS ; flags= ; start_time=[n/a] ; stop_time=[n/a] ; pid=0 ; code=(null) ; status=0/0 }", "ExitType": "main", "FailureAction": "none", "FileDescriptorStoreMax": "0", "FinalKillSignal": "9", "FragmentPath": "/usr/lib/systemd/system/certmonger.service", "FreezerState": "running", "GID": "[not set]", "GuessMainPID": "yes", "IOAccounting": "no", "IOReadBytes": "18446744073709551615", "IOReadOperations": "18446744073709551615", "IOSchedulingClass": "2", "IOSchedulingPriority": "4", "IOWeight": "[not set]", "IOWriteBytes": "18446744073709551615", "IOWriteOperations": "18446744073709551615", "IPAccounting": "no", "IPEgressBytes": "[no data]", "IPEgressPackets": "[no data]", "IPIngressBytes": "[no data]", "IPIngressPackets": "[no data]", "Id": "certmonger.service", "IgnoreOnIsolate": "no", "IgnoreSIGPIPE": "yes", "InactiveEnterTimestampMonotonic": "0", "InactiveExitTimestampMonotonic": "0", "JobRunningTimeoutUSec": "infinity", "JobTimeoutAction": "none", "JobTimeoutUSec": "infinity", "KeyringMode": "private", "KillMode": "control-group", "KillSignal": "15", "LimitAS": "infinity", "LimitASSoft": "infinity", "LimitCORE": "infinity", "LimitCORESoft": "infinity", "LimitCPU": "infinity", "LimitCPUSoft": "infinity", "LimitDATA": "infinity", "LimitDATASoft": "infinity", "LimitFSIZE": "infinity", "LimitFSIZESoft": "infinity", "LimitLOCKS": "infinity", "LimitLOCKSSoft": "infinity", "LimitMEMLOCK": "8388608", "LimitMEMLOCKSoft": "8388608", "LimitMSGQUEUE": "819200", "LimitMSGQUEUESoft": "819200", "LimitNICE": "0", "LimitNICESoft": "0", "LimitNOFILE": "524288", "LimitNOFILESoft": "1024", "LimitNPROC": "14780", "LimitNPROCSoft": "14780", "LimitRSS": "infinity", "LimitRSSSoft": "infinity", "LimitRTPRIO": "0", "LimitRTPRIOSoft": "0", "LimitRTTIME": "infinity", "LimitRTTIMESoft": "infinity", "LimitSIGPENDING": "14780", "LimitSIGPENDINGSoft": "14780", "LimitSTACK": "infinity", "LimitSTACKSoft": "8388608", "LoadState": "loaded", "LockPersonality": "no", "LogLevelMax": "-1", "LogRateLimitBurst": "0", "LogRateLimitIntervalUSec": "0", "LogsDirectoryMode": "0755", "MainPID": "0", "ManagedOOMMemoryPressure": "auto", "ManagedOOMMemoryPressureLimit": "0", "ManagedOOMPreference": "none", "ManagedOOMSwap": "auto", "MemoryAccounting": "yes", "MemoryAvailable": "infinity", "MemoryCurrent": "[not set]", "MemoryDenyWriteExecute": "no", "MemoryHigh": "infinity", "MemoryLimit": "infinity", "MemoryLow": "0", "MemoryMax": "infinity", "MemoryMin": "0", "MemorySwapMax": "infinity", "MemoryZSwapMax": "infinity", "MountAPIVFS": "no", "NFileDescriptorStore": "0", "NRestarts": "0", "NUMAPolicy": "n/a", "Names": "certmonger.service", "NeedDaemonReload": "no", "Nice": "0", "NoNewPrivileges": "no", "NonBlocking": "no", "NotifyAccess": "none", "OOMPolicy": "stop", "OOMScoreAdjust": "0", "OnFailureJobMode": "replace", "OnSuccessJobMode": "fail", "PIDFile": "/run/certmonger.pid", "PartOf": "dbus-broker.service", "Perpetual": "no", "PrivateDevices": "no", "PrivateIPC": "no", "PrivateMounts": "no", "PrivateNetwork": "no", "PrivateTmp": "no", "PrivateUsers": "no", "ProcSubset": "all", "ProtectClock": "no", "ProtectControlGroups": "no", "ProtectHome": "no", "ProtectHostname": "no", "ProtectKernelLogs": "no", "ProtectKernelModules": "no", "ProtectKernelTunables": "no", "ProtectProc": "default", "ProtectSystem": "no", "RefuseManualStart": "no", "RefuseManualStop": "no", "ReloadResult": "success", "ReloadSignal": "1", "RemainAfterExit": "no", "RemoveIPC": "no", "Requires": "sysinit.target system.slice dbus.socket", "Restart": "no", "RestartKillSignal": "15", "RestartUSec": "100ms", "RestrictNamespaces": "no", "RestrictRealtime": "no", "RestrictSUIDSGID": "no", "Result": "success", "RootDirectoryStartOnly": "no", "RuntimeDirectoryMode": "0755", "RuntimeDirectoryPreserve": "no", "RuntimeMaxUSec": "infinity", "RuntimeRandomizedExtraUSec": "0", "SameProcessGroup": "no", "SecureBits": "0", "SendSIGHUP": "no", "SendSIGKILL": "yes", "Slice": "system.slice", "StandardError": "inherit", "StandardInput": "null", "StandardOutput": "journal", "StartLimitAction": "none", "StartLimitBurst": "5", "StartLimitIntervalUSec": "10s", "StartupBlockIOWeight": "[not set]", "StartupCPUShares": "[not set]", "StartupCPUWeight": "[not set]", "StartupIOWeight": "[not set]", "StateChangeTimestampMonotonic": "0", "StateDirectoryMode": "0755", "StatusErrno": "0", "StopWhenUnneeded": "no", "SubState": "dead", "SuccessAction": "none", "SyslogFacility": "3", "SyslogLevel": "6", "SyslogLevelPrefix": "yes", "SyslogPriority": "30", "SystemCallErrorNumber": "2147483646", "TTYReset": "no", "TTYVHangup": "no", "TTYVTDisallocate": "no", "TasksAccounting": "yes", "TasksCurrent": "[not set]", "TasksMax": "4434", "TimeoutAbortUSec": "45s", "TimeoutCleanUSec": "infinity", "TimeoutStartFailureMode": "terminate", "TimeoutStartUSec": "45s", "TimeoutStopFailureMode": "abort", "TimeoutStopUSec": "45s", "TimerSlackNSec": "50000", "Transient": "no", "Type": "dbus", "UID": "[not set]", "UMask": "0022", "UnitFilePreset": "disabled", "UnitFileState": "disabled", "UtmpMode": "init", "WatchdogSignal": "6", "WatchdogTimestampMonotonic": "0", "WatchdogUSec": "infinity" } } TASK [linux-system-roles.certificate : Ensure certificate requests] ************ task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:104 Saturday 30 December 2023 13:36:39 +0000 (0:00:01.243) 0:00:13.684 ***** changed: [sut] => (item={'name': 'mycert_many_self_signed', 'dns': 'www.example.com', 'ca': 'self-sign'}) => { "ansible_loop_var": "item", "changed": true, "item": { "ca": "self-sign", "dns": "www.example.com", "name": "mycert_many_self_signed" } } MSG: Certificate requested (new). changed: [sut] => (item={'name': 'other-cert', 'dns': 'www.example.org', 'ca': 'self-sign'}) => { "ansible_loop_var": "item", "changed": true, "item": { "ca": "self-sign", "dns": "www.example.org", "name": "other-cert" } } MSG: Certificate requested (new). changed: [sut] => (item={'name': 'another-cert', 'dns': 'www.example.net', 'ca': 'self-sign'}) => { "ansible_loop_var": "item", "changed": true, "item": { "ca": "self-sign", "dns": "www.example.net", "name": "another-cert" } } MSG: Certificate requested (new). TASK [linux-system-roles.certificate : Slurp the contents of the files] ******** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:156 Saturday 30 December 2023 13:36:43 +0000 (0:00:03.437) 0:00:17.121 ***** skipping: [sut] => (item=['cert', {'name': 'mycert_many_self_signed', 'dns': 'www.example.com', 'ca': 'self-sign'}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "cert", { "ca": "self-sign", "dns": "www.example.com", "name": "mycert_many_self_signed" } ], "skip_reason": "Conditional result was False" } skipping: [sut] => (item=['cert', {'name': 'other-cert', 'dns': 'www.example.org', 'ca': 'self-sign'}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "cert", { "ca": "self-sign", "dns": "www.example.org", "name": "other-cert" } ], "skip_reason": "Conditional result was False" } skipping: [sut] => (item=['cert', {'name': 'another-cert', 'dns': 'www.example.net', 'ca': 'self-sign'}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "cert", { "ca": "self-sign", "dns": "www.example.net", "name": "another-cert" } ], "skip_reason": "Conditional result was False" } skipping: [sut] => (item=['key', {'name': 'mycert_many_self_signed', 'dns': 'www.example.com', 'ca': 'self-sign'}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "key", { "ca": "self-sign", "dns": "www.example.com", "name": "mycert_many_self_signed" } ], "skip_reason": "Conditional result was False" } skipping: [sut] => (item=['key', {'name': 'other-cert', 'dns': 'www.example.org', 'ca': 'self-sign'}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "key", { "ca": "self-sign", "dns": "www.example.org", "name": "other-cert" } ], "skip_reason": "Conditional result was False" } skipping: [sut] => (item=['key', {'name': 'another-cert', 'dns': 'www.example.net', 'ca': 'self-sign'}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "key", { "ca": "self-sign", "dns": "www.example.net", "name": "another-cert" } ], "skip_reason": "Conditional result was False" } skipping: [sut] => (item=['ca', {'name': 'mycert_many_self_signed', 'dns': 'www.example.com', 'ca': 'self-sign'}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "ca", { "ca": "self-sign", "dns": "www.example.com", "name": "mycert_many_self_signed" } ], "skip_reason": "Conditional result was False" } skipping: [sut] => (item=['ca', {'name': 'other-cert', 'dns': 'www.example.org', 'ca': 'self-sign'}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "ca", { "ca": "self-sign", "dns": "www.example.org", "name": "other-cert" } ], "skip_reason": "Conditional result was False" } skipping: [sut] => (item=['ca', {'name': 'another-cert', 'dns': 'www.example.net', 'ca': 'self-sign'}]) => { "ansible_loop_var": "item", "changed": false, "item": [ "ca", { "ca": "self-sign", "dns": "www.example.net", "name": "another-cert" } ], "skip_reason": "Conditional result was False" } TASK [linux-system-roles.certificate : Create return data] ********************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:168 Saturday 30 December 2023 13:36:43 +0000 (0:00:00.039) 0:00:17.161 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.certificate : Stop tracking certificates] ************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:184 Saturday 30 December 2023 13:36:43 +0000 (0:00:00.017) 0:00:17.179 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.certificate : Remove files] *************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:189 Saturday 30 December 2023 13:36:43 +0000 (0:00:00.018) 0:00:17.197 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } META: ran handlers META: ran handlers PLAY [Verify certificate] ****************************************************** TASK [Gathering Facts] ********************************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tests_many_self_signed.yml:18 Saturday 30 December 2023 13:36:43 +0000 (0:00:00.019) 0:00:17.217 ***** ok: [sut] META: ran handlers TASK [Verify each certificate] ************************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tests_many_self_signed.yml:50 Saturday 30 December 2023 13:36:44 +0000 (0:00:00.810) 0:00:18.028 ***** included: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml for sut included: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml for sut included: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml for sut TASK [Set virtualenv_path] ***************************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:2 Saturday 30 December 2023 13:36:44 +0000 (0:00:00.037) 0:00:18.065 ***** ok: [sut] => { "ansible_facts": { "__virtualenv_path": "/tmp/certificate-tests-venv" }, "changed": false } TASK [Check if system is ostree] *********************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:9 Saturday 30 December 2023 13:36:44 +0000 (0:00:00.008) 0:00:18.074 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Set flag to indicate system is ostree] *********************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:14 Saturday 30 December 2023 13:36:44 +0000 (0:00:00.017) 0:00:18.091 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Ensure python3 is installed] ********************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:18 Saturday 30 December 2023 13:36:44 +0000 (0:00:00.017) 0:00:18.108 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Ensure python3 is installed] ********************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:29 Saturday 30 December 2023 13:36:44 +0000 (0:00:00.016) 0:00:18.125 ***** ok: [sut] => { "changed": false, "rc": 0, "results": [] } MSG: Nothing to do lsrpackages: python3-cryptography python3-pyasn1 TASK [Retrieve certificate file stats] ***************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:40 Saturday 30 December 2023 13:36:46 +0000 (0:00:02.557) 0:00:20.682 ***** ok: [sut] => { "changed": false, "stat": { "atime": 1703943400.6684432, "attr_flags": "e", "attributes": [ "extents" ], "block_size": 4096, "blocks": 8, "charset": "us-ascii", "checksum": "3ef629a1f0ee0ffc58ede691fd268b61dfd10c82", "ctime": 1703943400.6654432, "dev": 51714, "device_type": 0, "executable": false, "exists": true, "gid": 0, "gr_name": "root", "inode": 203093, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mimetype": "text/plain", "mode": "0600", "mtime": 1703943400.6654432, "nlink": 1, "path": "/etc/pki/tls/certs/mycert_many_self_signed.crt", "pw_name": "root", "readable": true, "rgrp": false, "roth": false, "rusr": true, "size": 1294, "uid": 0, "version": "3739276847", "wgrp": false, "woth": false, "writeable": true, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } } TASK [Verify if certificate file exists] *************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:45 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.235) 0:00:20.917 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate file owner and group] ********************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:51 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.019) 0:00:20.937 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate permissions] ****************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:63 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.022) 0:00:20.960 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Retrieve key file stats] ************************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:69 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.019) 0:00:20.979 ***** ok: [sut] => { "changed": false, "stat": { "atime": 1703943400.6084454, "attr_flags": "e", "attributes": [ "extents" ], "block_size": 4096, "blocks": 8, "charset": "us-ascii", "checksum": "7f30e48c554294ec4768a827377462d28c5ccbe8", "ctime": 1703943400.6654432, "dev": 51714, "device_type": 0, "executable": false, "exists": true, "gid": 0, "gr_name": "root", "inode": 203092, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mimetype": "text/plain", "mode": "0600", "mtime": 1703943400.6654432, "nlink": 1, "path": "/etc/pki/tls/private/mycert_many_self_signed.key", "pw_name": "root", "readable": true, "rgrp": false, "roth": false, "rusr": true, "size": 1704, "uid": 0, "version": "4270447756", "wgrp": false, "woth": false, "writeable": true, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } } TASK [Verify if key file exists] *********************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:74 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.233) 0:00:21.213 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify key file owner and group] ***************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:80 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.019) 0:00:21.233 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Parse certificate] ******************************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:92 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.023) 0:00:21.256 ***** ok: [sut] => { "certificate": { "extensions": { "authorityKeyIdentifier": { "critical": false, "value": "B4:F9:CE:9E:36:79:A6:12:6C:A9:60:15:F7:A2:21:9A:08:AB:AB:FF" }, "basicConstraints": { "critical": true, "value": { "ca": false } }, "extendedKeyUsage": { "critical": false, "value": [ { "name": "id-kp-serverAuth", "oid": "1.3.6.1.5.5.7.3.1" }, { "name": "id-kp-clientAuth", "oid": "1.3.6.1.5.5.7.3.2" } ] }, "keyUsage": { "critical": false, "value": [ "digital_signature", "key_encipherment" ] }, "subjectAltName": { "critical": false, "value": [ { "name": "DNS", "value": "www.example.com" } ] }, "subjectKeyIdentifier": { "critical": false, "value": "CD:CF:58:62:C7:D1:08:A3:D3:0D:0F:7E:B8:D0:81:63:AA:09:1D:E7" } }, "key_size": 2048, "signature_algorithm": { "algorithm": "sha256WithRSAEncryption", "signature": "AE:B3:10:F4:2D:F1:EE:EC:5F:73:30:D7:04:05:19:EF:9B:02:17:9A:83:42:12:E4:92:DA:D2:32:9C:D6:0E:F4:17:4F:A5:05:8A:26:8D:AA:AE:1E:39:23:64:C1:EB:24:91:9B:57:1D:FF:F0:81:54:59:C4:7A:64:58:DF:17:89:19:0D:71:0A:E1:2C:5A:80:7D:56:FD:E2:06:BC:E0:44:94:C9:F8:ED:C3:AB:E1:F2:22:7A:1D:0A:BC:21:D0:1B:C2:05:3C:D5:E8:A8:CD:9F:0F:2E:C7:37:62:84:E8:5A:26:BB:0A:5C:BC:C7:A3:B9:36:67:4E:BB:01:63:39:BB:32:57:14:63:DA:F1:CE:E4:A6:39:C2:85:C2:5F:42:3B:74:5C:FF:B7:A8:0F:30:20:49:46:BE:BD:1F:F6:92:B3:88:C6:A0:A7:C6:89:4A:01:BC:05:DE:21:5D:72:4D:97:99:25:76:C0:45:BD:5F:E4:44:63:68:9D:16:39:A1:4A:8A:EB:0E:55:A9:8A:53:34:96:08:F0:AE:B0:A7:28:5D:EE:20:B7:BC:90:FD:A8:7D:4C:52:6C:5C:C2:7A:2B:BA:00:99:03:83:1C:B5:A4:01:E0:14:D5:B2:4A:0F:67:D7:E6:0E:3C:C1:93:C5:EA:B7:1F:C4:A5:FB:9B:CB:C9:AB" }, "subject": [ { "name": "commonName", "oid": "2.5.4.3", "value": "www.example.com" } ], "validity": { "not_valid_after": "20241230133640Z", "not_valid_before": "20231230133640Z" } }, "changed": false } TASK [Load certificate YAML to cert_issued variable] *************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:98 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.350) 0:00:21.607 ***** ok: [sut] => { "ansible_facts": { "cert_issued": { "extensions": { "authorityKeyIdentifier": { "critical": false, "value": "B4:F9:CE:9E:36:79:A6:12:6C:A9:60:15:F7:A2:21:9A:08:AB:AB:FF" }, "basicConstraints": { "critical": true, "value": { "ca": false } }, "extendedKeyUsage": { "critical": false, "value": [ { "name": "id-kp-serverAuth", "oid": "1.3.6.1.5.5.7.3.1" }, { "name": "id-kp-clientAuth", "oid": "1.3.6.1.5.5.7.3.2" } ] }, "keyUsage": { "critical": false, "value": [ "digital_signature", "key_encipherment" ] }, "subjectAltName": { "critical": false, "value": [ { "name": "DNS", "value": "www.example.com" } ] }, "subjectKeyIdentifier": { "critical": false, "value": "CD:CF:58:62:C7:D1:08:A3:D3:0D:0F:7E:B8:D0:81:63:AA:09:1D:E7" } }, "key_size": 2048, "signature_algorithm": { "algorithm": "sha256WithRSAEncryption", "signature": "AE:B3:10:F4:2D:F1:EE:EC:5F:73:30:D7:04:05:19:EF:9B:02:17:9A:83:42:12:E4:92:DA:D2:32:9C:D6:0E:F4:17:4F:A5:05:8A:26:8D:AA:AE:1E:39:23:64:C1:EB:24:91:9B:57:1D:FF:F0:81:54:59:C4:7A:64:58:DF:17:89:19:0D:71:0A:E1:2C:5A:80:7D:56:FD:E2:06:BC:E0:44:94:C9:F8:ED:C3:AB:E1:F2:22:7A:1D:0A:BC:21:D0:1B:C2:05:3C:D5:E8:A8:CD:9F:0F:2E:C7:37:62:84:E8:5A:26:BB:0A:5C:BC:C7:A3:B9:36:67:4E:BB:01:63:39:BB:32:57:14:63:DA:F1:CE:E4:A6:39:C2:85:C2:5F:42:3B:74:5C:FF:B7:A8:0F:30:20:49:46:BE:BD:1F:F6:92:B3:88:C6:A0:A7:C6:89:4A:01:BC:05:DE:21:5D:72:4D:97:99:25:76:C0:45:BD:5F:E4:44:63:68:9D:16:39:A1:4A:8A:EB:0E:55:A9:8A:53:34:96:08:F0:AE:B0:A7:28:5D:EE:20:B7:BC:90:FD:A8:7D:4C:52:6C:5C:C2:7A:2B:BA:00:99:03:83:1C:B5:A4:01:E0:14:D5:B2:4A:0F:67:D7:E6:0E:3C:C1:93:C5:EA:B7:1F:C4:A5:FB:9B:CB:C9:AB" }, "subject": [ { "name": "commonName", "oid": "2.5.4.3", "value": "www.example.com" } ], "validity": { "not_valid_after": "20241230133640Z", "not_valid_before": "20231230133640Z" } } }, "changed": false } TASK [Verify certificate subject] ********************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:102 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.020) 0:00:21.627 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate SAN] ************************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:111 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.019) 0:00:21.647 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify key size] ********************************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:120 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.019) 0:00:21.667 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate Key Usage] ******************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:127 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.020) 0:00:21.687 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate Extended Key Usage] *********************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:138 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.022) 0:00:21.710 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Retrieve auto-renew flag] ************************************************ task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:151 Saturday 30 December 2023 13:36:47 +0000 (0:00:00.021) 0:00:21.732 ***** ok: [sut] => { "changed": false, "cmd": "set -euo pipefail; getcert list -f /etc/pki/tls/certs/mycert_many_self_signed.crt | grep 'auto-renew' | sed 's/^\\s\\+auto-renew: //g'", "delta": "0:00:00.051324", "end": "2023-12-30 13:36:48.140008", "rc": 0, "start": "2023-12-30 13:36:48.088684" } STDOUT: yes TASK [Verify certificate auto-renew flag] ************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:160 Saturday 30 December 2023 13:36:48 +0000 (0:00:00.329) 0:00:22.061 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Set virtualenv_path] ***************************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:2 Saturday 30 December 2023 13:36:48 +0000 (0:00:00.021) 0:00:22.083 ***** ok: [sut] => { "ansible_facts": { "__virtualenv_path": "/tmp/certificate-tests-venv" }, "changed": false } TASK [Check if system is ostree] *********************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:9 Saturday 30 December 2023 13:36:48 +0000 (0:00:00.008) 0:00:22.091 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Set flag to indicate system is ostree] *********************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:14 Saturday 30 December 2023 13:36:48 +0000 (0:00:00.017) 0:00:22.109 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Ensure python3 is installed] ********************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:18 Saturday 30 December 2023 13:36:48 +0000 (0:00:00.016) 0:00:22.126 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Ensure python3 is installed] ********************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:29 Saturday 30 December 2023 13:36:48 +0000 (0:00:00.016) 0:00:22.142 ***** ok: [sut] => { "changed": false, "rc": 0, "results": [] } MSG: Nothing to do lsrpackages: python3-cryptography python3-pyasn1 TASK [Retrieve certificate file stats] ***************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:40 Saturday 30 December 2023 13:36:50 +0000 (0:00:02.535) 0:00:24.678 ***** ok: [sut] => { "changed": false, "stat": { "atime": 1703943401.7374053, "attr_flags": "e", "attributes": [ "extents" ], "block_size": 4096, "blocks": 8, "charset": "us-ascii", "checksum": "704a4d1cee05d978b81e99d8faf99b07af1c8685", "ctime": 1703943401.7334054, "dev": 51714, "device_type": 0, "executable": false, "exists": true, "gid": 0, "gr_name": "root", "inode": 203095, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mimetype": "text/plain", "mode": "0600", "mtime": 1703943401.7334054, "nlink": 1, "path": "/etc/pki/tls/certs/other-cert.crt", "pw_name": "root", "readable": true, "rgrp": false, "roth": false, "rusr": true, "size": 1294, "uid": 0, "version": "2283290402", "wgrp": false, "woth": false, "writeable": true, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } } TASK [Verify if certificate file exists] *************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:45 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.229) 0:00:24.907 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate file owner and group] ********************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:51 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.019) 0:00:24.927 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate permissions] ****************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:63 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.022) 0:00:24.950 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Retrieve key file stats] ************************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:69 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.019) 0:00:24.969 ***** ok: [sut] => { "changed": false, "stat": { "atime": 1703943401.6764073, "attr_flags": "e", "attributes": [ "extents" ], "block_size": 4096, "blocks": 8, "charset": "us-ascii", "checksum": "60dd9d867ad89c44c731a3dcd245553f3ea304fa", "ctime": 1703943401.7334054, "dev": 51714, "device_type": 0, "executable": false, "exists": true, "gid": 0, "gr_name": "root", "inode": 203094, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mimetype": "text/plain", "mode": "0600", "mtime": 1703943401.7334054, "nlink": 1, "path": "/etc/pki/tls/private/other-cert.key", "pw_name": "root", "readable": true, "rgrp": false, "roth": false, "rusr": true, "size": 1704, "uid": 0, "version": "507720995", "wgrp": false, "woth": false, "writeable": true, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } } TASK [Verify if key file exists] *********************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:74 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.223) 0:00:25.193 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify key file owner and group] ***************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:80 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.020) 0:00:25.214 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Parse certificate] ******************************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:92 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.022) 0:00:25.237 ***** ok: [sut] => { "certificate": { "extensions": { "authorityKeyIdentifier": { "critical": false, "value": "B4:F9:CE:9E:36:79:A6:12:6C:A9:60:15:F7:A2:21:9A:08:AB:AB:FF" }, "basicConstraints": { "critical": true, "value": { "ca": false } }, "extendedKeyUsage": { "critical": false, "value": [ { "name": "id-kp-serverAuth", "oid": "1.3.6.1.5.5.7.3.1" }, { "name": "id-kp-clientAuth", "oid": "1.3.6.1.5.5.7.3.2" } ] }, "keyUsage": { "critical": false, "value": [ "digital_signature", "key_encipherment" ] }, "subjectAltName": { "critical": false, "value": [ { "name": "DNS", "value": "www.example.org" } ] }, "subjectKeyIdentifier": { "critical": false, "value": "DB:20:79:36:F9:78:38:CE:95:7B:43:A1:22:61:82:82:10:7F:EF:F1" } }, "key_size": 2048, "signature_algorithm": { "algorithm": "sha256WithRSAEncryption", "signature": "9A:03:7D:07:DB:C5:66:5B:A6:7E:A4:97:EE:D8:8D:DB:9E:37:70:85:87:8D:CA:26:40:13:3B:1B:4D:0C:8C:01:B8:C1:49:C8:E2:7C:DC:1B:C0:56:E8:53:B3:48:3E:60:E1:F8:DD:43:17:B4:B3:BC:BE:21:00:2A:71:D9:1A:CB:DF:83:61:A0:C0:01:09:FD:2D:CC:27:2F:F3:4B:78:6D:63:CC:AF:70:82:65:35:2D:04:89:73:11:EC:04:9E:38:CC:34:DF:51:6D:48:8A:D0:C6:4C:C9:C7:5A:4A:29:21:B5:5A:1F:00:CD:00:0E:A3:4A:6B:2E:6D:4E:02:E2:D8:48:F4:6C:BB:99:0B:59:0E:B8:9A:B1:19:23:C0:AB:95:8C:2E:D1:F5:69:EB:3A:A2:BF:59:33:10:1E:D6:5F:C8:B7:F3:61:DA:4C:4B:65:25:13:B3:50:69:3D:EF:F4:85:A8:00:FB:32:17:BB:46:81:B7:DD:A5:27:15:05:DC:AC:AA:D9:8B:97:7D:F3:00:AE:FD:EF:32:11:6D:63:6E:81:90:7B:39:0C:6A:BB:5F:03:5B:84:F6:12:B2:1D:58:6D:05:1C:B7:AA:9B:2C:37:85:FB:69:FC:74:8B:43:D7:47:F8:02:6E:BD:01:0E:22:DE:97:3C:DB:AC:A2:29:AE:AF" }, "subject": [ { "name": "commonName", "oid": "2.5.4.3", "value": "www.example.org" } ], "validity": { "not_valid_after": "20241230133640Z", "not_valid_before": "20231230133641Z" } }, "changed": false } TASK [Load certificate YAML to cert_issued variable] *************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:98 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.278) 0:00:25.515 ***** ok: [sut] => { "ansible_facts": { "cert_issued": { "extensions": { "authorityKeyIdentifier": { "critical": false, "value": "B4:F9:CE:9E:36:79:A6:12:6C:A9:60:15:F7:A2:21:9A:08:AB:AB:FF" }, "basicConstraints": { "critical": true, "value": { "ca": false } }, "extendedKeyUsage": { "critical": false, "value": [ { "name": "id-kp-serverAuth", "oid": "1.3.6.1.5.5.7.3.1" }, { "name": "id-kp-clientAuth", "oid": "1.3.6.1.5.5.7.3.2" } ] }, "keyUsage": { "critical": false, "value": [ "digital_signature", "key_encipherment" ] }, "subjectAltName": { "critical": false, "value": [ { "name": "DNS", "value": "www.example.org" } ] }, "subjectKeyIdentifier": { "critical": false, "value": "DB:20:79:36:F9:78:38:CE:95:7B:43:A1:22:61:82:82:10:7F:EF:F1" } }, "key_size": 2048, "signature_algorithm": { "algorithm": "sha256WithRSAEncryption", "signature": "9A:03:7D:07:DB:C5:66:5B:A6:7E:A4:97:EE:D8:8D:DB:9E:37:70:85:87:8D:CA:26:40:13:3B:1B:4D:0C:8C:01:B8:C1:49:C8:E2:7C:DC:1B:C0:56:E8:53:B3:48:3E:60:E1:F8:DD:43:17:B4:B3:BC:BE:21:00:2A:71:D9:1A:CB:DF:83:61:A0:C0:01:09:FD:2D:CC:27:2F:F3:4B:78:6D:63:CC:AF:70:82:65:35:2D:04:89:73:11:EC:04:9E:38:CC:34:DF:51:6D:48:8A:D0:C6:4C:C9:C7:5A:4A:29:21:B5:5A:1F:00:CD:00:0E:A3:4A:6B:2E:6D:4E:02:E2:D8:48:F4:6C:BB:99:0B:59:0E:B8:9A:B1:19:23:C0:AB:95:8C:2E:D1:F5:69:EB:3A:A2:BF:59:33:10:1E:D6:5F:C8:B7:F3:61:DA:4C:4B:65:25:13:B3:50:69:3D:EF:F4:85:A8:00:FB:32:17:BB:46:81:B7:DD:A5:27:15:05:DC:AC:AA:D9:8B:97:7D:F3:00:AE:FD:EF:32:11:6D:63:6E:81:90:7B:39:0C:6A:BB:5F:03:5B:84:F6:12:B2:1D:58:6D:05:1C:B7:AA:9B:2C:37:85:FB:69:FC:74:8B:43:D7:47:F8:02:6E:BD:01:0E:22:DE:97:3C:DB:AC:A2:29:AE:AF" }, "subject": [ { "name": "commonName", "oid": "2.5.4.3", "value": "www.example.org" } ], "validity": { "not_valid_after": "20241230133640Z", "not_valid_before": "20231230133641Z" } } }, "changed": false } TASK [Verify certificate subject] ********************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:102 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.020) 0:00:25.535 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate SAN] ************************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:111 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.020) 0:00:25.555 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify key size] ********************************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:120 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.020) 0:00:25.576 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate Key Usage] ******************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:127 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.019) 0:00:25.596 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate Extended Key Usage] *********************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:138 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.023) 0:00:25.619 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Retrieve auto-renew flag] ************************************************ task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:151 Saturday 30 December 2023 13:36:51 +0000 (0:00:00.023) 0:00:25.643 ***** ok: [sut] => { "changed": false, "cmd": "set -euo pipefail; getcert list -f /etc/pki/tls/certs/other-cert.crt | grep 'auto-renew' | sed 's/^\\s\\+auto-renew: //g'", "delta": "0:00:00.051727", "end": "2023-12-30 13:36:51.986693", "rc": 0, "start": "2023-12-30 13:36:51.934966" } STDOUT: yes TASK [Verify certificate auto-renew flag] ************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:160 Saturday 30 December 2023 13:36:52 +0000 (0:00:00.264) 0:00:25.908 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Set virtualenv_path] ***************************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:2 Saturday 30 December 2023 13:36:52 +0000 (0:00:00.022) 0:00:25.930 ***** ok: [sut] => { "ansible_facts": { "__virtualenv_path": "/tmp/certificate-tests-venv" }, "changed": false } TASK [Check if system is ostree] *********************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:9 Saturday 30 December 2023 13:36:52 +0000 (0:00:00.008) 0:00:25.938 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Set flag to indicate system is ostree] *********************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:14 Saturday 30 December 2023 13:36:52 +0000 (0:00:00.017) 0:00:25.955 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Ensure python3 is installed] ********************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:18 Saturday 30 December 2023 13:36:52 +0000 (0:00:00.017) 0:00:25.973 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Ensure python3 is installed] ********************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:29 Saturday 30 December 2023 13:36:52 +0000 (0:00:00.016) 0:00:25.989 ***** ok: [sut] => { "changed": false, "rc": 0, "results": [] } MSG: Nothing to do lsrpackages: python3-cryptography python3-pyasn1 TASK [Retrieve certificate file stats] ***************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:40 Saturday 30 December 2023 13:36:54 +0000 (0:00:02.510) 0:00:28.500 ***** ok: [sut] => { "changed": false, "stat": { "atime": 1703943403.0763576, "attr_flags": "e", "attributes": [ "extents" ], "block_size": 4096, "blocks": 8, "charset": "us-ascii", "checksum": "1ea764ff726e96fb67b2f6b957fa21d2d839699e", "ctime": 1703943403.0733578, "dev": 51714, "device_type": 0, "executable": false, "exists": true, "gid": 0, "gr_name": "root", "inode": 203097, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mimetype": "text/plain", "mode": "0600", "mtime": 1703943403.0733578, "nlink": 1, "path": "/etc/pki/tls/certs/another-cert.crt", "pw_name": "root", "readable": true, "rgrp": false, "roth": false, "rusr": true, "size": 1294, "uid": 0, "version": "2489658165", "wgrp": false, "woth": false, "writeable": true, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } } TASK [Verify if certificate file exists] *************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:45 Saturday 30 December 2023 13:36:54 +0000 (0:00:00.225) 0:00:28.725 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate file owner and group] ********************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:51 Saturday 30 December 2023 13:36:54 +0000 (0:00:00.035) 0:00:28.760 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate permissions] ****************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:63 Saturday 30 December 2023 13:36:54 +0000 (0:00:00.041) 0:00:28.802 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Retrieve key file stats] ************************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:69 Saturday 30 December 2023 13:36:54 +0000 (0:00:00.021) 0:00:28.823 ***** ok: [sut] => { "changed": false, "stat": { "atime": 1703943403.0163598, "attr_flags": "e", "attributes": [ "extents" ], "block_size": 4096, "blocks": 8, "charset": "us-ascii", "checksum": "aad457dea3d2cf8f5ec33855bfcfcaff06103445", "ctime": 1703943403.0733578, "dev": 51714, "device_type": 0, "executable": false, "exists": true, "gid": 0, "gr_name": "root", "inode": 203096, "isblk": false, "ischr": false, "isdir": false, "isfifo": false, "isgid": false, "islnk": false, "isreg": true, "issock": false, "isuid": false, "mimetype": "text/plain", "mode": "0600", "mtime": 1703943403.0733578, "nlink": 1, "path": "/etc/pki/tls/private/another-cert.key", "pw_name": "root", "readable": true, "rgrp": false, "roth": false, "rusr": true, "size": 1704, "uid": 0, "version": "497416787", "wgrp": false, "woth": false, "writeable": true, "wusr": true, "xgrp": false, "xoth": false, "xusr": false } } TASK [Verify if key file exists] *********************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:74 Saturday 30 December 2023 13:36:55 +0000 (0:00:00.233) 0:00:29.056 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify key file owner and group] ***************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:80 Saturday 30 December 2023 13:36:55 +0000 (0:00:00.019) 0:00:29.076 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Parse certificate] ******************************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:92 Saturday 30 December 2023 13:36:55 +0000 (0:00:00.021) 0:00:29.097 ***** ok: [sut] => { "certificate": { "extensions": { "authorityKeyIdentifier": { "critical": false, "value": "B4:F9:CE:9E:36:79:A6:12:6C:A9:60:15:F7:A2:21:9A:08:AB:AB:FF" }, "basicConstraints": { "critical": true, "value": { "ca": false } }, "extendedKeyUsage": { "critical": false, "value": [ { "name": "id-kp-serverAuth", "oid": "1.3.6.1.5.5.7.3.1" }, { "name": "id-kp-clientAuth", "oid": "1.3.6.1.5.5.7.3.2" } ] }, "keyUsage": { "critical": false, "value": [ "digital_signature", "key_encipherment" ] }, "subjectAltName": { "critical": false, "value": [ { "name": "DNS", "value": "www.example.net" } ] }, "subjectKeyIdentifier": { "critical": false, "value": "86:97:3D:FF:0C:94:B2:0E:75:FE:19:56:F9:4F:EB:38:00:69:1A:F6" } }, "key_size": 2048, "signature_algorithm": { "algorithm": "sha256WithRSAEncryption", "signature": "AB:12:29:48:B7:64:7F:B3:D5:D1:03:9B:D8:78:77:68:B9:03:92:29:3A:6B:43:85:63:67:BE:8A:5D:2F:B4:E0:98:63:70:30:9A:EB:52:A0:4D:5D:25:11:48:8E:D2:67:57:2A:32:14:19:9A:86:6D:F4:74:3F:90:F4:B6:D6:10:AD:CD:DB:82:2F:9D:A0:86:FC:ED:CF:1E:2C:84:DC:0A:FF:86:B3:60:07:21:C7:C4:DF:1A:8C:7C:B8:41:F7:53:55:3B:1E:94:63:27:A8:7B:F0:BC:83:5A:9F:96:F3:DB:C9:D3:79:FE:9D:2D:9B:A1:FD:75:32:00:5D:BE:C6:B9:92:DA:A7:DB:6B:60:20:17:62:B8:31:C3:38:40:FA:7E:14:F5:C4:48:90:D6:F0:85:45:CA:2B:A5:33:39:D4:1E:66:F0:BE:70:A9:FF:9B:E1:87:1E:59:E2:24:1A:0B:D1:E0:B8:45:9E:03:2B:17:BE:E2:CE:51:62:6E:87:FE:95:2C:6B:FC:9D:94:88:6B:86:5D:E7:A8:1F:17:DB:E4:47:BC:54:FD:27:C7:59:54:3A:65:77:EE:E7:3B:C4:B9:F5:67:B3:1D:41:DE:46:76:3E:3A:46:69:4A:1B:D4:7B:AD:57:CD:0A:3A:E3:94:A7:F8:C6:F1:75:97:6B:E5:06:C5" }, "subject": [ { "name": "commonName", "oid": "2.5.4.3", "value": "www.example.net" } ], "validity": { "not_valid_after": "20241230133640Z", "not_valid_before": "20231230133643Z" } }, "changed": false } TASK [Load certificate YAML to cert_issued variable] *************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:98 Saturday 30 December 2023 13:36:55 +0000 (0:00:00.282) 0:00:29.380 ***** ok: [sut] => { "ansible_facts": { "cert_issued": { "extensions": { "authorityKeyIdentifier": { "critical": false, "value": "B4:F9:CE:9E:36:79:A6:12:6C:A9:60:15:F7:A2:21:9A:08:AB:AB:FF" }, "basicConstraints": { "critical": true, "value": { "ca": false } }, "extendedKeyUsage": { "critical": false, "value": [ { "name": "id-kp-serverAuth", "oid": "1.3.6.1.5.5.7.3.1" }, { "name": "id-kp-clientAuth", "oid": "1.3.6.1.5.5.7.3.2" } ] }, "keyUsage": { "critical": false, "value": [ "digital_signature", "key_encipherment" ] }, "subjectAltName": { "critical": false, "value": [ { "name": "DNS", "value": "www.example.net" } ] }, "subjectKeyIdentifier": { "critical": false, "value": "86:97:3D:FF:0C:94:B2:0E:75:FE:19:56:F9:4F:EB:38:00:69:1A:F6" } }, "key_size": 2048, "signature_algorithm": { "algorithm": "sha256WithRSAEncryption", "signature": "AB:12:29:48:B7:64:7F:B3:D5:D1:03:9B:D8:78:77:68:B9:03:92:29:3A:6B:43:85:63:67:BE:8A:5D:2F:B4:E0:98:63:70:30:9A:EB:52:A0:4D:5D:25:11:48:8E:D2:67:57:2A:32:14:19:9A:86:6D:F4:74:3F:90:F4:B6:D6:10:AD:CD:DB:82:2F:9D:A0:86:FC:ED:CF:1E:2C:84:DC:0A:FF:86:B3:60:07:21:C7:C4:DF:1A:8C:7C:B8:41:F7:53:55:3B:1E:94:63:27:A8:7B:F0:BC:83:5A:9F:96:F3:DB:C9:D3:79:FE:9D:2D:9B:A1:FD:75:32:00:5D:BE:C6:B9:92:DA:A7:DB:6B:60:20:17:62:B8:31:C3:38:40:FA:7E:14:F5:C4:48:90:D6:F0:85:45:CA:2B:A5:33:39:D4:1E:66:F0:BE:70:A9:FF:9B:E1:87:1E:59:E2:24:1A:0B:D1:E0:B8:45:9E:03:2B:17:BE:E2:CE:51:62:6E:87:FE:95:2C:6B:FC:9D:94:88:6B:86:5D:E7:A8:1F:17:DB:E4:47:BC:54:FD:27:C7:59:54:3A:65:77:EE:E7:3B:C4:B9:F5:67:B3:1D:41:DE:46:76:3E:3A:46:69:4A:1B:D4:7B:AD:57:CD:0A:3A:E3:94:A7:F8:C6:F1:75:97:6B:E5:06:C5" }, "subject": [ { "name": "commonName", "oid": "2.5.4.3", "value": "www.example.net" } ], "validity": { "not_valid_after": "20241230133640Z", "not_valid_before": "20231230133643Z" } } }, "changed": false } TASK [Verify certificate subject] ********************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:102 Saturday 30 December 2023 13:36:55 +0000 (0:00:00.019) 0:00:29.400 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate SAN] ************************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:111 Saturday 30 December 2023 13:36:55 +0000 (0:00:00.020) 0:00:29.420 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify key size] ********************************************************* task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:120 Saturday 30 December 2023 13:36:55 +0000 (0:00:00.019) 0:00:29.440 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate Key Usage] ******************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:127 Saturday 30 December 2023 13:36:55 +0000 (0:00:00.019) 0:00:29.459 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Verify certificate Extended Key Usage] *********************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:138 Saturday 30 December 2023 13:36:55 +0000 (0:00:00.022) 0:00:29.482 ***** ok: [sut] => { "changed": false } MSG: All assertions passed TASK [Retrieve auto-renew flag] ************************************************ task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:151 Saturday 30 December 2023 13:36:55 +0000 (0:00:00.022) 0:00:29.504 ***** ok: [sut] => { "changed": false, "cmd": "set -euo pipefail; getcert list -f /etc/pki/tls/certs/another-cert.crt | grep 'auto-renew' | sed 's/^\\s\\+auto-renew: //g'", "delta": "0:00:00.051689", "end": "2023-12-30 13:36:55.849411", "rc": 0, "start": "2023-12-30 13:36:55.797722" } STDOUT: yes TASK [Verify certificate auto-renew flag] ************************************** task path: /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:160 Saturday 30 December 2023 13:36:55 +0000 (0:00:00.265) 0:00:29.770 ***** ok: [sut] => { "changed": false } MSG: All assertions passed META: ran handlers META: ran handlers PLAY RECAP ********************************************************************* sut : ok=68 changed=6 unreachable=0 failed=0 skipped=15 rescued=0 ignored=0 Saturday 30 December 2023 13:36:55 +0000 (0:00:00.018) 0:00:29.789 ***** =============================================================================== linux-system-roles.certificate : Ensure certificate role dependencies are installed --- 5.06s /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:5 linux-system-roles.certificate : Ensure provider packages are installed --- 4.88s /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:24 linux-system-roles.certificate : Ensure certificate requests ------------ 3.44s /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:104 Ensure python3 is installed --------------------------------------------- 2.56s /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:29 Ensure python3 is installed --------------------------------------------- 2.54s /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:29 Ensure python3 is installed --------------------------------------------- 2.51s /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:29 Gathering Facts --------------------------------------------------------- 1.52s /WORKDIR/git-weekly-cimwrvbmf8/tests/tests_many_self_signed.yml:2 ------------- linux-system-roles.certificate : Ensure provider service is running ----- 1.24s /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:92 Gathering Facts --------------------------------------------------------- 0.81s /WORKDIR/git-weekly-cimwrvbmf8/tests/tests_many_self_signed.yml:18 ------------ linux-system-roles.certificate : Ensure pre-scripts hooks directory exists --- 0.38s /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:37 Parse certificate ------------------------------------------------------- 0.35s /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:92 Retrieve auto-renew flag ------------------------------------------------ 0.33s /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:151 Parse certificate ------------------------------------------------------- 0.28s /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:92 Parse certificate ------------------------------------------------------- 0.28s /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:92 linux-system-roles.certificate : Check if system is ostree -------------- 0.28s /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/set_vars.yml:11 Retrieve auto-renew flag ------------------------------------------------ 0.27s /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:151 Retrieve auto-renew flag ------------------------------------------------ 0.26s /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:151 Retrieve certificate file stats ----------------------------------------- 0.24s /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:40 linux-system-roles.certificate : Ensure post-scripts hooks directory exists --- 0.23s /WORKDIR/git-weekly-cimwrvbmf8/tests/roles/linux-system-roles.certificate/tasks/main.yml:63 Retrieve key file stats ------------------------------------------------- 0.23s /WORKDIR/git-weekly-cimwrvbmf8/tests/tasks/assert_certificate_parameters.yml:69 ---^---^---^---^---^--- # STDERR: ---v---v---v---v---v--- ---^---^---^---^---^---