def _collectors(module,
                all_collector_classes=None,
                minimal_gather_subset=None):
    gather_subset = module.params.get('gather_subset')
    if all_collector_classes is None:
        all_collector_classes = ALL_COLLECTOR_CLASSES
    if minimal_gather_subset is None:
        minimal_gather_subset = frozenset([])

    collector_classes = \
        collector.collector_classes_from_gather_subset(all_collector_classes=all_collector_classes,
                                                       minimal_gather_subset=minimal_gather_subset,
                                                       gather_subset=gather_subset)

    collectors = []
    for collector_class in collector_classes:
        collector_obj = collector_class()
        collectors.append(collector_obj)

    # Add a collector that knows what gather_subset we used so it it can provide a fact
    collector_meta_data_collector = \
        ansible_collector.CollectorMetaDataCollector(gather_subset=gather_subset,
                                                     module_setup=True)
    collectors.append(collector_meta_data_collector)

    return collectors
Beispiel #2
0
def _collectors(module,
                all_collector_classes=None,
                minimal_gather_subset=None):
    gather_subset = module.params.get('gather_subset')
    if all_collector_classes is None:
        all_collector_classes = ALL_COLLECTOR_CLASSES
    if minimal_gather_subset is None:
        minimal_gather_subset = frozenset([])

    collector_classes = \
        collector.collector_classes_from_gather_subset(all_collector_classes=all_collector_classes,
                                                       minimal_gather_subset=minimal_gather_subset,
                                                       gather_subset=gather_subset)

    collectors = []
    for collector_class in collector_classes:
        collector_obj = collector_class()
        collectors.append(collector_obj)

    # Add a collector that knows what gather_subset we used so it it can provide a fact
    collector_meta_data_collector = \
        ansible_collector.CollectorMetaDataCollector(gather_subset=gather_subset,
                                                     module_setup=True)
    collectors.append(collector_meta_data_collector)

    return collectors
Beispiel #3
0
def main():
    module = AnsibleModule(
        argument_spec=dict(
            gather_subset=dict(default=["all"], required=False, type='list'),
            gather_timeout=dict(default=10, required=False, type='int'),
            filter=dict(default="*", required=False),
            fact_path=dict(default='/etc/ansible/facts.d', required=False, type='path'),
        ),
        supports_check_mode=True,
    )

    gather_subset = module.params['gather_subset']
    gather_timeout = module.params['gather_timeout']
    filter_spec = module.params['filter']

    # TODO: this mimics existing behavior where gather_subset=["!all"] actually means
    #       to collect nothing except for the below list
    # TODO: decide what '!all' means, I lean towards making it mean none, but likely needs
    #       some tweaking on how gather_subset operations are performed
    minimal_gather_subset = frozenset(['apparmor', 'caps', 'cmdline', 'date_time',
                                       'distribution', 'dns', 'env', 'fips', 'local', 'lsb',
                                       'pkg_mgr', 'platform', 'python', 'selinux',
                                       'service_mgr', 'ssh_pub_keys', 'user'])

    all_collector_classes = default_collectors.collectors

    collector_classes = \
        collector.collector_classes_from_gather_subset(
            all_collector_classes=all_collector_classes,
            minimal_gather_subset=minimal_gather_subset,
            gather_subset=gather_subset,
            gather_timeout=gather_timeout)

    # print('collector_classes: %s' % pprint.pformat(collector_classes))

    namespace = PrefixFactNamespace(namespace_name='ansible',
                                    prefix='ansible_')

    collectors = []
    for collector_class in collector_classes:
        collector_obj = collector_class(namespace=namespace)
        collectors.append(collector_obj)

    # Add a collector that knows what gather_subset we used so it it can provide a fact
    collector_meta_data_collector = \
        CollectorMetaDataCollector(gather_subset=gather_subset,
                                   module_setup=True)
    collectors.append(collector_meta_data_collector)

    # print('collectors: %s' % pprint.pformat(collectors))

    fact_collector = \
        AnsibleFactCollector(collectors=collectors,
                             filter_spec=filter_spec)

    facts_dict = fact_collector.collect(module=module)

    module.exit_json(**facts_dict)
Beispiel #4
0
 def _classes(self,
              all_collector_classes=None,
              valid_subsets=None,
              minimal_gather_subset=None,
              gather_subset=None,
              gather_timeout=None):
     return collector.collector_classes_from_gather_subset(all_collector_classes=all_collector_classes,
                                                           valid_subsets=valid_subsets,
                                                           minimal_gather_subset=minimal_gather_subset,
                                                           gather_subset=gather_subset,
                                                           gather_timeout=gather_timeout)
Beispiel #5
0
 def _classes(self,
              all_collector_classes=None,
              valid_subsets=None,
              minimal_gather_subset=None,
              gather_subset=None,
              gather_timeout=None):
     return collector.collector_classes_from_gather_subset(all_collector_classes=all_collector_classes,
                                                           valid_subsets=valid_subsets,
                                                           minimal_gather_subset=minimal_gather_subset,
                                                           gather_subset=gather_subset,
                                                           gather_timeout=gather_timeout)
Beispiel #6
0
 def _classes(self,
              all_collector_classes=None,
              valid_subsets=None,
              minimal_gather_subset=None,
              gather_subset=None,
              gather_timeout=None,
              platform_info=None):
     platform_info = platform_info or {'system': 'Linux'}
     return collector.collector_classes_from_gather_subset(all_collector_classes=all_collector_classes,
                                                           valid_subsets=valid_subsets,
                                                           minimal_gather_subset=minimal_gather_subset,
                                                           gather_subset=gather_subset,
                                                           gather_timeout=gather_timeout,
                                                           platform_info=platform_info)
 def _classes(self,
              all_collector_classes=None,
              valid_subsets=None,
              minimal_gather_subset=None,
              gather_subset=None,
              gather_timeout=None,
              platform_info=None):
     platform_info = platform_info or {'system': 'Linux'}
     return collector.collector_classes_from_gather_subset(all_collector_classes=all_collector_classes,
                                                           valid_subsets=valid_subsets,
                                                           minimal_gather_subset=minimal_gather_subset,
                                                           gather_subset=gather_subset,
                                                           gather_timeout=gather_timeout,
                                                           platform_info=platform_info)
def get_ansible_collector(all_collector_classes,
                          namespace=None,
                          filter_spec=None,
                          gather_subset=None,
                          gather_timeout=None,
                          minimal_gather_subset=None):

    filter_spec = filter_spec or '*'
    gather_subset = gather_subset or ['all']
    gather_timeout = gather_timeout or timeout.DEFAULT_GATHER_TIMEOUT
    minimal_gather_subset = minimal_gather_subset or frozenset()

    collector_classes = \
        collector.collector_classes_from_gather_subset(
            all_collector_classes=all_collector_classes,
            minimal_gather_subset=minimal_gather_subset,
            gather_subset=gather_subset,
            gather_timeout=gather_timeout)

    collectors = []
    for collector_class in collector_classes:
        collector_obj = collector_class(namespace=namespace)
        collectors.append(collector_obj)

    # Add a collector that knows what gather_subset we used so it it can provide a fact
    collector_meta_data_collector = \
        CollectorMetaDataCollector(gather_subset=gather_subset,
                                   module_setup=True)
    collectors.append(collector_meta_data_collector)

    fact_collector = \
        AnsibleFactCollector(collectors=collectors,
                             filter_spec=filter_spec,
                             namespace=namespace)

    return fact_collector
def get_ansible_collector(all_collector_classes,
                          namespace=None,
                          filter_spec=None,
                          gather_subset=None,
                          gather_timeout=None,
                          minimal_gather_subset=None):

    filter_spec = filter_spec or '*'
    gather_subset = gather_subset or ['all']
    gather_timeout = gather_timeout or timeout.DEFAULT_GATHER_TIMEOUT
    minimal_gather_subset = minimal_gather_subset or frozenset()

    collector_classes = \
        collector.collector_classes_from_gather_subset(
            all_collector_classes=all_collector_classes,
            minimal_gather_subset=minimal_gather_subset,
            gather_subset=gather_subset,
            gather_timeout=gather_timeout)

    collectors = []
    for collector_class in collector_classes:
        collector_obj = collector_class(namespace=namespace)
        collectors.append(collector_obj)

    # Add a collector that knows what gather_subset we used so it it can provide a fact
    collector_meta_data_collector = \
        CollectorMetaDataCollector(gather_subset=gather_subset,
                                   module_setup=True)
    collectors.append(collector_meta_data_collector)

    fact_collector = \
        AnsibleFactCollector(collectors=collectors,
                             filter_spec=filter_spec,
                             namespace=namespace)

    return fact_collector