mirror of
https://github.com/ansible/awx.git
synced 2026-02-16 02:30:01 -03:30
Some light implimentation details for basic fact caching and collection
This commit is contained in:
37
awx/plugins/library/scan_packages.py
Executable file
37
awx/plugins/library/scan_packages.py
Executable file
@@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
import os
|
||||
from ansible.module_utils.basic import *
|
||||
|
||||
def rpm_package_list():
|
||||
import rpm
|
||||
trans_set = rpm.TransactionSet()
|
||||
installed_packages = []
|
||||
for package in trans_set.dbMatch():
|
||||
installed_packages.append({'name': package['name'],
|
||||
'version': "%s" % (package['version'])})
|
||||
return installed_packages
|
||||
|
||||
def deb_package_list():
|
||||
import apt
|
||||
apt_cache = apt.Cache()
|
||||
installed_packages = []
|
||||
apt_installed_packages = [pk for pk in apt_cache.keys() if apt_cache[pk].is_installed]
|
||||
for package in apt_installed_packages:
|
||||
installed_packages.append({'name': package,
|
||||
'version': apt_cache[package].installed.version})
|
||||
return installed_packages
|
||||
|
||||
def main():
|
||||
module = AnsibleModule(
|
||||
argument_spec = dict())
|
||||
|
||||
packages = []
|
||||
if os.path.exists("/etc/redhat-release"):
|
||||
packages = rpm_package_list()
|
||||
elif os.path.exists("/etc/os-release"):
|
||||
packages = deb_package_list()
|
||||
results = dict(ansible_facts=dict(packages=packages))
|
||||
module.exit_json(**results)
|
||||
|
||||
main()
|
||||
Reference in New Issue
Block a user