Source code for insights.specs.datasources.container.nginx_conf

"""
Datasources to collect the nginx configuration files from containers
"""
from insights.core.context import HostContext
from insights.core.exceptions import SkipComponent
from insights.core.plugins import datasource
from insights.core.spec_factory import container_execute
from insights.specs import Specs
from insights.specs.datasources.container import running_rhel_containers


[docs] class LocalSpecs(Specs): """ Local specs used only by nginx container datasources """ container_find_etc_opt_conf = container_execute(running_rhel_containers, "find /etc /opt -name '*.conf'")
[docs] @datasource(LocalSpecs.container_find_etc_opt_conf, HostContext) def nginx_conf(broker): """ Returns a list of tuple of (<podman|docker>, container_id, conf_path, image) """ find_list = broker[LocalSpecs.container_find_etc_opt_conf] ret = [] for conf_list in find_list: for conf_path in conf_list.content: # FIXME: refine the path filter if 'etc/nginx' in conf_path or 'rh-nginx' in conf_path: ret.append((conf_list.image, conf_list.engine, conf_list.container_id, conf_path)) if ret: # Return list of tuple: # - (image, <podman|docker>, container_id, conf_path) return ret raise SkipComponent