all: children: zuul_unreachable: hosts: {} hosts: controller: ansible_connection: ssh ansible_host: 162.253.55.187 ansible_port: 22 ansible_python_interpreter: auto ansible_user: zuul nodepool: az: nova cloud: ansible-vexxhost external_id: ad54d745-ce59-4e3f-af8b-609b3808e45b host_id: 2f99c022f946186c175095e377ca85a11f435bb1f5089a3404320e15 interface_ip: 162.253.55.187 label: ansible-fedora-37-1vcpu private_ipv4: 192.168.0.91 private_ipv6: null provider: ansible-vexxhost-ca-ymq-1 public_ipv4: 162.253.55.187 public_ipv6: 2604:e100:1:0:f816:3eff:fe61:3c58 region: ca-ymq-1 slot: null zuul_use_fetch_output: true vars: zuul: _inheritance_path: - '' - '' - '' ansible_version: '8' artifacts: - branch: main change: '227' job: build-ansible-collection metadata: type: zuul_manifest name: Zuul Manifest patchset: c340bb59a3c68f12eb7299da3b3faa9bbb527a71 project: ansible-collections/community.libvirt url: https://85d10c5c27e397660074-43391dac8e3a4bdc1fab9bfffda9f41b.ssl.cf1.rackcdn.com/ansible/01bd5eb5356f48c3bb72c26c94eaf72b/zuul-manifest.json - branch: main change: '227' job: build-ansible-collection metadata: type: ansible_collection version: 2.0.1 name: community.libvirt patchset: c340bb59a3c68f12eb7299da3b3faa9bbb527a71 project: ansible-collections/community.libvirt url: https://85d10c5c27e397660074-43391dac8e3a4bdc1fab9bfffda9f41b.ssl.cf1.rackcdn.com/ansible/01bd5eb5356f48c3bb72c26c94eaf72b/artifacts/community-libvirt-2.0.1.tar.gz attempts: 1 branch: main build: 54379714247445dcb129045d95b1de97 build_refs: - branch: main change: '227' change_message: "Common utils and livbirt secret\n\n##### SUMMARY\r\n\r\nThis is a proposal to switch to a python3 style. Use common class for the libvirt modules which supports diffs, check mode and can add be used to control ansible module during a runtime (able to exit on error/exception and produce explanation)\r\n\r\n##### ISSUE TYPE\r\n- New Module Pull Request\r\n\r\n##### COMPONENT NAME\r\nvirt_secret\r\n\r\n##### ADDITIONAL INFORMATION\r\n\r\n**module_utils/common.py** \r\ncontains base class **VirtModule** with initialization of libvirt connection and typical exit, check_imports and abstract methods. Additionally there is a dataclass **ModuleStatus** which is used to collect existing status information. Separate class is needed to be able to fine control behavior of the status report. Which then can be accessed just as class property.\r\n\r\n**libvirt_error_to_none** is example of the decorator which changes libvirterror exceptions into none output. Suitable when you try to get object from libvirt which does not exist. We should get None instead.\r\n\r\n**compare_dicts** and **compare_lists** provided as recursive objects comparsion functions which does not require external libraries.\r\n\r\n**data_as_dict** is used to produce normal dict from the dataclass object. Done recursively, so as result we get consumable by ansible dict.\r\n\r\n**module/virt_secret.py**\r\n\r\nThis is a new example module which was missing in this collection. It can manage libvirt secrets. Illustrate how above common classes can be used to write a module, add diff and check support.\r\n\r\nAll defined or received values converted to the dataclass **SecretElement** which can be compared and used to produce diff. It has xml representation used by libvirt api\r\n\r\n**SecretUsage** provided as exmaple, it can be used instead of str in appropriate filed of **SecretElement**\r\n\r\nRecent python version was taken due to minimal python version supported by ansible-core==2.17 is 3.10. But even 2.16 requires 3.10-3.12\r\n\r\nTests a basic as I don't know if this module is suitable or not. I might need help and guidance in this process.\r\n\r\nP.S. Sorry if I used incorrect approach or something which was not agreed, I don't know the other way to ask a question or purpose a suggestion except by sending a PR. " change_url: https://github.com/ansible-collections/community.libvirt/pull/227 commit_id: c340bb59a3c68f12eb7299da3b3faa9bbb527a71 patchset: c340bb59a3c68f12eb7299da3b3faa9bbb527a71 project: canonical_hostname: github.com canonical_name: github.com/ansible-collections/community.libvirt name: ansible-collections/community.libvirt short_name: community.libvirt src_dir: src/github.com/ansible-collections/community.libvirt topic: null buildset: d15304491f824fffb57f3687d9091f39 buildset_refs: - branch: main change: '227' change_message: "Common utils and livbirt secret\n\n##### SUMMARY\r\n\r\nThis is a proposal to switch to a python3 style. Use common class for the libvirt modules which supports diffs, check mode and can add be used to control ansible module during a runtime (able to exit on error/exception and produce explanation)\r\n\r\n##### ISSUE TYPE\r\n- New Module Pull Request\r\n\r\n##### COMPONENT NAME\r\nvirt_secret\r\n\r\n##### ADDITIONAL INFORMATION\r\n\r\n**module_utils/common.py** \r\ncontains base class **VirtModule** with initialization of libvirt connection and typical exit, check_imports and abstract methods. Additionally there is a dataclass **ModuleStatus** which is used to collect existing status information. Separate class is needed to be able to fine control behavior of the status report. Which then can be accessed just as class property.\r\n\r\n**libvirt_error_to_none** is example of the decorator which changes libvirterror exceptions into none output. Suitable when you try to get object from libvirt which does not exist. We should get None instead.\r\n\r\n**compare_dicts** and **compare_lists** provided as recursive objects comparsion functions which does not require external libraries.\r\n\r\n**data_as_dict** is used to produce normal dict from the dataclass object. Done recursively, so as result we get consumable by ansible dict.\r\n\r\n**module/virt_secret.py**\r\n\r\nThis is a new example module which was missing in this collection. It can manage libvirt secrets. Illustrate how above common classes can be used to write a module, add diff and check support.\r\n\r\nAll defined or received values converted to the dataclass **SecretElement** which can be compared and used to produce diff. It has xml representation used by libvirt api\r\n\r\n**SecretUsage** provided as exmaple, it can be used instead of str in appropriate filed of **SecretElement**\r\n\r\nRecent python version was taken due to minimal python version supported by ansible-core==2.17 is 3.10. But even 2.16 requires 3.10-3.12\r\n\r\nTests a basic as I don't know if this module is suitable or not. I might need help and guidance in this process.\r\n\r\nP.S. Sorry if I used incorrect approach or something which was not agreed, I don't know the other way to ask a question or purpose a suggestion except by sending a PR. " change_url: https://github.com/ansible-collections/community.libvirt/pull/227 commit_id: c340bb59a3c68f12eb7299da3b3faa9bbb527a71 patchset: c340bb59a3c68f12eb7299da3b3faa9bbb527a71 project: canonical_hostname: github.com canonical_name: github.com/ansible-collections/community.libvirt name: ansible-collections/community.libvirt short_name: community.libvirt src_dir: src/github.com/ansible-collections/community.libvirt topic: null change: '227' change_message: "Common utils and livbirt secret\n\n##### SUMMARY\r\n\r\nThis is a proposal to switch to a python3 style. Use common class for the libvirt modules which supports diffs, check mode and can add be used to control ansible module during a runtime (able to exit on error/exception and produce explanation)\r\n\r\n##### ISSUE TYPE\r\n- New Module Pull Request\r\n\r\n##### COMPONENT NAME\r\nvirt_secret\r\n\r\n##### ADDITIONAL INFORMATION\r\n\r\n**module_utils/common.py** \r\ncontains base class **VirtModule** with initialization of libvirt connection and typical exit, check_imports and abstract methods. Additionally there is a dataclass **ModuleStatus** which is used to collect existing status information. Separate class is needed to be able to fine control behavior of the status report. Which then can be accessed just as class property.\r\n\r\n**libvirt_error_to_none** is example of the decorator which changes libvirterror exceptions into none output. Suitable when you try to get object from libvirt which does not exist. We should get None instead.\r\n\r\n**compare_dicts** and **compare_lists** provided as recursive objects comparsion functions which does not require external libraries.\r\n\r\n**data_as_dict** is used to produce normal dict from the dataclass object. Done recursively, so as result we get consumable by ansible dict.\r\n\r\n**module/virt_secret.py**\r\n\r\nThis is a new example module which was missing in this collection. It can manage libvirt secrets. Illustrate how above common classes can be used to write a module, add diff and check support.\r\n\r\nAll defined or received values converted to the dataclass **SecretElement** which can be compared and used to produce diff. It has xml representation used by libvirt api\r\n\r\n**SecretUsage** provided as exmaple, it can be used instead of str in appropriate filed of **SecretElement**\r\n\r\nRecent python version was taken due to minimal python version supported by ansible-core==2.17 is 3.10. But even 2.16 requires 3.10-3.12\r\n\r\nTests a basic as I don't know if this module is suitable or not. I might need help and guidance in this process.\r\n\r\nP.S. Sorry if I used incorrect approach or something which was not agreed, I don't know the other way to ask a question or purpose a suggestion except by sending a PR. " change_url: https://github.com/ansible-collections/community.libvirt/pull/227 child_jobs: [] commit_id: c340bb59a3c68f12eb7299da3b3faa9bbb527a71 event_id: a4734100-c8c3-11f0-95db-0179a0af81b6 executor: hostname: ze03.softwarefactory-project.io inventory_file: /var/lib/zuul/builds/54379714247445dcb129045d95b1de97/ansible/inventory.yaml log_root: /var/lib/zuul/builds/54379714247445dcb129045d95b1de97/work/logs result_data_file: /var/lib/zuul/builds/54379714247445dcb129045d95b1de97/work/results.json src_root: /var/lib/zuul/builds/54379714247445dcb129045d95b1de97/work/src work_root: /var/lib/zuul/builds/54379714247445dcb129045d95b1de97/work items: - branch: main change: '227' change_message: "Common utils and livbirt secret\n\n##### SUMMARY\r\n\r\nThis is a proposal to switch to a python3 style. Use common class for the libvirt modules which supports diffs, check mode and can add be used to control ansible module during a runtime (able to exit on error/exception and produce explanation)\r\n\r\n##### ISSUE TYPE\r\n- New Module Pull Request\r\n\r\n##### COMPONENT NAME\r\nvirt_secret\r\n\r\n##### ADDITIONAL INFORMATION\r\n\r\n**module_utils/common.py** \r\ncontains base class **VirtModule** with initialization of libvirt connection and typical exit, check_imports and abstract methods. Additionally there is a dataclass **ModuleStatus** which is used to collect existing status information. Separate class is needed to be able to fine control behavior of the status report. Which then can be accessed just as class property.\r\n\r\n**libvirt_error_to_none** is example of the decorator which changes libvirterror exceptions into none output. Suitable when you try to get object from libvirt which does not exist. We should get None instead.\r\n\r\n**compare_dicts** and **compare_lists** provided as recursive objects comparsion functions which does not require external libraries.\r\n\r\n**data_as_dict** is used to produce normal dict from the dataclass object. Done recursively, so as result we get consumable by ansible dict.\r\n\r\n**module/virt_secret.py**\r\n\r\nThis is a new example module which was missing in this collection. It can manage libvirt secrets. Illustrate how above common classes can be used to write a module, add diff and check support.\r\n\r\nAll defined or received values converted to the dataclass **SecretElement** which can be compared and used to produce diff. It has xml representation used by libvirt api\r\n\r\n**SecretUsage** provided as exmaple, it can be used instead of str in appropriate filed of **SecretElement**\r\n\r\nRecent python version was taken due to minimal python version supported by ansible-core==2.17 is 3.10. But even 2.16 requires 3.10-3.12\r\n\r\nTests a basic as I don't know if this module is suitable or not. I might need help and guidance in this process.\r\n\r\nP.S. Sorry if I used incorrect approach or something which was not agreed, I don't know the other way to ask a question or purpose a suggestion except by sending a PR. " change_url: https://github.com/ansible-collections/community.libvirt/pull/227 commit_id: c340bb59a3c68f12eb7299da3b3faa9bbb527a71 patchset: c340bb59a3c68f12eb7299da3b3faa9bbb527a71 project: canonical_hostname: github.com canonical_name: github.com/ansible-collections/community.libvirt name: ansible-collections/community.libvirt short_name: community.libvirt src_dir: src/github.com/ansible-collections/community.libvirt topic: null job: ansible-galaxy-importer jobtags: [] max_attempts: 3 message: Q29tbW9uIHV0aWxzIGFuZCBsaXZiaXJ0IHNlY3JldAoKIyMjIyMgU1VNTUFSWQ0KDQpUaGlzIGlzIGEgcHJvcG9zYWwgdG8gc3dpdGNoIHRvIGEgcHl0aG9uMyBzdHlsZS4gVXNlIGNvbW1vbiBjbGFzcyBmb3IgdGhlIGxpYnZpcnQgbW9kdWxlcyB3aGljaCBzdXBwb3J0cyBkaWZmcywgY2hlY2sgbW9kZSBhbmQgY2FuIGFkZCBiZSB1c2VkIHRvIGNvbnRyb2wgYW5zaWJsZSBtb2R1bGUgZHVyaW5nIGEgcnVudGltZSAoYWJsZSB0byBleGl0IG9uIGVycm9yL2V4Y2VwdGlvbiBhbmQgcHJvZHVjZSBleHBsYW5hdGlvbikNCg0KIyMjIyMgSVNTVUUgVFlQRQ0KLSBOZXcgTW9kdWxlIFB1bGwgUmVxdWVzdA0KDQojIyMjIyBDT01QT05FTlQgTkFNRQ0KdmlydF9zZWNyZXQNCg0KIyMjIyMgQURESVRJT05BTCBJTkZPUk1BVElPTg0KDQoqKm1vZHVsZV91dGlscy9jb21tb24ucHkqKiANCmNvbnRhaW5zIGJhc2UgY2xhc3MgKipWaXJ0TW9kdWxlKiogd2l0aCBpbml0aWFsaXphdGlvbiBvZiBsaWJ2aXJ0IGNvbm5lY3Rpb24gYW5kIHR5cGljYWwgZXhpdCwgY2hlY2tfaW1wb3J0cyBhbmQgYWJzdHJhY3QgbWV0aG9kcy4gQWRkaXRpb25hbGx5IHRoZXJlIGlzIGEgZGF0YWNsYXNzICoqTW9kdWxlU3RhdHVzKiogd2hpY2ggaXMgdXNlZCB0byBjb2xsZWN0IGV4aXN0aW5nIHN0YXR1cyBpbmZvcm1hdGlvbi4gU2VwYXJhdGUgY2xhc3MgaXMgbmVlZGVkIHRvIGJlIGFibGUgdG8gZmluZSBjb250cm9sIGJlaGF2aW9yIG9mIHRoZSBzdGF0dXMgcmVwb3J0LiBXaGljaCB0aGVuIGNhbiBiZSBhY2Nlc3NlZCBqdXN0IGFzIGNsYXNzIHByb3BlcnR5Lg0KDQoqKmxpYnZpcnRfZXJyb3JfdG9fbm9uZSoqIGlzIGV4YW1wbGUgb2YgdGhlIGRlY29yYXRvciB3aGljaCBjaGFuZ2VzIGxpYnZpcnRlcnJvciBleGNlcHRpb25zIGludG8gbm9uZSBvdXRwdXQuIFN1aXRhYmxlIHdoZW4geW91IHRyeSB0byBnZXQgb2JqZWN0IGZyb20gbGlidmlydCB3aGljaCBkb2VzIG5vdCBleGlzdC4gV2Ugc2hvdWxkIGdldCBOb25lIGluc3RlYWQuDQoNCioqY29tcGFyZV9kaWN0cyoqIGFuZCAqKmNvbXBhcmVfbGlzdHMqKiBwcm92aWRlZCBhcyByZWN1cnNpdmUgb2JqZWN0cyBjb21wYXJzaW9uIGZ1bmN0aW9ucyB3aGljaCBkb2VzIG5vdCByZXF1aXJlIGV4dGVybmFsIGxpYnJhcmllcy4NCg0KKipkYXRhX2FzX2RpY3QqKiBpcyB1c2VkIHRvIHByb2R1Y2Ugbm9ybWFsIGRpY3QgZnJvbSB0aGUgZGF0YWNsYXNzIG9iamVjdC4gRG9uZSByZWN1cnNpdmVseSwgc28gYXMgcmVzdWx0IHdlIGdldCBjb25zdW1hYmxlIGJ5IGFuc2libGUgZGljdC4NCg0KKiptb2R1bGUvdmlydF9zZWNyZXQucHkqKg0KDQpUaGlzIGlzIGEgbmV3IGV4YW1wbGUgbW9kdWxlIHdoaWNoIHdhcyBtaXNzaW5nIGluIHRoaXMgY29sbGVjdGlvbi4gSXQgY2FuIG1hbmFnZSBsaWJ2aXJ0IHNlY3JldHMuIElsbHVzdHJhdGUgaG93IGFib3ZlIGNvbW1vbiBjbGFzc2VzIGNhbiBiZSB1c2VkIHRvIHdyaXRlIGEgbW9kdWxlLCBhZGQgZGlmZiBhbmQgY2hlY2sgc3VwcG9ydC4NCg0KQWxsIGRlZmluZWQgb3IgcmVjZWl2ZWQgdmFsdWVzIGNvbnZlcnRlZCB0byB0aGUgZGF0YWNsYXNzICoqU2VjcmV0RWxlbWVudCoqIHdoaWNoIGNhbiBiZSBjb21wYXJlZCBhbmQgdXNlZCB0byBwcm9kdWNlIGRpZmYuIEl0IGhhcyB4bWwgcmVwcmVzZW50YXRpb24gdXNlZCBieSBsaWJ2aXJ0IGFwaQ0KDQoqKlNlY3JldFVzYWdlKiogcHJvdmlkZWQgYXMgZXhtYXBsZSwgaXQgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiBzdHIgaW4gYXBwcm9wcmlhdGUgZmlsZWQgb2YgKipTZWNyZXRFbGVtZW50KioNCg0KUmVjZW50IHB5dGhvbiB2ZXJzaW9uIHdhcyB0YWtlbiBkdWUgdG8gbWluaW1hbCBweXRob24gdmVyc2lvbiBzdXBwb3J0ZWQgYnkgYW5zaWJsZS1jb3JlPT0yLjE3IGlzIDMuMTAuIEJ1dCBldmVuIDIuMTYgcmVxdWlyZXMgMy4xMC0zLjEyDQoNClRlc3RzIGEgYmFzaWMgYXMgSSBkb24ndCBrbm93IGlmIHRoaXMgbW9kdWxlIGlzIHN1aXRhYmxlIG9yIG5vdC4gSSBtaWdodCBuZWVkIGhlbHAgYW5kIGd1aWRhbmNlIGluIHRoaXMgcHJvY2Vzcy4NCg0KUC5TLiBTb3JyeSBpZiBJIHVzZWQgaW5jb3JyZWN0IGFwcHJvYWNoIG9yIHNvbWV0aGluZyB3aGljaCB3YXMgbm90IGFncmVlZCwgSSBkb24ndCBrbm93IHRoZSBvdGhlciB3YXkgdG8gYXNrIGEgcXVlc3Rpb24gb3IgcHVycG9zZSBhIHN1Z2dlc3Rpb24gZXhjZXB0IGJ5IHNlbmRpbmcgYSBQUi4g patchset: c340bb59a3c68f12eb7299da3b3faa9bbb527a71 pipeline: third-party-check playbook_context: playbook_projects: trusted/project_0/github.com/ansible/zuul-config: canonical_name: github.com/ansible/zuul-config checkout: master commit: 3e667f4d3a5f14620cbe10b052c77698fa883471 trusted/project_1/opendev.org/zuul/zuul-jobs: canonical_name: opendev.org/zuul/zuul-jobs checkout: master commit: 180cc64e08431e99c091bc7f456f715263906b94 untrusted/project_0/github.com/ansible/ansible-zuul-jobs: canonical_name: github.com/ansible/ansible-zuul-jobs checkout: master commit: e7ff49de526383ec1701720d6aed921160ec3931 untrusted/project_1/github.com/ansible/zuul-config: canonical_name: github.com/ansible/zuul-config checkout: master commit: 3e667f4d3a5f14620cbe10b052c77698fa883471 untrusted/project_2/opendev.org/zuul/zuul-jobs: canonical_name: opendev.org/zuul/zuul-jobs checkout: master commit: 180cc64e08431e99c091bc7f456f715263906b94 playbooks: - path: untrusted/project_0/github.com/ansible/ansible-zuul-jobs/playbooks/ansible-galaxy-importer/run.yaml roles: - checkout: master checkout_description: playbook branch link_name: ansible/playbook_0/role_0/zuul-jobs link_target: untrusted/project_0/github.com/ansible/ansible-zuul-jobs role_path: ansible/playbook_0/role_0/zuul-jobs/roles - checkout: master checkout_description: project default branch link_name: ansible/playbook_0/role_1/zuul-config link_target: untrusted/project_1/github.com/ansible/zuul-config role_path: ansible/playbook_0/role_1/zuul-config/roles - checkout: master checkout_description: project default branch link_name: ansible/playbook_0/role_2/zuul-jobs link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs role_path: ansible/playbook_0/role_2/zuul-jobs/roles post_review: false project: canonical_hostname: github.com canonical_name: github.com/ansible-collections/community.libvirt name: ansible-collections/community.libvirt short_name: community.libvirt src_dir: src/github.com/ansible-collections/community.libvirt projects: github.com/ansible-collections/community.libvirt: canonical_hostname: github.com canonical_name: github.com/ansible-collections/community.libvirt checkout: main checkout_description: zuul branch commit: c340bb59a3c68f12eb7299da3b3faa9bbb527a71 name: ansible-collections/community.libvirt required: false short_name: community.libvirt src_dir: src/github.com/ansible-collections/community.libvirt github.com/ansible-network/releases: canonical_hostname: github.com canonical_name: github.com/ansible-network/releases checkout: master checkout_description: project default branch commit: 646b310655c531e4904be07f4ff8fc3a29addd09 name: ansible-network/releases required: true short_name: releases src_dir: src/github.com/ansible-network/releases ref: refs/pull/227/head resources: {} tenant: ansible timeout: 1800 topic: null voting: true zuul_use_fetch_output: true