* puppetboard/app.py: Implementing and utilizing the new PyPuppetDB QueryBuilder This fixes https://github.com/voxpupuli/puppetboard/issues/239 Replacing all the directly declared query strings with various objects from the pypuppetdb.QueryBuilder sub-module. Using this Object-Oriented functionality it is programmatically safer to construct large, complex queries. * puppetboard/app.py: Simplifying the environment logic in `node()` The query in this function will now always be an `AndOperator()` object. If a specific environment is queried then that constraint is added. The resulting query difference will be: env == 'production' `["and",["=", "environment", "production"],["=", "certname", "puppet01.hammertime.local"]]` env == '*' `["and",["=", "certname", "puppet01.hammertime.local"]]` * puppetboard/app.py: Minor code simplification for more accurate results. In index() adding the configured OVERVIEW_FILTER query after adding the previous constraints to num_nodes_query In inventory() wrapping fact_query in an AndOperator() regardless of environment. This update makes it more common with other endpoints that only add environment constraints if an environment is selected. * requirements.txt: Bumping the pypuppetdb version requirement * requirements.txt: Bumping pypuppetdb version to new requirement. * puppetboard/app.py: Fixing module load error.
1.5 KiB
1.5 KiB