Some light implimentation details for basic fact caching and collection

This commit is contained in:
Matthew Jones
2015-02-19 11:27:40 -05:00
parent 6e18c6d3c0
commit fed4262ee2
6 changed files with 102 additions and 2 deletions

View 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()