Exemplo n.º 1
0
    def parse_sources(self, cache=False):
        ''' iterate over inventory sources and parse each one to populate it'''

        parsed = False
        # allow for multiple inventory parsing
        for source in self._sources:

            if source:
                if ',' not in source:
                    source = unfrackpath(source, follow=False)
                parse = self.parse_source(source, cache=cache)
                if parse and not parsed:
                    parsed = True

        if parsed:
            # do post processing
            self._inventory.reconcile_inventory()
        else:
            if C.INVENTORY_UNPARSED_IS_FAILED:
                raise AnsibleError("No inventory was parsed, please check your configuration and options.")
            else:
                display.warning("No inventory was parsed, only implicit localhost is available")

        for group in self.groups.values():
            group.vars = combine_vars(group.vars, get_vars_from_inventory_sources(self._loader, self._sources, [group], 'inventory'))
        for host in self.hosts.values():
            host.vars = combine_vars(host.vars, get_vars_from_inventory_sources(self._loader, self._sources, [host], 'inventory'))
Exemplo n.º 2
0
    def host_vars(self, host, loader, sources):
        ''' requires host object '''
        hvars = host.get_vars()

        if self.get_option('use_vars_plugins'):
            hvars = combine_vars(
                hvars,
                get_vars_from_inventory_sources(loader, sources, [host],
                                                'all'))

        return hvars
Exemplo n.º 3
0
    def host_groupvars(self, host, loader, sources):
        ''' requires host object '''
        gvars = get_group_vars(host.get_groups())

        if self.get_option('use_vars_plugins'):
            gvars = combine_vars(
                gvars,
                get_vars_from_inventory_sources(loader, sources,
                                                host.get_groups(), 'all'))

        return gvars
Exemplo n.º 4
0
    def _get_group_variables(self, group):

        # get info from inventory source
        res = group.get_vars()

        # Always load vars plugins
        res = combine_vars(res, get_vars_from_inventory_sources(self.loader, self.inventory._sources, [group], 'all'))
        if context.CLIARGS['basedir']:
            res = combine_vars(res, get_vars_from_path(self.loader, context.CLIARGS['basedir'], [group], 'all'))

        if group.priority != 1:
            res['ansible_group_priority'] = group.priority

        return self._remove_internal(res)
Exemplo n.º 5
0
    def _get_host_variables(self, host):

        if context.CLIARGS['export']:
            # only get vars defined directly host
            hostvars = host.get_vars()

            # Always load vars plugins
            hostvars = combine_vars(hostvars, get_vars_from_inventory_sources(self.loader, self.inventory._sources, [host], 'all'))
            if context.CLIARGS['basedir']:
                hostvars = combine_vars(hostvars, get_vars_from_path(self.loader, context.CLIARGS['basedir'], [host], 'all'))
        else:
            # get all vars flattened by host, but skip magic hostvars
            hostvars = self.vm.get_vars(host=host, include_hostvars=False, stage='all')

        return self._remove_internal(hostvars)
Exemplo n.º 6
0
    def _get_group_variables(self, group):

        # get info from inventory source
        res = group.get_vars()

        res = combine_vars(
            res,
            get_vars_from_inventory_sources(self.loader,
                                            self.inventory._sources, [group],
                                            'inventory'))

        if group.priority != 1:
            res['ansible_group_priority'] = group.priority

        return self._remove_internal(res)
Exemplo n.º 7
0
 def _plugins_inventory(entities):
     ''' merges all entities by inventory source '''
     return get_vars_from_inventory_sources(
         self._loader, self._inventory._sources, entities, stage)