ci: migrate to woodpecker
This commit is contained in:
parent
7a53ca1044
commit
c9d89cf541
161
.drone.jsonnet
161
.drone.jsonnet
@ -1,161 +0,0 @@
|
||||
local PipelineLinting = {
|
||||
kind: 'pipeline',
|
||||
name: 'linting',
|
||||
platform: {
|
||||
os: 'linux',
|
||||
arch: 'amd64',
|
||||
},
|
||||
steps: [
|
||||
{
|
||||
name: 'ansible-later',
|
||||
image: 'thegeeklab/ansible-later',
|
||||
commands: [
|
||||
'ansible-later',
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'python-format',
|
||||
image: 'python:3.11',
|
||||
environment: {
|
||||
PY_COLORS: 1,
|
||||
},
|
||||
commands: [
|
||||
'pip install -qq yapf',
|
||||
'[ -z "$(find . -type f -name *.py)" ] || (yapf -rd ./)',
|
||||
],
|
||||
},
|
||||
{
|
||||
name: 'python-flake8',
|
||||
image: 'python:3.11',
|
||||
environment: {
|
||||
PY_COLORS: 1,
|
||||
},
|
||||
commands: [
|
||||
'pip install -qq flake8',
|
||||
'flake8',
|
||||
],
|
||||
},
|
||||
],
|
||||
trigger: {
|
||||
ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'],
|
||||
},
|
||||
};
|
||||
|
||||
local PipelineDeployment(scenario='centos7') = {
|
||||
kind: 'pipeline',
|
||||
name: 'testing-' + scenario,
|
||||
platform: {
|
||||
os: 'linux',
|
||||
arch: 'amd64',
|
||||
},
|
||||
concurrency: {
|
||||
limit: 1,
|
||||
},
|
||||
workspace: {
|
||||
base: '/drone/src',
|
||||
path: '${DRONE_REPO_NAME}',
|
||||
},
|
||||
steps: [
|
||||
{
|
||||
name: 'ansible-molecule',
|
||||
image: 'thegeeklab/molecule:4',
|
||||
environment: {
|
||||
HCLOUD_TOKEN: { from_secret: 'hcloud_token' },
|
||||
},
|
||||
commands: [
|
||||
'molecule test -s ' + scenario,
|
||||
],
|
||||
},
|
||||
],
|
||||
depends_on: [
|
||||
'linting',
|
||||
],
|
||||
trigger: {
|
||||
ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'],
|
||||
},
|
||||
};
|
||||
|
||||
local PipelineDocumentation = {
|
||||
kind: 'pipeline',
|
||||
name: 'documentation',
|
||||
platform: {
|
||||
os: 'linux',
|
||||
arch: 'amd64',
|
||||
},
|
||||
steps: [
|
||||
{
|
||||
name: 'generate',
|
||||
image: 'thegeeklab/ansible-doctor',
|
||||
environment: {
|
||||
ANSIBLE_DOCTOR_LOG_LEVEL: 'INFO',
|
||||
ANSIBLE_DOCTOR_FORCE_OVERWRITE: true,
|
||||
ANSIBLE_DOCTOR_EXCLUDE_FILES: 'molecule/',
|
||||
ANSIBLE_DOCTOR_TEMPLATE: 'hugo-book',
|
||||
ANSIBLE_DOCTOR_ROLE_NAME: '${DRONE_REPO_NAME#*.}',
|
||||
ANSIBLE_DOCTOR_OUTPUT_DIR: '_docs/',
|
||||
},
|
||||
},
|
||||
{
|
||||
name: 'publish',
|
||||
image: 'plugins/gh-pages',
|
||||
settings: {
|
||||
remote_url: 'https://gitea.rknet.org/ansible/${DRONE_REPO_NAME}',
|
||||
netrc_machine: 'gitea.rknet.org',
|
||||
username: { from_secret: 'gitea_username' },
|
||||
password: { from_secret: 'gitea_token' },
|
||||
pages_directory: '_docs/',
|
||||
target_branch: 'docs',
|
||||
},
|
||||
when: {
|
||||
ref: ['refs/heads/main'],
|
||||
},
|
||||
},
|
||||
],
|
||||
trigger: {
|
||||
ref: ['refs/heads/main', 'refs/tags/**', 'refs/pull/**'],
|
||||
},
|
||||
depends_on: [
|
||||
'testing-centos7',
|
||||
'testing-rocky8',
|
||||
],
|
||||
};
|
||||
|
||||
local PipelineNotification = {
|
||||
kind: 'pipeline',
|
||||
name: 'notification',
|
||||
platform: {
|
||||
os: 'linux',
|
||||
arch: 'amd64',
|
||||
},
|
||||
clone: {
|
||||
disable: true,
|
||||
},
|
||||
steps: [
|
||||
{
|
||||
name: 'matrix',
|
||||
image: 'thegeeklab/drone-matrix',
|
||||
settings: {
|
||||
homeserver: { from_secret: 'matrix_homeserver' },
|
||||
roomid: { from_secret: 'matrix_roomid' },
|
||||
template: 'Status: **{{ .Build.Status }}**<br/> Build: [{{ .Repo.Owner }}/{{ .Repo.Name }}]({{ .Build.Link }}){{ if .Build.Branch }} ({{ .Build.Branch }}){{ end }} by {{ .Commit.Author }}<br/> Message: {{ .Commit.Message.Title }}',
|
||||
username: { from_secret: 'matrix_username' },
|
||||
password: { from_secret: 'matrix_password' },
|
||||
},
|
||||
},
|
||||
],
|
||||
depends_on: [
|
||||
'documentation',
|
||||
],
|
||||
trigger: {
|
||||
status: ['success', 'failure'],
|
||||
ref: ['refs/heads/main', 'refs/tags/**'],
|
||||
},
|
||||
};
|
||||
|
||||
[
|
||||
PipelineLinting,
|
||||
PipelineDeployment(scenario='centos7'),
|
||||
PipelineDeployment(scenario='rocky8'),
|
||||
PipelineDocumentation,
|
||||
PipelineNotification,
|
||||
]
|
187
.drone.yml
187
.drone.yml
@ -1,187 +0,0 @@
|
||||
---
|
||||
kind: pipeline
|
||||
name: linting
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
|
||||
steps:
|
||||
- name: ansible-later
|
||||
image: thegeeklab/ansible-later
|
||||
commands:
|
||||
- ansible-later
|
||||
|
||||
- name: python-format
|
||||
image: python:3.11
|
||||
commands:
|
||||
- pip install -qq yapf
|
||||
- "[ -z \"$(find . -type f -name *.py)\" ] || (yapf -rd ./)"
|
||||
environment:
|
||||
PY_COLORS: 1
|
||||
|
||||
- name: python-flake8
|
||||
image: python:3.11
|
||||
commands:
|
||||
- pip install -qq flake8
|
||||
- flake8
|
||||
environment:
|
||||
PY_COLORS: 1
|
||||
|
||||
trigger:
|
||||
ref:
|
||||
- refs/heads/main
|
||||
- refs/tags/**
|
||||
- refs/pull/**
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: testing-centos7
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
|
||||
concurrency:
|
||||
limit: 1
|
||||
|
||||
workspace:
|
||||
base: /drone/src
|
||||
path: ${DRONE_REPO_NAME}
|
||||
|
||||
steps:
|
||||
- name: ansible-molecule
|
||||
image: thegeeklab/molecule:4
|
||||
commands:
|
||||
- molecule test -s centos7
|
||||
environment:
|
||||
HCLOUD_TOKEN:
|
||||
from_secret: hcloud_token
|
||||
|
||||
trigger:
|
||||
ref:
|
||||
- refs/heads/main
|
||||
- refs/tags/**
|
||||
- refs/pull/**
|
||||
|
||||
depends_on:
|
||||
- linting
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: testing-rocky8
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
|
||||
concurrency:
|
||||
limit: 1
|
||||
|
||||
workspace:
|
||||
base: /drone/src
|
||||
path: ${DRONE_REPO_NAME}
|
||||
|
||||
steps:
|
||||
- name: ansible-molecule
|
||||
image: thegeeklab/molecule:4
|
||||
commands:
|
||||
- molecule test -s rocky8
|
||||
environment:
|
||||
HCLOUD_TOKEN:
|
||||
from_secret: hcloud_token
|
||||
|
||||
trigger:
|
||||
ref:
|
||||
- refs/heads/main
|
||||
- refs/tags/**
|
||||
- refs/pull/**
|
||||
|
||||
depends_on:
|
||||
- linting
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: documentation
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
|
||||
steps:
|
||||
- name: generate
|
||||
image: thegeeklab/ansible-doctor
|
||||
environment:
|
||||
ANSIBLE_DOCTOR_EXCLUDE_FILES: molecule/
|
||||
ANSIBLE_DOCTOR_FORCE_OVERWRITE: true
|
||||
ANSIBLE_DOCTOR_LOG_LEVEL: INFO
|
||||
ANSIBLE_DOCTOR_OUTPUT_DIR: _docs/
|
||||
ANSIBLE_DOCTOR_ROLE_NAME: ${DRONE_REPO_NAME#*.}
|
||||
ANSIBLE_DOCTOR_TEMPLATE: hugo-book
|
||||
|
||||
- name: publish
|
||||
image: plugins/gh-pages
|
||||
settings:
|
||||
netrc_machine: gitea.rknet.org
|
||||
pages_directory: _docs/
|
||||
password:
|
||||
from_secret: gitea_token
|
||||
remote_url: https://gitea.rknet.org/ansible/${DRONE_REPO_NAME}
|
||||
target_branch: docs
|
||||
username:
|
||||
from_secret: gitea_username
|
||||
when:
|
||||
ref:
|
||||
- refs/heads/main
|
||||
|
||||
trigger:
|
||||
ref:
|
||||
- refs/heads/main
|
||||
- refs/tags/**
|
||||
- refs/pull/**
|
||||
|
||||
depends_on:
|
||||
- testing-centos7
|
||||
- testing-rocky8
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: notification
|
||||
|
||||
platform:
|
||||
os: linux
|
||||
arch: amd64
|
||||
|
||||
clone:
|
||||
disable: true
|
||||
|
||||
steps:
|
||||
- name: matrix
|
||||
image: thegeeklab/drone-matrix
|
||||
settings:
|
||||
homeserver:
|
||||
from_secret: matrix_homeserver
|
||||
password:
|
||||
from_secret: matrix_password
|
||||
roomid:
|
||||
from_secret: matrix_roomid
|
||||
template: "Status: **{{ .Build.Status }}**<br/> Build: [{{ .Repo.Owner }}/{{ .Repo.Name }}]({{ .Build.Link }}){{ if .Build.Branch }} ({{ .Build.Branch }}){{ end }} by {{ .Commit.Author }}<br/> Message: {{ .Commit.Message.Title }}"
|
||||
username:
|
||||
from_secret: matrix_username
|
||||
|
||||
trigger:
|
||||
ref:
|
||||
- refs/heads/main
|
||||
- refs/tags/**
|
||||
status:
|
||||
- success
|
||||
- failure
|
||||
|
||||
depends_on:
|
||||
- documentation
|
||||
|
||||
---
|
||||
kind: signature
|
||||
hmac: 32eeea3ed510da5eac9b739b1cf3b09c99cf7222cb1a51a621359c2676da0532
|
||||
|
||||
...
|
2
.gitignore
vendored
2
.gitignore
vendored
@ -9,5 +9,3 @@ __pycache__/
|
||||
*.py[cod]
|
||||
*$py.class
|
||||
|
||||
# ---> Docs
|
||||
/_docs
|
||||
|
@ -10,10 +10,6 @@ ansible:
|
||||
|
||||
rules:
|
||||
exclude_files:
|
||||
- molecule/
|
||||
- "LICENSE*"
|
||||
- "**/*.md"
|
||||
- "**/*.ini"
|
||||
|
||||
exclude_filter:
|
||||
- LINT0009
|
||||
|
7
.markdownlint.yml
Normal file
7
.markdownlint.yml
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
default: True
|
||||
MD013: False
|
||||
MD041: False
|
||||
MD024: False
|
||||
MD004:
|
||||
style: dash
|
1
.prettierignore
Normal file
1
.prettierignore
Normal file
@ -0,0 +1 @@
|
||||
LICENSE
|
47
.woodpecker/docs.yaml
Normal file
47
.woodpecker/docs.yaml
Normal file
@ -0,0 +1,47 @@
|
||||
---
|
||||
when:
|
||||
- event: [pull_request]
|
||||
- event: [push, manual]
|
||||
branch:
|
||||
- ${CI_REPO_DEFAULT_BRANCH}
|
||||
|
||||
steps:
|
||||
- name: generate
|
||||
image: quay.io/thegeeklab/ansible-doctor
|
||||
environment:
|
||||
ANSIBLE_DOCTOR_EXCLUDE_FILES: molecule/
|
||||
ANSIBLE_DOCTOR_FORCE_OVERWRITE: "true"
|
||||
ANSIBLE_DOCTOR_LOG_LEVEL: INFO
|
||||
ANSIBLE_DOCTOR_ROLE_NAME: ${CI_REPO_NAME}
|
||||
ANSIBLE_DOCTOR_TEMPLATE: readme
|
||||
|
||||
- name: format
|
||||
image: quay.io/thegeeklab/alpine-tools
|
||||
commands:
|
||||
- prettier -w README.md
|
||||
|
||||
- name: diff
|
||||
image: quay.io/thegeeklab/alpine-tools
|
||||
commands:
|
||||
- git diff --color=always README.md
|
||||
|
||||
- name: publish
|
||||
image: quay.io/thegeeklab/wp-git-action
|
||||
settings:
|
||||
action:
|
||||
- commit
|
||||
- push
|
||||
author_email: ci-bot@rknet.org
|
||||
author_name: ci-bot
|
||||
branch: main
|
||||
message: "[skip ci] automated docs update"
|
||||
netrc_machine: gitea.rknet.org
|
||||
netrc_password:
|
||||
from_secret: gitea_token
|
||||
when:
|
||||
- event: [push, manual]
|
||||
branch:
|
||||
- ${CI_REPO_DEFAULT_BRANCH}
|
||||
|
||||
depends_on:
|
||||
- test
|
30
.woodpecker/lint.yaml
Normal file
30
.woodpecker/lint.yaml
Normal file
@ -0,0 +1,30 @@
|
||||
---
|
||||
when:
|
||||
- event: [pull_request, tag]
|
||||
- event: [push, manual]
|
||||
branch:
|
||||
- ${CI_REPO_DEFAULT_BRANCH}
|
||||
|
||||
steps:
|
||||
- name: ansible-later
|
||||
image: quay.io/thegeeklab/ansible-later:4
|
||||
commands:
|
||||
- ansible-later
|
||||
environment:
|
||||
FORCE_COLOR: "1"
|
||||
|
||||
- name: python-format
|
||||
image: docker.io/python:3.12
|
||||
commands:
|
||||
- pip install -qq ruff
|
||||
- ruff format --check --diff .
|
||||
environment:
|
||||
PY_COLORS: "1"
|
||||
|
||||
- name: python-lint
|
||||
image: docker.io/python:3.12
|
||||
commands:
|
||||
- pip install -qq ruff
|
||||
- ruff .
|
||||
environment:
|
||||
PY_COLORS: "1"
|
26
.woodpecker/notify.yml
Normal file
26
.woodpecker/notify.yml
Normal file
@ -0,0 +1,26 @@
|
||||
---
|
||||
when:
|
||||
- event: [tag]
|
||||
- event: [push, manual]
|
||||
branch:
|
||||
- ${CI_REPO_DEFAULT_BRANCH}
|
||||
|
||||
runs_on: [success, failure]
|
||||
|
||||
steps:
|
||||
- name: matrix
|
||||
image: quay.io/thegeeklab/wp-matrix
|
||||
settings:
|
||||
homeserver:
|
||||
from_secret: matrix_homeserver
|
||||
password:
|
||||
from_secret: matrix_password
|
||||
roomid:
|
||||
from_secret: matrix_roomid
|
||||
username:
|
||||
from_secret: matrix_username
|
||||
when:
|
||||
- status: [success, failure]
|
||||
|
||||
depends_on:
|
||||
- docs
|
25
.woodpecker/test.yaml
Normal file
25
.woodpecker/test.yaml
Normal file
@ -0,0 +1,25 @@
|
||||
---
|
||||
when:
|
||||
- event: [pull_request, tag]
|
||||
- event: [push, manual]
|
||||
branch:
|
||||
- ${CI_REPO_DEFAULT_BRANCH}
|
||||
|
||||
variables:
|
||||
- &molecule_base
|
||||
image: quay.io/thegeeklab/molecule:6
|
||||
group: molecule
|
||||
secrets:
|
||||
- source: molecule_hcloud_token
|
||||
target: HCLOUD_TOKEN
|
||||
environment:
|
||||
PY_COLORS: "1"
|
||||
|
||||
steps:
|
||||
- name: molecule-default
|
||||
<<: *molecule_base
|
||||
commands:
|
||||
- molecule test -s default
|
||||
|
||||
depends_on:
|
||||
- lint
|
11
README.md
11
README.md
@ -1,12 +1 @@
|
||||
# xoxys.pam
|
||||
|
||||
[![Build Status](https://img.shields.io/drone/build/ansible/xoxys.pam?logo=drone&server=https%3A%2F%2Fdrone.rknet.org)](https://drone.rknet.org/ansible/xoxys.pam)
|
||||
[![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
|
||||
|
||||
Configure pam stack.
|
||||
|
||||
You can find the full documentation at [https://galaxy.geekdocs.de](https://galaxy.geekdocs.de/roles/system/pam/).
|
||||
|
||||
## License
|
||||
|
||||
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
||||
|
@ -1,4 +1,3 @@
|
||||
# Standards: 0.2
|
||||
---
|
||||
galaxy_info:
|
||||
# @meta author:value: [Robert Kaussow](https://gitea.rknet.org/xoxys)
|
||||
@ -6,19 +5,18 @@ galaxy_info:
|
||||
namespace: xoxys
|
||||
role_name: pam
|
||||
# @meta description: >
|
||||
# [![Source Code](https://img.shields.io/badge/gitea-source%20code-blue?logo=gitea&logoColor=white)](https://gitea.rknet.org/ansible/xoxys.pam)
|
||||
# [![Build Status](https://img.shields.io/drone/build/ansible/xoxys.pam?logo=drone&server=https%3A%2F%2Fdrone.rknet.org)](https://drone.rknet.org/ansible/xoxys.pam)
|
||||
# [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](https://gitea.rknet.org/ansible/xoxys.pam/src/branch/main/LICENSE)
|
||||
# [![Build Status](https://ci.rknet.org/api/badges/ansible/xoxys.pam/status.svg)](https://ci.rknet.org/repos/ansible/xoxys.pam)
|
||||
# [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg?label=license)](https://gitea.rknet.org/ansible/xoxys.pam/src/branch/main/LICENSE)
|
||||
#
|
||||
# Configure pam stack.
|
||||
# @end
|
||||
description: Configure pam stack
|
||||
license: MIT
|
||||
min_ansible_version: 2.10
|
||||
min_ansible_version: "2.10"
|
||||
platforms:
|
||||
- name: EL
|
||||
versions:
|
||||
- 7
|
||||
- "9"
|
||||
galaxy_tags:
|
||||
- pam
|
||||
dependencies: []
|
||||
|
@ -1,120 +0,0 @@
|
||||
---
|
||||
- name: Create
|
||||
hosts: localhost
|
||||
connection: local
|
||||
gather_facts: false
|
||||
no_log: "{{ molecule_no_log }}"
|
||||
vars:
|
||||
ssh_port: 22
|
||||
ssh_user: root
|
||||
ssh_path: "{{ lookup('env', 'MOLECULE_EPHEMERAL_DIRECTORY') }}/ssh_key"
|
||||
tasks:
|
||||
- name: Create SSH key
|
||||
user:
|
||||
name: "{{ lookup('env', 'USER') }}"
|
||||
generate_ssh_key: true
|
||||
ssh_key_file: "{{ ssh_path }}"
|
||||
force: true
|
||||
register: generated_ssh_key
|
||||
|
||||
- name: Register the SSH key name
|
||||
set_fact:
|
||||
ssh_key_name: "molecule-generated-{{ 12345 | random | to_uuid }}"
|
||||
|
||||
- name: Register SSH key for test instance(s)
|
||||
hcloud_ssh_key:
|
||||
name: "{{ ssh_key_name }}"
|
||||
public_key: "{{ generated_ssh_key.ssh_public_key }}"
|
||||
state: present
|
||||
|
||||
- name: Create molecule instance(s)
|
||||
hcloud_server:
|
||||
name: "{{ item.name }}"
|
||||
server_type: "{{ item.server_type }}"
|
||||
ssh_keys:
|
||||
- "{{ ssh_key_name }}"
|
||||
image: "{{ item.image }}"
|
||||
location: "{{ item.location | default(omit) }}"
|
||||
datacenter: "{{ item.datacenter | default(omit) }}"
|
||||
user_data: "{{ item.user_data | default(omit) }}"
|
||||
api_token: "{{ lookup('env', 'HCLOUD_TOKEN') }}"
|
||||
state: present
|
||||
register: server
|
||||
loop: "{{ molecule_yml.platforms }}"
|
||||
async: 7200
|
||||
poll: 0
|
||||
|
||||
- name: Wait for instance(s) creation to complete
|
||||
async_status:
|
||||
jid: "{{ item.ansible_job_id }}"
|
||||
register: hetzner_jobs
|
||||
until: hetzner_jobs.finished
|
||||
retries: 300
|
||||
loop: "{{ server.results }}"
|
||||
|
||||
- name: Create volume(s)
|
||||
hcloud_volume:
|
||||
name: "{{ item.name }}"
|
||||
server: "{{ item.name }}"
|
||||
location: "{{ item.location | default(omit) }}"
|
||||
size: "{{ item.volume_size | default(10) }}"
|
||||
api_token: "{{ lookup('env', 'HCLOUD_TOKEN') }}"
|
||||
state: "present"
|
||||
loop: "{{ molecule_yml.platforms }}"
|
||||
when: item.volume | default(False) | bool
|
||||
register: volumes
|
||||
async: 7200
|
||||
poll: 0
|
||||
|
||||
- name: Wait for volume(s) creation to complete
|
||||
async_status:
|
||||
jid: "{{ item.ansible_job_id }}"
|
||||
register: hetzner_volumes
|
||||
until: hetzner_volumes.finished
|
||||
retries: 300
|
||||
when: volumes.changed
|
||||
loop: "{{ volumes.results }}"
|
||||
|
||||
# Mandatory configuration for Molecule to function.
|
||||
|
||||
- name: Populate instance config dict
|
||||
set_fact:
|
||||
instance_conf_dict:
|
||||
{
|
||||
"instance": "{{ item.hcloud_server.name }}",
|
||||
"ssh_key_name": "{{ ssh_key_name }}",
|
||||
"address": "{{ item.hcloud_server.ipv4_address }}",
|
||||
"user": "{{ ssh_user }}",
|
||||
"port": "{{ ssh_port }}",
|
||||
"identity_file": "{{ ssh_path }}",
|
||||
"volume": "{{ item.item.item.volume | default(False) | bool }}",
|
||||
}
|
||||
loop: "{{ hetzner_jobs.results }}"
|
||||
register: instance_config_dict
|
||||
when: server.changed | bool
|
||||
|
||||
- name: Convert instance config dict to a list
|
||||
set_fact:
|
||||
instance_conf: "{{ instance_config_dict.results | map(attribute='ansible_facts.instance_conf_dict') | list }}"
|
||||
when: server.changed | bool
|
||||
|
||||
- name: Dump instance config
|
||||
copy:
|
||||
content: |
|
||||
# Molecule managed
|
||||
|
||||
{{ instance_conf | to_nice_yaml(indent=2) }}
|
||||
dest: "{{ molecule_instance_config }}"
|
||||
when: server.changed | bool
|
||||
|
||||
- name: Wait for SSH
|
||||
wait_for:
|
||||
port: "{{ ssh_port }}"
|
||||
host: "{{ item.address }}"
|
||||
search_regex: SSH
|
||||
delay: 10
|
||||
loop: "{{ lookup('file', molecule_instance_config) | from_yaml }}"
|
||||
|
||||
- name: Wait for VM to settle down
|
||||
pause:
|
||||
seconds: 30
|
@ -1,78 +0,0 @@
|
||||
---
|
||||
- name: Destroy
|
||||
hosts: localhost
|
||||
connection: local
|
||||
gather_facts: false
|
||||
no_log: "{{ molecule_no_log }}"
|
||||
tasks:
|
||||
- name: Check existing instance config file
|
||||
stat:
|
||||
path: "{{ molecule_instance_config }}"
|
||||
register: cfg
|
||||
|
||||
- name: Populate the instance config
|
||||
set_fact:
|
||||
instance_conf: "{{ (lookup('file', molecule_instance_config) | from_yaml) if cfg.stat.exists else [] }}"
|
||||
|
||||
- name: Destroy molecule instance(s)
|
||||
hcloud_server:
|
||||
name: "{{ item.instance }}"
|
||||
api_token: "{{ lookup('env', 'HCLOUD_TOKEN') }}"
|
||||
state: absent
|
||||
register: server
|
||||
loop: "{{ instance_conf }}"
|
||||
async: 7200
|
||||
poll: 0
|
||||
|
||||
- name: Wait for instance(s) deletion to complete
|
||||
async_status:
|
||||
jid: "{{ item.ansible_job_id }}"
|
||||
register: hetzner_jobs
|
||||
until: hetzner_jobs.finished
|
||||
retries: 300
|
||||
loop: "{{ server.results }}"
|
||||
|
||||
- pause:
|
||||
seconds: 5
|
||||
|
||||
- name: Destroy volume(s)
|
||||
hcloud_volume:
|
||||
name: "{{ item.instance }}"
|
||||
server: "{{ item.instance }}"
|
||||
api_token: "{{ lookup('env', 'HCLOUD_TOKEN') }}"
|
||||
state: "absent"
|
||||
register: volumes
|
||||
loop: "{{ instance_conf }}"
|
||||
when: item.volume | default(False) | bool
|
||||
async: 7200
|
||||
poll: 0
|
||||
|
||||
- name: Wait for volume(s) deletion to complete
|
||||
async_status:
|
||||
jid: "{{ item.ansible_job_id }}"
|
||||
register: hetzner_volumes
|
||||
until: hetzner_volumes.finished
|
||||
retries: 300
|
||||
when: volumes.changed
|
||||
loop: "{{ volumes.results }}"
|
||||
|
||||
- name: Remove registered SSH key
|
||||
hcloud_ssh_key:
|
||||
name: "{{ instance_conf[0].ssh_key_name }}"
|
||||
state: absent
|
||||
when: (instance_conf | default([])) | length > 0
|
||||
|
||||
# Mandatory configuration for Molecule to function.
|
||||
|
||||
- name: Populate instance config
|
||||
set_fact:
|
||||
instance_conf: {}
|
||||
|
||||
- name: Dump instance config
|
||||
copy:
|
||||
content: |
|
||||
# Molecule managed
|
||||
|
||||
{{ instance_conf | to_nice_yaml(indent=2) }}
|
||||
dest: "{{ molecule_instance_config }}"
|
||||
when: server.changed | bool
|
@ -1,24 +0,0 @@
|
||||
---
|
||||
dependency:
|
||||
name: galaxy
|
||||
options:
|
||||
role-file: molecule/requirements.yml
|
||||
requirements-file: molecule/requirements.yml
|
||||
env:
|
||||
ANSIBLE_GALAXY_DISPLAY_PROGRESS: "false"
|
||||
driver:
|
||||
name: delegated
|
||||
platforms:
|
||||
- name: centos7-pam
|
||||
image: centos-7
|
||||
server_type: cx11
|
||||
lint: |
|
||||
/usr/local/bin/flake8
|
||||
provisioner:
|
||||
name: ansible
|
||||
env:
|
||||
ANSIBLE_FILTER_PLUGINS: ${ANSIBLE_FILTER_PLUGINS:-./plugins/filter}
|
||||
ANSIBLE_LIBRARY: ${ANSIBLE_LIBRARY:-./library}
|
||||
log: False
|
||||
verifier:
|
||||
name: testinfra
|
@ -1,15 +0,0 @@
|
||||
---
|
||||
- name: Prepare
|
||||
hosts: all
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- name: Bootstrap python for Ansible
|
||||
raw: |
|
||||
command -v python3 python || (
|
||||
(test -e /usr/bin/dnf && sudo dnf install -y python3) ||
|
||||
(test -e /usr/bin/apt && (apt -y update && apt install -y python-minimal)) ||
|
||||
(test -e /usr/bin/yum && sudo yum -y -qq install python3) ||
|
||||
echo "Warning: Python not boostrapped due to unknown platform."
|
||||
)
|
||||
become: true
|
||||
changed_when: false
|
@ -1,16 +0,0 @@
|
||||
import os
|
||||
|
||||
import testinfra.utils.ansible_runner
|
||||
|
||||
testinfra_hosts = testinfra.utils.ansible_runner.AnsibleRunner(
|
||||
os.environ["MOLECULE_INVENTORY_FILE"]
|
||||
).get_hosts("all")
|
||||
|
||||
|
||||
def test_pam_config(host):
|
||||
auth = host.file("/etc/pam.d/system-auth")
|
||||
|
||||
assert auth.contains("auth sufficient pam_unix.so nullok try_first_pass")
|
||||
assert auth.contains(
|
||||
"password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok"
|
||||
)
|
@ -1 +0,0 @@
|
||||
rocky8
|
17
molecule/default/molecule.yml
Normal file
17
molecule/default/molecule.yml
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
driver:
|
||||
name: molecule_hetznercloud
|
||||
dependency:
|
||||
name: galaxy
|
||||
options:
|
||||
role-file: molecule/requirements.yml
|
||||
requirements-file: molecule/requirements.yml
|
||||
platforms:
|
||||
- name: "rocky9-pam"
|
||||
server_type: "cx11"
|
||||
image: "rocky-9"
|
||||
provisioner:
|
||||
name: ansible
|
||||
log: False
|
||||
verifier:
|
||||
name: testinfra
|
11
molecule/default/prepare.yml
Normal file
11
molecule/default/prepare.yml
Normal file
@ -0,0 +1,11 @@
|
||||
---
|
||||
- name: Prepare
|
||||
hosts: all
|
||||
gather_facts: False
|
||||
tasks:
|
||||
- name: Bootstrap Python for Ansible
|
||||
ansible.builtin.raw: |
|
||||
command -v python3 python ||
|
||||
((test -e /usr/bin/apt && (apt -y update && apt install -y python-minimal)) ||
|
||||
echo "Warning: Python not boostrapped due to unknown platform.")
|
||||
changed_when: False
|
@ -1,3 +0,0 @@
|
||||
[pytest]
|
||||
filterwarnings =
|
||||
ignore::DeprecationWarning
|
@ -1,6 +1,3 @@
|
||||
---
|
||||
collections:
|
||||
- name: https://gitea.rknet.org/ansible/xoxys.general/releases/download/v2.1.1/xoxys-general-2.1.1.tar.gz
|
||||
- name: community.general
|
||||
|
||||
collections: []
|
||||
roles: []
|
||||
|
@ -1,5 +0,0 @@
|
||||
---
|
||||
- name: Converge
|
||||
hosts: all
|
||||
roles:
|
||||
- role: xoxys.pam
|
@ -1,120 +0,0 @@
|
||||
---
|
||||
- name: Create
|
||||
hosts: localhost
|
||||
connection: local
|
||||
gather_facts: false
|
||||
no_log: "{{ molecule_no_log }}"
|
||||
vars:
|
||||
ssh_port: 22
|
||||
ssh_user: root
|
||||
ssh_path: "{{ lookup('env', 'MOLECULE_EPHEMERAL_DIRECTORY') }}/ssh_key"
|
||||
tasks:
|
||||
- name: Create SSH key
|
||||
user:
|
||||
name: "{{ lookup('env', 'USER') }}"
|
||||
generate_ssh_key: true
|
||||
ssh_key_file: "{{ ssh_path }}"
|
||||
force: true
|
||||
register: generated_ssh_key
|
||||
|
||||
- name: Register the SSH key name
|
||||
set_fact:
|
||||
ssh_key_name: "molecule-generated-{{ 12345 | random | to_uuid }}"
|
||||
|
||||
- name: Register SSH key for test instance(s)
|
||||
hcloud_ssh_key:
|
||||
name: "{{ ssh_key_name }}"
|
||||
public_key: "{{ generated_ssh_key.ssh_public_key }}"
|
||||
state: present
|
||||
|
||||
- name: Create molecule instance(s)
|
||||
hcloud_server:
|
||||
name: "{{ item.name }}"
|
||||
server_type: "{{ item.server_type }}"
|
||||
ssh_keys:
|
||||
- "{{ ssh_key_name }}"
|
||||
image: "{{ item.image }}"
|
||||
location: "{{ item.location | default(omit) }}"
|
||||
datacenter: "{{ item.datacenter | default(omit) }}"
|
||||
user_data: "{{ item.user_data | default(omit) }}"
|
||||
api_token: "{{ lookup('env', 'HCLOUD_TOKEN') }}"
|
||||
state: present
|
||||
register: server
|
||||
loop: "{{ molecule_yml.platforms }}"
|
||||
async: 7200
|
||||
poll: 0
|
||||
|
||||
- name: Wait for instance(s) creation to complete
|
||||
async_status:
|
||||
jid: "{{ item.ansible_job_id }}"
|
||||
register: hetzner_jobs
|
||||
until: hetzner_jobs.finished
|
||||
retries: 300
|
||||
loop: "{{ server.results }}"
|
||||
|
||||
- name: Create volume(s)
|
||||
hcloud_volume:
|
||||
name: "{{ item.name }}"
|
||||
server: "{{ item.name }}"
|
||||
location: "{{ item.location | default(omit) }}"
|
||||
size: "{{ item.volume_size | default(10) }}"
|
||||
api_token: "{{ lookup('env', 'HCLOUD_TOKEN') }}"
|
||||
state: "present"
|
||||
loop: "{{ molecule_yml.platforms }}"
|
||||
when: item.volume | default(False) | bool
|
||||
register: volumes
|
||||
async: 7200
|
||||
poll: 0
|
||||
|
||||
- name: Wait for volume(s) creation to complete
|
||||
async_status:
|
||||
jid: "{{ item.ansible_job_id }}"
|
||||
register: hetzner_volumes
|
||||
until: hetzner_volumes.finished
|
||||
retries: 300
|
||||
when: volumes.changed
|
||||
loop: "{{ volumes.results }}"
|
||||
|
||||
# Mandatory configuration for Molecule to function.
|
||||
|
||||
- name: Populate instance config dict
|
||||
set_fact:
|
||||
instance_conf_dict:
|
||||
{
|
||||
"instance": "{{ item.hcloud_server.name }}",
|
||||
"ssh_key_name": "{{ ssh_key_name }}",
|
||||
"address": "{{ item.hcloud_server.ipv4_address }}",
|
||||
"user": "{{ ssh_user }}",
|
||||
"port": "{{ ssh_port }}",
|
||||
"identity_file": "{{ ssh_path }}",
|
||||
"volume": "{{ item.item.item.volume | default(False) | bool }}",
|
||||
}
|
||||
loop: "{{ hetzner_jobs.results }}"
|
||||
register: instance_config_dict
|
||||
when: server.changed | bool
|
||||
|
||||
- name: Convert instance config dict to a list
|
||||
set_fact:
|
||||
instance_conf: "{{ instance_config_dict.results | map(attribute='ansible_facts.instance_conf_dict') | list }}"
|
||||
when: server.changed | bool
|
||||
|
||||
- name: Dump instance config
|
||||
copy:
|
||||
content: |
|
||||
# Molecule managed
|
||||
|
||||
{{ instance_conf | to_nice_yaml(indent=2) }}
|
||||
dest: "{{ molecule_instance_config }}"
|
||||
when: server.changed | bool
|
||||
|
||||
- name: Wait for SSH
|
||||
wait_for:
|
||||
port: "{{ ssh_port }}"
|
||||
host: "{{ item.address }}"
|
||||
search_regex: SSH
|
||||
delay: 10
|
||||
loop: "{{ lookup('file', molecule_instance_config) | from_yaml }}"
|
||||
|
||||
- name: Wait for VM to settle down
|
||||
pause:
|
||||
seconds: 30
|
@ -1,78 +0,0 @@
|
||||
---
|
||||
- name: Destroy
|
||||
hosts: localhost
|
||||
connection: local
|
||||
gather_facts: false
|
||||
no_log: "{{ molecule_no_log }}"
|
||||
tasks:
|
||||
- name: Check existing instance config file
|
||||
stat:
|
||||
path: "{{ molecule_instance_config }}"
|
||||
register: cfg
|
||||
|
||||
- name: Populate the instance config
|
||||
set_fact:
|
||||
instance_conf: "{{ (lookup('file', molecule_instance_config) | from_yaml) if cfg.stat.exists else [] }}"
|
||||
|
||||
- name: Destroy molecule instance(s)
|
||||
hcloud_server:
|
||||
name: "{{ item.instance }}"
|
||||
api_token: "{{ lookup('env', 'HCLOUD_TOKEN') }}"
|
||||
state: absent
|
||||
register: server
|
||||
loop: "{{ instance_conf }}"
|
||||
async: 7200
|
||||
poll: 0
|
||||
|
||||
- name: Wait for instance(s) deletion to complete
|
||||
async_status:
|
||||
jid: "{{ item.ansible_job_id }}"
|
||||
register: hetzner_jobs
|
||||
until: hetzner_jobs.finished
|
||||
retries: 300
|
||||
loop: "{{ server.results }}"
|
||||
|
||||
- pause:
|
||||
seconds: 5
|
||||
|
||||
- name: Destroy volume(s)
|
||||
hcloud_volume:
|
||||
name: "{{ item.instance }}"
|
||||
server: "{{ item.instance }}"
|
||||
api_token: "{{ lookup('env', 'HCLOUD_TOKEN') }}"
|
||||
state: "absent"
|
||||
register: volumes
|
||||
loop: "{{ instance_conf }}"
|
||||
when: item.volume | default(False) | bool
|
||||
async: 7200
|
||||
poll: 0
|
||||
|
||||
- name: Wait for volume(s) deletion to complete
|
||||
async_status:
|
||||
jid: "{{ item.ansible_job_id }}"
|
||||
register: hetzner_volumes
|
||||
until: hetzner_volumes.finished
|
||||
retries: 300
|
||||
when: volumes.changed
|
||||
loop: "{{ volumes.results }}"
|
||||
|
||||
- name: Remove registered SSH key
|
||||
hcloud_ssh_key:
|
||||
name: "{{ instance_conf[0].ssh_key_name }}"
|
||||
state: absent
|
||||
when: (instance_conf | default([])) | length > 0
|
||||
|
||||
# Mandatory configuration for Molecule to function.
|
||||
|
||||
- name: Populate instance config
|
||||
set_fact:
|
||||
instance_conf: {}
|
||||
|
||||
- name: Dump instance config
|
||||
copy:
|
||||
content: |
|
||||
# Molecule managed
|
||||
|
||||
{{ instance_conf | to_nice_yaml(indent=2) }}
|
||||
dest: "{{ molecule_instance_config }}"
|
||||
when: server.changed | bool
|
@ -1,24 +0,0 @@
|
||||
---
|
||||
dependency:
|
||||
name: galaxy
|
||||
options:
|
||||
role-file: molecule/requirements.yml
|
||||
requirements-file: molecule/requirements.yml
|
||||
env:
|
||||
ANSIBLE_GALAXY_DISPLAY_PROGRESS: "false"
|
||||
driver:
|
||||
name: delegated
|
||||
platforms:
|
||||
- name: rocky8-pam
|
||||
image: rocky-8
|
||||
server_type: cx11
|
||||
lint: |
|
||||
/usr/local/bin/flake8
|
||||
provisioner:
|
||||
name: ansible
|
||||
env:
|
||||
ANSIBLE_FILTER_PLUGINS: ${ANSIBLE_FILTER_PLUGINS:-./plugins/filter}
|
||||
ANSIBLE_LIBRARY: ${ANSIBLE_LIBRARY:-./library}
|
||||
log: False
|
||||
verifier:
|
||||
name: testinfra
|
@ -1,15 +0,0 @@
|
||||
---
|
||||
- name: Prepare
|
||||
hosts: all
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- name: Bootstrap python for Ansible
|
||||
raw: |
|
||||
command -v python3 python || (
|
||||
(test -e /usr/bin/dnf && sudo dnf install -y python3) ||
|
||||
(test -e /usr/bin/apt && (apt -y update && apt install -y python-minimal)) ||
|
||||
(test -e /usr/bin/yum && sudo yum -y -qq install python3) ||
|
||||
echo "Warning: Python not boostrapped due to unknown platform."
|
||||
)
|
||||
become: true
|
||||
changed_when: false
|
17
pyproject.toml
Normal file
17
pyproject.toml
Normal file
@ -0,0 +1,17 @@
|
||||
[tool.ruff]
|
||||
exclude = [".git", "__pycache__"]
|
||||
|
||||
line-length = 99
|
||||
indent-width = 4
|
||||
|
||||
[tool.ruff.lint]
|
||||
ignore = ["W191", "E111", "E114", "E117", "S101", "S105"]
|
||||
select = ["F", "E", "I", "W", "S"]
|
||||
|
||||
[tool.ruff.format]
|
||||
quote-style = "double"
|
||||
indent-style = "space"
|
||||
line-ending = "lf"
|
||||
|
||||
[tool.pytest.ini_options]
|
||||
filterwarnings = ["ignore::FutureWarning", "ignore::DeprecationWarning"]
|
645
pytestdebug.log
645
pytestdebug.log
@ -1,645 +0,0 @@
|
||||
versions pytest-6.2.5, py-1.10.0, python-3.9.7.final.0
|
||||
cwd=/home/rknet/rkau2905/Devel/private/ansible/roles/xoxys.pam
|
||||
args=('--ansible-inventory', '/home/rknet/rkau2905/.cache/molecule/xoxys.pam/rocky8/inventory', '--connection', 'ansible', '--debug', '-p', 'no:cacheprovider', '/home/rknet/rkau2905/Devel/private/ansible/roles/xoxys.pam/molecule/rocky8/tests/test_default.py', '-vvv')
|
||||
|
||||
pytest_cmdline_main [hook]
|
||||
config: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <Session molecule exitstatus='<UNSET>' testsfailed=0 testscollected=0>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_configure [hook]
|
||||
config: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
early skip of rewriting module: email.parser [assertion]
|
||||
early skip of rewriting module: email.feedparser [assertion]
|
||||
early skip of rewriting module: email.errors [assertion]
|
||||
early skip of rewriting module: email._policybase [assertion]
|
||||
early skip of rewriting module: email.header [assertion]
|
||||
early skip of rewriting module: email.quoprimime [assertion]
|
||||
early skip of rewriting module: email.base64mime [assertion]
|
||||
early skip of rewriting module: email.charset [assertion]
|
||||
early skip of rewriting module: email.encoders [assertion]
|
||||
early skip of rewriting module: quopri [assertion]
|
||||
early skip of rewriting module: email.utils [assertion]
|
||||
early skip of rewriting module: email._parseaddr [assertion]
|
||||
early skip of rewriting module: calendar [assertion]
|
||||
early skip of rewriting module: email.message [assertion]
|
||||
early skip of rewriting module: uu [assertion]
|
||||
early skip of rewriting module: email._encoded_words [assertion]
|
||||
early skip of rewriting module: email.iterators [assertion]
|
||||
pytest_metadata [hook]
|
||||
metadata: {'Python': '3.9.7', 'Platform': 'Linux-5.14.9-200.fc34.x86_64-x86_64-with-glibc2.33', 'Packages': {'pytest': '6.2.5', 'py': '1.10.0', 'pluggy': '0.13.1'}, 'Plugins': {'metadata': '1.11.0', 'forked': '1.3.0', 'xdist': '2.3.0', 'verbose-parametrize': '1.7.0', 'testinfra': '6.4.0', 'plus': '0.2', 'mock': '3.6.1', 'html': '3.1.1', 'cov': '2.12.1', 'flaky': '3.7.0'}}
|
||||
finish pytest_metadata --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <flaky.flaky_pytest_plugin.FlakyXdist object at 0x7f7ba3c12940>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
early skip of rewriting module: faulthandler [assertion]
|
||||
pytest_configure [hook]
|
||||
config: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
finish pytest_configure --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <_pytest.faulthandler.FaultHandlerHooks object at 0x7f7ba3b151f0>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
early skip of rewriting module: pdb [assertion]
|
||||
early skip of rewriting module: cmd [assertion]
|
||||
early skip of rewriting module: code [assertion]
|
||||
early skip of rewriting module: codeop [assertion]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.mark' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/mark/__init__.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.main' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/main.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.runner' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/runner.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.fixtures' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/fixtures.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.helpconfig' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/helpconfig.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.python' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/python.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.terminal' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/terminal.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.debugging' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/debugging.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.unittest' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/unittest.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.capture' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/capture.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.skipping' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/skipping.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.tmpdir' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/tmpdir.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.monkeypatch' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/monkeypatch.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.recwarn' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/recwarn.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.pastebin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/pastebin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.nose' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/nose.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.assertion' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/assertion/__init__.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.junitxml' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/junitxml.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.doctest' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/doctest.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.freeze_support' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/freeze_support.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.setuponly' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/setuponly.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.setupplan' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/setupplan.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.warnings' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/warnings.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.logging' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/logging.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.reports' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/reports.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.unraisableexception' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/unraisableexception.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.threadexception' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/threadexception.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.faulthandler' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/faulthandler.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_metadata.plugin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_metadata/plugin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_forked' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_forked/__init__.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'xdist.plugin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/xdist/plugin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'xdist.looponfail' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/xdist/looponfail.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_verbose_parametrize' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_verbose_parametrize.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'testinfra.plugin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/plugin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_plus' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_plus/__init__.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_mock' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_mock/__init__.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_html.plugin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_html/plugin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_cov.plugin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_cov/plugin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'flaky.flaky_pytest_plugin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/flaky/flaky_pytest_plugin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <CaptureManager _method='fd' _global_capturing=<MultiCapture out=<FDCapture 1 oldfd=5 _state='suspended' tmpfile=<_io.TextIOWrapper name="<_io.FileIO name=6 mode='rb+' closefd=True>" mode='r+' encoding='utf-8'>> err=<FDCapture 2 oldfd=7 _state='suspended' tmpfile=<_io.TextIOWrapper name="<_io.FileIO name=8 mode='rb+' closefd=True>" mode='r+' encoding='utf-8'>> in_=<FDCapture 0 oldfd=3 _state='started' tmpfile=<_io.TextIOWrapper name='/dev/null' mode='r' encoding='UTF-8'>> _state='suspended' _in_suspended=False> _capture_fixture=None>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <Session molecule exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=0>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <flaky.flaky_pytest_plugin.FlakyXdist object at 0x7f7ba3c12940>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <_pytest.faulthandler.FaultHandlerHooks object at 0x7f7ba3b151f0>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <_pytest.terminal.TerminalReporter object at 0x7f7ba3b156a0>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <_pytest.logging.LoggingPlugin object at 0x7f7ba3b42b20>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
finish pytest_configure --> [] [hook]
|
||||
pytest_sessionstart [hook]
|
||||
session: <Session molecule exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=0>
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.mark' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/mark/__init__.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.main' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/main.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.runner' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/runner.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.fixtures' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/fixtures.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.helpconfig' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/helpconfig.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.python' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/python.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.terminal' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/terminal.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.debugging' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/debugging.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.unittest' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/unittest.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.capture' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/capture.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.skipping' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/skipping.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.tmpdir' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/tmpdir.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.monkeypatch' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/monkeypatch.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.recwarn' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/recwarn.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.pastebin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/pastebin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.nose' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/nose.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.assertion' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/assertion/__init__.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.junitxml' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/junitxml.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.doctest' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/doctest.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.freeze_support' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/freeze_support.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.setuponly' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/setuponly.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.setupplan' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/setupplan.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.warnings' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/warnings.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.logging' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/logging.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.reports' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/reports.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.unraisableexception' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/unraisableexception.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.threadexception' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/threadexception.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module '_pytest.faulthandler' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/faulthandler.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_metadata.plugin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_metadata/plugin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_forked' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_forked/__init__.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'xdist.plugin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/xdist/plugin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'xdist.looponfail' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/xdist/looponfail.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_verbose_parametrize' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_verbose_parametrize.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'testinfra.plugin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/plugin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_plus' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_plus/__init__.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_mock' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_mock/__init__.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_html.plugin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_html/plugin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'pytest_cov.plugin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_cov/plugin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <module 'flaky.flaky_pytest_plugin' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/flaky/flaky_pytest_plugin.py'>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <CaptureManager _method='fd' _global_capturing=<MultiCapture out=<FDCapture 1 oldfd=5 _state='suspended' tmpfile=<_io.TextIOWrapper name="<_io.FileIO name=6 mode='rb+' closefd=True>" mode='r+' encoding='utf-8'>> err=<FDCapture 2 oldfd=7 _state='suspended' tmpfile=<_io.TextIOWrapper name="<_io.FileIO name=8 mode='rb+' closefd=True>" mode='r+' encoding='utf-8'>> in_=<FDCapture 0 oldfd=3 _state='started' tmpfile=<_io.TextIOWrapper name='/dev/null' mode='r' encoding='UTF-8'>> _state='suspended' _in_suspended=False> _capture_fixture=None>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <Session molecule exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=0>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <flaky.flaky_pytest_plugin.FlakyXdist object at 0x7f7ba3c12940>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <_pytest.faulthandler.FaultHandlerHooks object at 0x7f7ba3b151f0>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <_pytest.terminal.TerminalReporter object at 0x7f7ba3b156a0>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <_pytest.logging.LoggingPlugin object at 0x7f7ba3b42b20>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_plugin_registered [hook]
|
||||
plugin: <_pytest.fixtures.FixtureManager object at 0x7f7ba3b8e6d0>
|
||||
manager: <_pytest.config.PytestPluginManager object at 0x7f7ba49edc40>
|
||||
finish pytest_plugin_registered --> [] [hook]
|
||||
pytest_report_header [hook]
|
||||
config: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
startdir: /home/rknet/rkau2905/Devel/private/ansible/roles/xoxys.pam
|
||||
finish pytest_report_header --> [['rootdir: /home/rknet/rkau2905/Devel/private/ansible/roles/xoxys.pam/molecule, configfile: pytest.ini', 'plugins: metadata-1.11.0, forked-1.3.0, xdist-2.3.0, verbose-parametrize-1.7.0, testinfra-6.4.0, plus-0.2, mock-3.6.1, html-3.1.1, cov-2.12.1, flaky-3.7.0'], "metadata: {'Python': '3.9.7', 'Platform': 'Linux-5.14.9-200.fc34.x86_64-x86_64-with-glibc2.33', 'Packages': {'pytest': '6.2.5', 'py': '1.10.0', 'pluggy': '0.13.1'}, 'Plugins': {'metadata': '1.11.0', 'forked': '1.3.0', 'xdist': '2.3.0', 'verbose-parametrize': '1.7.0', 'testinfra': '6.4.0', 'plus': '0.2', 'mock': '3.6.1', 'html': '3.1.1', 'cov': '2.12.1', 'flaky': '3.7.0'}}", ['using: pytest-6.2.5 pylib-1.10.0', 'setuptools registered plugins:', ' pytest-metadata-1.11.0 at /home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_metadata/plugin.py', ' pytest-forked-1.3.0 at /home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_forked/__init__.py', ' pytest-xdist-2.3.0 at /home/rknet/rkau2905/.local/lib/python3.9/site-packages/xdist/plugin.py', ' pytest-xdist-2.3.0 at /home/rknet/rkau2905/.local/lib/python3.9/site-packages/xdist/looponfail.py', ' pytest-verbose-parametrize-1.7.0 at /home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_verbose_parametrize.py', ' pytest-testinfra-6.4.0 at /home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/plugin.py', ' pytest-plus-0.2 at /home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_plus/__init__.py', ' pytest-mock-3.6.1 at /home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_mock/__init__.py', ' pytest-html-3.1.1 at /home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_html/plugin.py', ' pytest-cov-2.12.1 at /home/rknet/rkau2905/.local/lib/python3.9/site-packages/pytest_cov/plugin.py', ' flaky-3.7.0 at /home/rknet/rkau2905/.local/lib/python3.9/site-packages/flaky/flaky_pytest_plugin.py']] [hook]
|
||||
finish pytest_sessionstart --> [] [hook]
|
||||
pytest_collection [hook]
|
||||
session: <Session molecule exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=0>
|
||||
perform_collect <Session molecule exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=0> ['/home/rknet/rkau2905/Devel/private/ansible/roles/xoxys.pam/molecule/rocky8/tests/test_default.py'] [collection]
|
||||
pytest_collectstart [hook]
|
||||
collector: <Session molecule exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=0>
|
||||
finish pytest_collectstart --> [] [hook]
|
||||
pytest_make_collect_report [hook]
|
||||
collector: <Session molecule exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=0>
|
||||
processing argument (local('/home/rknet/rkau2905/Devel/private/ansible/roles/xoxys.pam/molecule/rocky8/tests/test_default.py'), []) [collection]
|
||||
pytest_collect_file [hook]
|
||||
path: /home/rknet/rkau2905/Devel/private/ansible/roles/xoxys.pam/molecule/rocky8/tests/test_default.py
|
||||
parent: <Session molecule exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=0>
|
||||
pytest_pycollect_makemodule [hook]
|
||||
path: /home/rknet/rkau2905/Devel/private/ansible/roles/xoxys.pam/molecule/rocky8/tests/test_default.py
|
||||
parent: <Session molecule exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=0>
|
||||
finish pytest_pycollect_makemodule --> <Module rocky8/tests/test_default.py> [hook]
|
||||
finish pytest_collect_file --> [<Module rocky8/tests/test_default.py>] [hook]
|
||||
matchnodes [<Module rocky8/tests/test_default.py>] [] [collection]
|
||||
matchnodes finished -> 1 nodes [collection]
|
||||
finish pytest_make_collect_report --> <CollectReport '' lenresult=1 outcome='passed'> [hook]
|
||||
pytest_collectreport [hook]
|
||||
report: <CollectReport '' lenresult=1 outcome='passed'>
|
||||
finish pytest_collectreport --> [] [hook]
|
||||
genitems <Module rocky8/tests/test_default.py> [collection]
|
||||
pytest_collectstart [hook]
|
||||
collector: <Module rocky8/tests/test_default.py>
|
||||
finish pytest_collectstart --> [] [hook]
|
||||
pytest_make_collect_report [hook]
|
||||
collector: <Module rocky8/tests/test_default.py>
|
||||
find_module called for: test_default [assertion]
|
||||
matched test file (was specified on cmdline): '/home/rknet/rkau2905/Devel/private/ansible/roles/xoxys.pam/molecule/rocky8/tests/test_default.py' [assertion]
|
||||
rewriting PosixPath('/home/rknet/rkau2905/Devel/private/ansible/roles/xoxys.pam/molecule/rocky8/tests/test_default.py') [assertion]
|
||||
matched marked file 'testinfra.utils' (from 'testinfra') [assertion]
|
||||
find_module called for: testinfra.utils [assertion]
|
||||
found cached rewritten pyc for /home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/utils/__init__.py [assertion]
|
||||
matched marked file 'testinfra.utils.ansible_runner' (from 'testinfra') [assertion]
|
||||
find_module called for: testinfra.utils.ansible_runner [assertion]
|
||||
found cached rewritten pyc for /home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/utils/ansible_runner.py [assertion]
|
||||
early skip of rewriting module: ipaddress [assertion]
|
||||
matched marked file 'testinfra.backend.local' (from 'testinfra') [assertion]
|
||||
find_module called for: testinfra.backend.local [assertion]
|
||||
found cached rewritten pyc for /home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/backend/local.py [assertion]
|
||||
matched marked file 'testinfra.backend.base' (from 'testinfra') [assertion]
|
||||
find_module called for: testinfra.backend.base [assertion]
|
||||
found cached rewritten pyc for /home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/backend/base.py [assertion]
|
||||
pytest_pycollect_makeitem [hook]
|
||||
collector: <Module rocky8/tests/test_default.py>
|
||||
name: @py_builtins
|
||||
obj: <module 'builtins' (built-in)>
|
||||
finish pytest_pycollect_makeitem --> None [hook]
|
||||
pytest_pycollect_makeitem [hook]
|
||||
collector: <Module rocky8/tests/test_default.py>
|
||||
name: @pytest_ar
|
||||
obj: <module '_pytest.assertion.rewrite' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/_pytest/assertion/rewrite.py'>
|
||||
finish pytest_pycollect_makeitem --> None [hook]
|
||||
pytest_pycollect_makeitem [hook]
|
||||
collector: <Module rocky8/tests/test_default.py>
|
||||
name: os
|
||||
obj: <module 'os' from '/usr/lib64/python3.9/os.py'>
|
||||
finish pytest_pycollect_makeitem --> None [hook]
|
||||
pytest_pycollect_makeitem [hook]
|
||||
collector: <Module rocky8/tests/test_default.py>
|
||||
name: testinfra
|
||||
obj: <module 'testinfra' from '/home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/__init__.py'>
|
||||
finish pytest_pycollect_makeitem --> None [hook]
|
||||
pytest_pycollect_makeitem [hook]
|
||||
collector: <Module rocky8/tests/test_default.py>
|
||||
name: testinfra_hosts
|
||||
obj: ['rocky8-pam']
|
||||
finish pytest_pycollect_makeitem --> None [hook]
|
||||
pytest_pycollect_makeitem [hook]
|
||||
collector: <Module rocky8/tests/test_default.py>
|
||||
name: test_pam_config
|
||||
obj: <function test_pam_config at 0x7f7ba3af4550>
|
||||
pytest_generate_tests [hook]
|
||||
metafunc: <_pytest.python.Metafunc object at 0x7f7ba3adceb0>
|
||||
matched marked file 'testinfra.backend.ansible' (from 'testinfra') [assertion]
|
||||
find_module called for: testinfra.backend.ansible [assertion]
|
||||
found cached rewritten pyc for /home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/backend/ansible.py [assertion]
|
||||
early skip of rewriting module: encodings.unicode_escape [assertion]
|
||||
finish pytest_generate_tests --> [] [hook]
|
||||
finish pytest_pycollect_makeitem --> [<Function test_pam_config[ansible://rocky8-pam]>] [hook]
|
||||
finish pytest_make_collect_report --> <CollectReport 'rocky8/tests/test_default.py' lenresult=1 outcome='passed'> [hook]
|
||||
genitems <Function test_pam_config[ansible://rocky8-pam]> [collection]
|
||||
pytest_itemcollected [hook]
|
||||
item: <Function test_pam_config[ansible://rocky8-pam]>
|
||||
finish pytest_itemcollected --> [] [hook]
|
||||
pytest_collectreport [hook]
|
||||
report: <CollectReport 'rocky8/tests/test_default.py' lenresult=1 outcome='passed'>
|
||||
finish pytest_collectreport --> [] [hook]
|
||||
pytest_collection_modifyitems [hook]
|
||||
session: <Session molecule exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=0>
|
||||
config: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
items: [<Function test_pam_config[ansible://rocky8-pam]>]
|
||||
finish pytest_collection_modifyitems --> [] [hook]
|
||||
pytest_collection_finish [hook]
|
||||
session: <Session molecule exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=0>
|
||||
pytest_report_collectionfinish [hook]
|
||||
config: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
startdir: /home/rknet/rkau2905/Devel/private/ansible/roles/xoxys.pam
|
||||
items: [<Function test_pam_config[ansible://rocky8-pam]>]
|
||||
finish pytest_report_collectionfinish --> [] [hook]
|
||||
finish pytest_collection_finish --> [] [hook]
|
||||
finish pytest_collection --> None [hook]
|
||||
pytest_runtestloop [hook]
|
||||
session: <Session molecule exitstatus=<ExitCode.OK: 0> testsfailed=0 testscollected=1>
|
||||
pytest_runtest_protocol [hook]
|
||||
item: <Function test_pam_config[ansible://rocky8-pam]>
|
||||
nextitem: None
|
||||
pytest_runtest_logstart [hook]
|
||||
nodeid: rocky8/tests/test_default.py::test_pam_config[ansible://rocky8-pam]
|
||||
location: ('rocky8/tests/test_default.py', 9, 'test_pam_config[ansible://rocky8-pam]')
|
||||
finish pytest_runtest_logstart --> [] [hook]
|
||||
pytest_runtest_setup [hook]
|
||||
item: <Function test_pam_config[ansible://rocky8-pam]>
|
||||
pytest_fixture_setup [hook]
|
||||
fixturedef: <FixtureDef argname='_testinfra_host' scope='module' baseid=''>
|
||||
request: <SubRequest '_testinfra_host' for <Function test_pam_config[ansible://rocky8-pam]>>
|
||||
finish pytest_fixture_setup --> <testinfra.host.Host ansible://rocky8-pam> [hook]
|
||||
pytest_fixture_setup [hook]
|
||||
fixturedef: <FixtureDef argname='host' scope='module' baseid=''>
|
||||
request: <SubRequest 'host' for <Function test_pam_config[ansible://rocky8-pam]>>
|
||||
finish pytest_fixture_setup --> <testinfra.host.Host ansible://rocky8-pam> [hook]
|
||||
finish pytest_runtest_setup --> [] [hook]
|
||||
pytest_runtest_makereport [hook]
|
||||
item: <Function test_pam_config[ansible://rocky8-pam]>
|
||||
call: <CallInfo when='setup' result: []>
|
||||
finish pytest_runtest_makereport --> <TestReport 'rocky8/tests/test_default.py::test_pam_config[ansible://rocky8-pam]' when='setup' outcome='passed'> [hook]
|
||||
pytest_runtest_logreport [hook]
|
||||
report: <TestReport 'rocky8/tests/test_default.py::test_pam_config[ansible://rocky8-pam]' when='setup' outcome='passed'>
|
||||
pytest_report_teststatus [hook]
|
||||
report: <TestReport 'rocky8/tests/test_default.py::test_pam_config[ansible://rocky8-pam]' when='setup' outcome='passed'>
|
||||
config: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
finish pytest_report_teststatus --> ('', '', '') [hook]
|
||||
finish pytest_runtest_logreport --> [] [hook]
|
||||
pytest_runtest_call [hook]
|
||||
item: <Function test_pam_config[ansible://rocky8-pam]>
|
||||
pytest_pyfunc_call [hook]
|
||||
pyfuncitem: <Function test_pam_config[ansible://rocky8-pam]>
|
||||
matched marked file 'testinfra.modules.file' (from 'testinfra') [assertion]
|
||||
find_module called for: testinfra.modules.file [assertion]
|
||||
found cached rewritten pyc for /home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/modules/file.py [assertion]
|
||||
matched marked file 'testinfra.modules.base' (from 'testinfra') [assertion]
|
||||
find_module called for: testinfra.modules.base [assertion]
|
||||
found cached rewritten pyc for /home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/modules/base.py [assertion]
|
||||
matched marked file 'testinfra.modules.systeminfo' (from 'testinfra') [assertion]
|
||||
find_module called for: testinfra.modules.systeminfo [assertion]
|
||||
found cached rewritten pyc for /home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/modules/systeminfo.py [assertion]
|
||||
matched marked file 'testinfra.backend.ssh' (from 'testinfra') [assertion]
|
||||
find_module called for: testinfra.backend.ssh [assertion]
|
||||
found cached rewritten pyc for /home/rknet/rkau2905/.local/lib/python3.9/site-packages/testinfra/backend/ssh.py [assertion]
|
||||
finish pytest_pyfunc_call --> True [hook]
|
||||
finish pytest_runtest_call --> [] [hook]
|
||||
pytest_runtest_makereport [hook]
|
||||
item: <Function test_pam_config[ansible://rocky8-pam]>
|
||||
call: <CallInfo when='call' result: []>
|
||||
finish pytest_runtest_makereport --> <TestReport 'rocky8/tests/test_default.py::test_pam_config[ansible://rocky8-pam]' when='call' outcome='passed'> [hook]
|
||||
pytest_runtest_logreport [hook]
|
||||
report: <TestReport 'rocky8/tests/test_default.py::test_pam_config[ansible://rocky8-pam]' when='call' outcome='passed'>
|
||||
pytest_report_teststatus [hook]
|
||||
report: <TestReport 'rocky8/tests/test_default.py::test_pam_config[ansible://rocky8-pam]' when='call' outcome='passed'>
|
||||
config: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
finish pytest_report_teststatus --> ('passed', '.', 'PASSED') [hook]
|
||||
finish pytest_runtest_logreport --> [] [hook]
|
||||
pytest_runtest_teardown [hook]
|
||||
item: <Function test_pam_config[ansible://rocky8-pam]>
|
||||
nextitem: None
|
||||
pytest_fixture_post_finalizer [hook]
|
||||
fixturedef: <FixtureDef argname='host' scope='module' baseid=''>
|
||||
request: <SubRequest 'host' for <Function test_pam_config[ansible://rocky8-pam]>>
|
||||
finish pytest_fixture_post_finalizer --> [] [hook]
|
||||
pytest_fixture_post_finalizer [hook]
|
||||
fixturedef: <FixtureDef argname='host' scope='module' baseid=''>
|
||||
request: <SubRequest 'host' for <Function test_pam_config[ansible://rocky8-pam]>>
|
||||
finish pytest_fixture_post_finalizer --> [] [hook]
|
||||
pytest_fixture_post_finalizer [hook]
|
||||
fixturedef: <FixtureDef argname='_testinfra_host' scope='module' baseid=''>
|
||||
request: <SubRequest '_testinfra_host' for <Function test_pam_config[ansible://rocky8-pam]>>
|
||||
finish pytest_fixture_post_finalizer --> [] [hook]
|
||||
finish pytest_runtest_teardown --> [] [hook]
|
||||
pytest_runtest_makereport [hook]
|
||||
item: <Function test_pam_config[ansible://rocky8-pam]>
|
||||
call: <CallInfo when='teardown' result: []>
|
||||
finish pytest_runtest_makereport --> <TestReport 'rocky8/tests/test_default.py::test_pam_config[ansible://rocky8-pam]' when='teardown' outcome='passed'> [hook]
|
||||
pytest_runtest_logreport [hook]
|
||||
report: <TestReport 'rocky8/tests/test_default.py::test_pam_config[ansible://rocky8-pam]' when='teardown' outcome='passed'>
|
||||
pytest_report_teststatus [hook]
|
||||
report: <TestReport 'rocky8/tests/test_default.py::test_pam_config[ansible://rocky8-pam]' when='teardown' outcome='passed'>
|
||||
config: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
finish pytest_report_teststatus --> ('', '', '') [hook]
|
||||
finish pytest_runtest_logreport --> [] [hook]
|
||||
pytest_runtest_logfinish [hook]
|
||||
nodeid: rocky8/tests/test_default.py::test_pam_config[ansible://rocky8-pam]
|
||||
location: ('rocky8/tests/test_default.py', 9, 'test_pam_config[ansible://rocky8-pam]')
|
||||
finish pytest_runtest_logfinish --> [] [hook]
|
||||
finish pytest_runtest_protocol --> True [hook]
|
||||
finish pytest_runtestloop --> True [hook]
|
||||
pytest_sessionfinish [hook]
|
||||
session: <Session molecule exitstatus=0 testsfailed=0 testscollected=1>
|
||||
exitstatus: 0
|
||||
pytest_terminal_summary [hook]
|
||||
terminalreporter: <_pytest.terminal.TerminalReporter object at 0x7f7ba3b156a0>
|
||||
exitstatus: 0
|
||||
config: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
finish pytest_terminal_summary --> [] [hook]
|
||||
finish pytest_sessionfinish --> [] [hook]
|
||||
pytest_unconfigure [hook]
|
||||
config: <_pytest.config.Config object at 0x7f7ba4a9ca30>
|
||||
finish pytest_unconfigure --> [] [hook]
|
12
setup.cfg
12
setup.cfg
@ -1,12 +0,0 @@
|
||||
[flake8]
|
||||
ignore = D100, D101, D102, D103, D105, D107, E402, W503
|
||||
max-line-length = 99
|
||||
inline-quotes = double
|
||||
exclude = .git,.tox,__pycache__,build,dist,tests,*.pyc,*.egg-info,.cache,.eggs,env*
|
||||
|
||||
[yapf]
|
||||
based_on_style = google
|
||||
column_limit = 99
|
||||
dedent_closing_brackets = true
|
||||
coalesce_brackets = true
|
||||
split_before_logical_operator = true
|
@ -1,31 +1,28 @@
|
||||
---
|
||||
- block:
|
||||
- name: Set pam module configuration
|
||||
pamd:
|
||||
name: "{{ item.name | default('system-auth') }}"
|
||||
type: "{{ item.type | default('auth') }}"
|
||||
module_path: "{{ item.module_path | default('pam_unix.so') }}"
|
||||
control: "{{ item.control }}"
|
||||
new_type: "{{ item.new_type | default(omit) }}"
|
||||
new_module_path: "{{ item.new_module_path | default(omit) }}"
|
||||
new_control: "{{ item.new_control | default(omit) }}"
|
||||
state: "{{ item.state | default('args_present') }}"
|
||||
module_arguments: "{{ item.module_arguments | default(omit) }}"
|
||||
loop: "{{ pam_settings + pam_settings_extra }}"
|
||||
loop_control:
|
||||
label: "{{ item.name | default('system-auth') }}:{{ item.state | default('args_present') }}: {{ item.new_type | default(item.type) | default('auth') }} {{ item.new_control | default(item.control) }} {{ item.new_module_path | default(item.module_path) | default('pam_unix.so') }} {{ item.module_arguments | default([]) | join(' ') }}"
|
||||
- name: Set pam module configuration
|
||||
community.general.pamd:
|
||||
name: "{{ item.name | default('system-auth') }}"
|
||||
type: "{{ item.type | default('auth') }}"
|
||||
module_path: "{{ item.module_path | default('pam_unix.so') }}"
|
||||
control: "{{ item.control }}"
|
||||
new_type: "{{ item.new_type | default(omit) }}"
|
||||
new_module_path: "{{ item.new_module_path | default(omit) }}"
|
||||
new_control: "{{ item.new_control | default(omit) }}"
|
||||
state: "{{ item.state | default('args_present') }}"
|
||||
module_arguments: "{{ item.module_arguments | default(omit) }}"
|
||||
loop: "{{ pam_settings + pam_settings_extra }}"
|
||||
loop_control:
|
||||
label: "{{ item.name | default('system-auth') }}:{{ item.state | default('args_present') }}: {{ item.new_type | default(item.type) | default('auth') }} {{ item.new_control | default(item.control) }} {{ item.new_module_path | default(item.module_path) | default('pam_unix.so') }} {{ item.module_arguments | default([]) | join(' ') }}"
|
||||
|
||||
- name: Auto-update items with state before/after
|
||||
pamd:
|
||||
name: "{{ item.name | default('system-auth') }}"
|
||||
type: "{{ item.new_type }}"
|
||||
module_path: "{{ item.new_module_path }}"
|
||||
control: "{{ item.new_control }}"
|
||||
state: updated
|
||||
module_arguments: "{{ item.module_arguments | default(omit) }}"
|
||||
loop: "{{ pam_settings + pam_settings_extra }}"
|
||||
loop_control:
|
||||
label: "{{ item.name | default('system-auth') }}:{{ item.state | default('args_present') }}: {{ item.new_type | default(item.type) | default('auth') }} {{ item.new_control | default(item.control) }} {{ item.new_module_path | default(item.module_path) | default('pam_unix.so') }} {{ item.module_arguments | default([]) | join(' ') }}"
|
||||
when: item.state | default("args_present") == "before" or item.state | default("args_present") == "after"
|
||||
become: True
|
||||
become_user: root
|
||||
- name: Auto-update items with state before/after
|
||||
community.general.pamd:
|
||||
name: "{{ item.name | default('system-auth') }}"
|
||||
type: "{{ item.new_type }}"
|
||||
module_path: "{{ item.new_module_path }}"
|
||||
control: "{{ item.new_control }}"
|
||||
state: updated
|
||||
module_arguments: "{{ item.module_arguments | default(omit) }}"
|
||||
loop: "{{ pam_settings + pam_settings_extra }}"
|
||||
loop_control:
|
||||
label: "{{ item.name | default('system-auth') }}:{{ item.state | default('args_present') }}: {{ item.new_type | default(item.type) | default('auth') }} {{ item.new_control | default(item.control) }} {{ item.new_module_path | default(item.module_path) | default('pam_unix.so') }} {{ item.module_arguments | default([]) | join(' ') }}"
|
||||
when: item.state | default("args_present") == "before" or item.state | default("args_present") == "after"
|
||||
|
Loading…
Reference in New Issue
Block a user