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'])
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')
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')
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))
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'], )