Beispiel #1
0
    def facts(self, name=None, value=None, **kwargs):
        """Query for facts limited by either name, value and/or query.

        :param name: (Optional) Only return facts that match this name.
        :type name: :obj:`string`
        :param value: (Optional) Only return facts of `name` that\
            match this value. Use of this parameter requires the `name`\
            parameter be set.
        :type value: :obj:`string`
        :param \*\*kwargs: The rest of the keyword arguments are passed
            to the _query function

        :returns: A generator yielding Facts.
        :rtype: :class:`pypuppetdb.types.Fact`
        """
        if name is not None and value is not None:
            path = '{0}/{1}'.format(name, value)
        elif name is not None and value is None:
            path = name
        else:
            path = None

        facts = self._query('facts', path=path, **kwargs)
        for fact in facts:
            yield Fact(node=fact['certname'],
                       name=fact['name'],
                       value=fact['value'],
                       environment=fact['environment'])
Beispiel #2
0
def test_fact():
    fact = Fact('node1.puppet.board', 'osfamily', 'Debian')
    assert fact.node == 'node1.puppet.board'
    assert fact.name == 'osfamily'
    assert fact.value == 'Debian'
    assert str(fact) == str('osfamily/node1.puppet.board')
    assert repr(fact) == str('Fact: osfamily/node1.puppet.board')
Beispiel #3
0
    def test_fact(self):
        fact = Fact('node', 'osfamily', 'Debian')

        assert fact.node == 'node'
        assert fact.name == 'osfamily'
        assert fact.value == 'Debian'
        assert str(fact) == str('osfamily/node')
        assert unicode(fact) == unicode('osfamily/node')
        assert repr(fact) == str('Fact: osfamily/node')
Beispiel #4
0
    def test_fact(self):
        fact = Fact('node', 'osfamily', 'Debian', 'production')

        assert fact.node == 'node'
        assert fact.name == 'osfamily'
        assert fact.value == 'Debian'
        assert fact.environment == 'production'
        assert str(fact) == str('osfamily/node')
        assert str(fact) == str('osfamily/node')
        assert repr(fact) == str('Fact: osfamily/node')
def mock_puppetdb_inventory_facts(mocker):
    nodes = ['node1', 'node2']
    facts_list = [
        Fact(
            node=node,
            name=fact_name,
            value='foobar',
            environment='production',
        ) for node in nodes for fact_name in inventory_facts()[1]  # fact names
    ]
    return mocker.patch.object(app.puppetdb,
                               'facts',
                               return_value=iter(facts_list))
Beispiel #6
0
    def facts(self, name=None, value=None, query=None):
        """Query for facts limited by either name, value and/or query.
        This will yield a single Fact object at a time."""

        log.debug('{0}, {1}, {2}'.format(name, value, query))
        if name is not None and value is not None:
            path = '{0}/{1}'.format(name, value)
        elif name is not None and value is None:
            path = name
        elif name is None and value is None and query is not None:
            path = None
        else:
            log.debug("We want to query for all facts.")
            query = ''
            path = None

        facts = self._query('facts', path=path, query=query)
        for fact in facts:
            yield Fact(
                fact['certname'],
                fact['name'],
                fact['value'],
            )