# pypuppetdb
[![PyPi Version](https://img.shields.io/pypi/v/pypuppetdb)](https://pypi.org/project/pypuppetdb/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pypuppetdb)](https://pypi.org/project/pypuppetdb/)
[![PyPi Downloads](https://img.shields.io/pypi/dm/pypuppetdb)](https://pypi.org/project/pypuppetdb/)
![Tests Status](https://github.com/voxpupuli/pypuppetdb/workflows/tests%20(unit)/badge.svg)
[![codecov](https://codecov.io/gh/voxpupuli/pypuppetdb/branch/master/graph/badge.svg?token=mOOj805A15)](https://codecov.io/gh/voxpupuli/pypuppetdb)
[![Documentation Status](https://readthedocs.org/projects/pypuppetdb/badge/?version=latest)](https://pypuppetdb.readthedocs.io/en/latest/?badge=latest)
[![By Voxpupuli](https://img.shields.io/badge/by-Vox%20Pupuli%20%F0%9F%A6%8A-ef902f.svg)](https://voxpupuli.org)
This library is a thin wrapper around the REST API providing some
convenience functions and objects to request and hold data from
PuppetDB.
## Requirements
* PuppetDB 5.2 or newer
* Python 3.7-3.11
(For support of the older PuppetDB or Python versions please check previous library version.)
## Installation
You can install this package from PyPI with:
```bash
pip install pypuppetdb
```
## Documentation
The [user guide, API reference and a developer guide is available on Read the Docs](https://pypuppetdb.readthedocs.io/en/latest/).
## Getting Help
For bug reports you can file an
[issue](https://github.com/voxpupuli/pypuppetdb/issues). If you need
help with something feel free to pop by \#voxpupuli or the \#puppetboard on
[Freenode](https://freenode.net) or [Vox Pupuli on Slack](https://puppetcommunity.slack.com/messages/voxpupuli/).
## Contributing
Please see the [contribution guide here](https://github.com/voxpupuli/pypuppetdb/blob/master/CONTRIBUTING.md).
## License
This project is licensed under the [Apache v2.0 License](https://github.com/voxpupuli/pypuppetdb/blob/master/LICENSE).
# Changelog
All notable changes to this project will be documented in this file.
## [3.2.0](https://github.com/voxpupuli/pypuppetdb/tree/3.2.0) (2023-10-08)
[Full Changelog](https://github.com/voxpupuli/pypuppetdb/compare/3.1.0...3.2.0)
**Merged pull requests:**
- CI: Run on PRs and merges [\#252](https://github.com/voxpupuli/pypuppetdb/pull/252) ([bastelfreak](https://github.com/bastelfreak))
- purge not required empty newlines [\#242](https://github.com/voxpupuli/pypuppetdb/pull/242) ([bastelfreak](https://github.com/bastelfreak))
- add dummy CI job we can depend on [\#241](https://github.com/voxpupuli/pypuppetdb/pull/241) ([bastelfreak](https://github.com/bastelfreak))
- add dependabot config [\#240](https://github.com/voxpupuli/pypuppetdb/pull/240) ([bastelfreak](https://github.com/bastelfreak))
- Update sphinx requirement from \<6.0,\>=4.3 to \>=4.3,\<8.0 [\#239](https://github.com/voxpupuli/pypuppetdb/pull/239) ([dependabot[bot]](https://github.com/apps/dependabot))
- Update urllib3 requirement from \<2.0,\>=1.26 to \>=1.26,\<3.0 [\#238](https://github.com/voxpupuli/pypuppetdb/pull/238) ([dependabot[bot]](https://github.com/apps/dependabot))
- Modernize the code [\#235](https://github.com/voxpupuli/pypuppetdb/pull/235) ([gdubicki](https://github.com/gdubicki))
## [3.1.0](https://github.com/voxpupuli/pypuppetdb/tree/3.1.0) (2022-10-27)
- Confirm support for Python 3.11 (final).
3.0.0
-----
This is a maintenance release.
The major version is bumped because of:
- dropped support for PuppetDBs < 5.2.0 (Puppet 4 has reached its end-of-life in October 2018),
- dropped support for Python 3.6 (end-of-life in December 2021),
- the required [Requests](https://requests.readthedocs.io/en/latest/) version bumped to the current latest.
2.5.2
-----
- Remove harmful terminology, following [the Puppetlabs components name changes](https://puppet.com/blog/removing-harmful-terminology-from-our-products/) ([#216](https://github.com/voxpupuli/pypuppetdb/pull/216))
- Use built-in unittest.mock instead of mock ([#228](https://github.com/voxpupuli/pypuppetdb/pull/228))
- Build and test dependencies updates.
Thanks to the following contributors of this release: [@pgajdos](https://github.com/pgajdos).
2.5.1
-----
- Fix TypeError exception thrown by `BaseAPI._query()` when using debug logging.
Thanks to Ben Roberts for his contribution!
2.5.0
-----
- Python 3.10 added as a supported version
([#213](https://github.com/voxpupuli/pypuppetdb/pull/213))
2.4.0
-----
- Added PQL support with `pql()` method
(PR [#201](https://github.com/voxpupuli/pypuppetdb/pull/201),
fixes [#167](https://github.com/voxpupuli/pypuppetdb/issues/167))
- Added ability to specify additional queries when using `Node.facts()`
([#127](https://github.com/voxpupuli/pypuppetdb/pull/127))
- Improve the documentation (even more ;))
(PR [#206](https://github.com/voxpupuli/pypuppetdb/issues/206),
fixes [#143](https://github.com/voxpupuli/pypuppetdb/issues/143)
and [#129](https://github.com/voxpupuli/pypuppetdb/issues/129))
- Fixed creating `Edge` objects
([#202](https://github.com/voxpupuli/pypuppetdb/issues/202))
- Python 3.9 added as a supported version
([#203](https://github.com/voxpupuli/pypuppetdb/pull/203))
2.3.0
-----
- Added support for `with` statement
([#185](https://github.com/voxpupuli/pypuppetdb/pull/185))
- Added explicit `disconnect()` method
([#185](https://github.com/voxpupuli/pypuppetdb/pull/185))
- Improved the documentation on [Read the Docs](https://pypuppetdb.readthedocs.io/en/latest/)
and in the project's README
([#190](https://github.com/voxpupuli/pypuppetdb/pull/190))
2.2.0
-----
- Loosen requirements and drop six
2.1.0
-----
- Bugfix: Fixed <span class="title-ref">metric()</span> function to
query the new v2 endpoint based on Jolokia
(<https://jolokia.org/reference/html/protocol.html>)
- Added a new parameter
<span class="title-ref">metric\_api\_version</span> to the
<span class="title-ref">BaseAPI()</span> constructor that allows
changing the version of the <span class="title-ref">metric</span>
API being queried. Valid values are
<span class="title-ref">'v1'</span> for PuppetDB \<= 6.9.0,
<span class="title-ref">'v2'</span> for PuppetDB \>= 6.9.1 or
<span class="title-ref">None</span> which defaults to
<span class="title-ref">'v2'</span>.
- Added a mew parameter <span class="title-ref">version</span> to the
<span class="title-ref">metric()</span> function that allows
overriding the version of the metric API being queried for that
individual call. If nothing is specified it will default to the
<span class="title-ref">self.metric\_api\_version</span> of the
class, else it expects a value of
<span class="title-ref">'v1'</span> or
<span class="title-ref">'v2'</span> same as the
<span class="title-ref">metric\_api\_version</span> class parameter.
- Added new <span class="title-ref">payload</span> parameter to
<span class="title-ref">\_query()</span> to allow users to send
arbitrary payloads with their queries (useful for debugging).
2.0.0
-----
- Dropping old python 2.7/3.5 and ensuring 3 latest versions are
supported
- Adding mypy + cleanup + further removal of python2 code
- Bugfix: Httpretty is not used outside tests and breaks install on
newer python versions for some systems
1.2.0
-----
- Add option to get nodes without using event-counts
- define the project status as stable
- bundle requirements-test.txt in python package
1.1.0
-----
- deduplicate dependencylist
- QueryBuilder.py: Use native data structures for internal
representation
- Add support for the Command API, /pdb/cmd/v1. Added \_cmd alongside
\_query to minimise changes to original code
1.0.0
-----
- Bump dependencies
- QueryBuilder: Added support for FromOperator, arrays and
FromOperator
- New endpoint: status
- POST query in request body
- Simplify JSON encoding for POST
- Upload and publish is built in to setuptools
0.3.3
-----
- Add support for authentication with tokens
- Fix bug with parsing results from inventory endpoint
0.3.2
-----
- Fixed noop puppet runs reporting unchanged instead of noop.
- Fixed unreported nodes shown as 'noop' in puppetdb \> 4.1.0.
- Add Inventory API endpoint for PuppetDB 4.2.0.
- Support for producer field on catalogs, facts and report types.
0.3.1
-----
- Fixed a datetime related bug in
<span class="title-ref">pypuppetdb.api.nodes()</span> that caused
all returned nodes to be an unreported status
0.3.0
-----
- New QueryBuilder module allows users to build PuppetDB queries in an
Object-Oriented fashion.
- Adding support for new fields provided in PuppetDB 4.1.0.
0.2.3
-----
- Removed deprecation of
<span class="title-ref">pypuppetdb.types.Report.events()</span>.
Expanded resource events data timestamps are not parseable.
- Escaping additional path parameters passed to \_url() with
urllib.quote
0.2.2
-----
- Fixed URL Encoding found when querying the specific value of a
macaddress fact.
- Adding support for PuppetDB 4.0.0 information. Namely Adding a
catalog\_uuid attribute to the Catalog type object. Adding code\_id,
catalog\_uuid and cached\_catalog\_status attributes to the Report
type object.
- Removing unneeded sudo option from .travis.yml, this gave
unnecessary warning in the test environment.
- Updating the files under docs/ so
<https://pypuppetdb.readthedocs.org/en/latest/> can be updated
- Deprecating
<span class="title-ref">pypuppetdb.types.Report.events()</span> in
favour of the new events list variable.
- Renaming test-requirements.txt to requirements.txt
0.2.1
-----
- Adding a version comparison utility function using examples provided
in
<http://stackoverflow.com/questions/1714027/version-number-comparison>
- Adding a new variable latest\_report\_hash to the Node object.
Default None but is given a real value from the field of the same
name in the Nodes endpoint available in PuppetDB 3.2 or higher.
- Allowing support for 'GET' AND 'POST' requests in the api \_query()
function. This will allow clients to send requests to the PuppetDB
that are too long for a GEt request query string
- Adding a node field, code\_id, to the Catalog object using the field
of the same name from the Catalogs endpoint (currently unused as of
PuppetDB 3.2.2)
- Adding test cases for new features EXCEPT the GET and POST update.
0.2.0
-----
- Version bump to 0.2.0
- Adding support for v4 of the Query API
- Removing v2 and v3 api functions as per changelog
- pypuppetdb will no longer support multiple API versions, removing
the api\_version attribute from pypuppetdb.connect()
- All clients must remove the api\_version attribute from the connect
function, or the starting number, since it is no longer supported
- Removing all NotImplemented errors in the function of BaseAPI and
filled them with the real code
**New Features**
New endpoints:
- `environments`: `environments()`
- `factsets`: `factsets()`
- `fact-paths`: `fact_paths()`
- `fact-contents`: `fact_contents()`
- `edges`: `edges()`
Changes to Types:
- `pypupperdb.types.Report` now requires `api` to be passed as the
second argument, this allows to directly query for any events that
occurred in this report object. This functionality was proposed and
denied because of backward compatability reasons, since the previous
versions are now removed this is no longer a problem.
- All `pypupperdb.types.*` accept the v4 API information as optional
parameters. These parameters are primarily environment related but
may include additional information if provided from that endpoint.
- Functions appearing inside `pypuppetdb.types` that run queries
against the PuppetDB now accept and passing additional keyword
arguments to the query.
- All `pypuppetdb.BaseAPI` functions pass any received keyword
arguments to the `pypuppetdb.api.__init__._query()` function. This
allows for easy integration with paging functions and parameters.
0.1.1
-----
- Fix the license in our `setup.py`. The license shouldn't be longer
than 200 characters. We were including the full license tripping up
tools like bdist\_rpm.
0.1.0
-----
Significant changes have been made in this release. The complete v3 API
is now supported except for query pagination.
Most changes are backwards compatible except for a change in the SSL
configuration. The previous behaviour was buggy and slightly misleading
in the names the options took:
- `ssl` has been renamed to `ssl_verify` and now defaults to `True`.
- Automatically use HTTPS if `ssl_key` and `ssl_cert` are provided.
For additional instructions about getting SSL to work see the Quickstart
in the documentation.
**Deprecation**
Support for API v2 will be dropped in the 0.2.x release series.
**New features**
The following features are **only** supported for **API v3**.
The `node()` and `nodes()` function have gained the following options:
- `with_status=False`
- `unreported=2`
When `with_status` is set to `True` an additional query will be made
using the `events-count` endpoint scoped to the latest report. This will
result in an additional `events` and `status` keys on the node object.
`status` will be either of `changed`, `unchanged` or `failed` depending
on if `events` contains `successes` or `failures` or none.
By default `unreported` is set to `2`. This is only in effect when
`with_status` is set to `True`. It means that if a node hasn't checked
in for two hours it will get a `status` of `unreported` instead.
New endpoints:
- `events-count`: `events_count()`
- `aggregate-event-counts`: `aggregate_event_counts()`
- `server-time`: `server_time()`
- `version`: `current_version()`
- `catalog`: `catalog()`
New types:
- `pypuppetdb.types.Catalog`
- `pypuppetdb.types.Edge`
Changes to types:
- `pypuppetdb.types.Node` now has:
- `status` defaulting to `None`
- `events` defaulting to `None`
- `unreported_time` defaulting to `None`
0.0.4
-----
Due to a fairly serious bug 0.0.3 was pulled from PyPi minutes after
release.
When a bug was fixed to be able to query for all facts we accidentally
introduced a different bug that caused the `facts()` call on a node to
query for all facts because we were resetting the query.
- Fix a bug where `node.facts()` was causing us to query all facts
because the query to scope our request was being reset.
0.0.3
-----
With the introduction of PuppetDB 1.5 a new API version, v3, was also
introduced. In that same release the old `/experimental` endpoints were
removed, meaning that as of PuppetDB 1.5 with the v2 API you can no
longer get access to reports or events.
In light of this the support for the experimental endpoints has been
completely removed from pypuppetdb. As of this release you can only get
to reports and/or events through v3 of the API.
This release includes preliminary support for the v3 API. Everything
that could be done with v2 plus the experimental endpoints is now
possible on v3. However, more advanced funtionality has not yet been
implemented. That will be the focus of the next release.
- Removed dependency on pytz.
- Fixed the behaviour of `facts()` and `resources()`. We can now
correctly query for all facts or resources.
- Fixed an issue with catalog timestampless nodes.
- Pass along the `timeout` option to `connect()`.
- Added preliminary PuppetDB API v3 support.
- Removed support for the experimental endpoints.
- The `connect()` method defaults to API v3 now.
0.0.2
-----
- Fix a bug in `setup.py` preventing successful installation.
0.0.1
-----
Initial release. Implements most of the v2 API.
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
Raw data
{
"_id": null,
"home_page": "https://github.com/voxpupuli/pypuppetdb",
"name": "pypuppetdb",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7.0",
"maintainer_email": "",
"keywords": "puppet puppetdb",
"author": "Vox Pupuli",
"author_email": "voxpupuli@groups.io",
"download_url": "https://files.pythonhosted.org/packages/b4/8b/7cdb42bfdcb60af0a7f055ffd1916de031f3bf875c3634d31d211d29853c/pypuppetdb-3.2.0.tar.gz",
"platform": null,
"description": "# pypuppetdb\n\n[![PyPi Version](https://img.shields.io/pypi/v/pypuppetdb)](https://pypi.org/project/pypuppetdb/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/pypuppetdb)](https://pypi.org/project/pypuppetdb/)\n[![PyPi Downloads](https://img.shields.io/pypi/dm/pypuppetdb)](https://pypi.org/project/pypuppetdb/)\n![Tests Status](https://github.com/voxpupuli/pypuppetdb/workflows/tests%20(unit)/badge.svg)\n[![codecov](https://codecov.io/gh/voxpupuli/pypuppetdb/branch/master/graph/badge.svg?token=mOOj805A15)](https://codecov.io/gh/voxpupuli/pypuppetdb)\n[![Documentation Status](https://readthedocs.org/projects/pypuppetdb/badge/?version=latest)](https://pypuppetdb.readthedocs.io/en/latest/?badge=latest)\n[![By Voxpupuli](https://img.shields.io/badge/by-Vox%20Pupuli%20%F0%9F%A6%8A-ef902f.svg)](https://voxpupuli.org)\n\nThis library is a thin wrapper around the REST API providing some\nconvenience functions and objects to request and hold data from\nPuppetDB.\n\n## Requirements\n\n* PuppetDB 5.2 or newer\n* Python 3.7-3.11\n\n(For support of the older PuppetDB or Python versions please check previous library version.)\n\n## Installation\n\nYou can install this package from PyPI with:\n\n```bash\npip install pypuppetdb\n```\n\n## Documentation\n\nThe [user guide, API reference and a developer guide is available on Read the Docs](https://pypuppetdb.readthedocs.io/en/latest/).\n\n## Getting Help\n\nFor bug reports you can file an\n[issue](https://github.com/voxpupuli/pypuppetdb/issues). If you need\nhelp with something feel free to pop by \\#voxpupuli or the \\#puppetboard on\n[Freenode](https://freenode.net) or [Vox Pupuli on Slack](https://puppetcommunity.slack.com/messages/voxpupuli/).\n\n## Contributing\n\nPlease see the [contribution guide here](https://github.com/voxpupuli/pypuppetdb/blob/master/CONTRIBUTING.md).\n\n## License\n\nThis project is licensed under the [Apache v2.0 License](https://github.com/voxpupuli/pypuppetdb/blob/master/LICENSE).\n\n# Changelog\n\nAll notable changes to this project will be documented in this file.\n\n## [3.2.0](https://github.com/voxpupuli/pypuppetdb/tree/3.2.0) (2023-10-08)\n\n[Full Changelog](https://github.com/voxpupuli/pypuppetdb/compare/3.1.0...3.2.0)\n\n**Merged pull requests:**\n\n- CI: Run on PRs and merges [\\#252](https://github.com/voxpupuli/pypuppetdb/pull/252) ([bastelfreak](https://github.com/bastelfreak))\n- purge not required empty newlines [\\#242](https://github.com/voxpupuli/pypuppetdb/pull/242) ([bastelfreak](https://github.com/bastelfreak))\n- add dummy CI job we can depend on [\\#241](https://github.com/voxpupuli/pypuppetdb/pull/241) ([bastelfreak](https://github.com/bastelfreak))\n- add dependabot config [\\#240](https://github.com/voxpupuli/pypuppetdb/pull/240) ([bastelfreak](https://github.com/bastelfreak))\n- Update sphinx requirement from \\<6.0,\\>=4.3 to \\>=4.3,\\<8.0 [\\#239](https://github.com/voxpupuli/pypuppetdb/pull/239) ([dependabot[bot]](https://github.com/apps/dependabot))\n- Update urllib3 requirement from \\<2.0,\\>=1.26 to \\>=1.26,\\<3.0 [\\#238](https://github.com/voxpupuli/pypuppetdb/pull/238) ([dependabot[bot]](https://github.com/apps/dependabot))\n- Modernize the code [\\#235](https://github.com/voxpupuli/pypuppetdb/pull/235) ([gdubicki](https://github.com/gdubicki))\n\n## [3.1.0](https://github.com/voxpupuli/pypuppetdb/tree/3.1.0) (2022-10-27)\n\n - Confirm support for Python 3.11 (final).\n\n3.0.0\n-----\nThis is a maintenance release.\n\nThe major version is bumped because of:\n - dropped support for PuppetDBs < 5.2.0 (Puppet 4 has reached its end-of-life in October 2018),\n - dropped support for Python 3.6 (end-of-life in December 2021),\n - the required [Requests](https://requests.readthedocs.io/en/latest/) version bumped to the current latest.\n\n2.5.2\n-----\n - Remove harmful terminology, following [the Puppetlabs components name changes](https://puppet.com/blog/removing-harmful-terminology-from-our-products/) ([#216](https://github.com/voxpupuli/pypuppetdb/pull/216))\n - Use built-in unittest.mock instead of mock ([#228](https://github.com/voxpupuli/pypuppetdb/pull/228))\n - Build and test dependencies updates. \n\nThanks to the following contributors of this release: [@pgajdos](https://github.com/pgajdos).\n\n2.5.1\n-----\n\n - Fix TypeError exception thrown by `BaseAPI._query()` when using debug logging.\n\nThanks to Ben Roberts for his contribution!\n\n2.5.0\n-----\n\n - Python 3.10 added as a supported version\n ([#213](https://github.com/voxpupuli/pypuppetdb/pull/213))\n\n2.4.0\n-----\n\n - Added PQL support with `pql()` method\n (PR [#201](https://github.com/voxpupuli/pypuppetdb/pull/201),\n fixes [#167](https://github.com/voxpupuli/pypuppetdb/issues/167))\n - Added ability to specify additional queries when using `Node.facts()`\n ([#127](https://github.com/voxpupuli/pypuppetdb/pull/127))\n - Improve the documentation (even more ;))\n (PR [#206](https://github.com/voxpupuli/pypuppetdb/issues/206),\n fixes [#143](https://github.com/voxpupuli/pypuppetdb/issues/143)\n and [#129](https://github.com/voxpupuli/pypuppetdb/issues/129))\n - Fixed creating `Edge` objects\n ([#202](https://github.com/voxpupuli/pypuppetdb/issues/202))\n - Python 3.9 added as a supported version\n ([#203](https://github.com/voxpupuli/pypuppetdb/pull/203))\n\n2.3.0\n-----\n\n - Added support for `with` statement\n ([#185](https://github.com/voxpupuli/pypuppetdb/pull/185))\n - Added explicit `disconnect()` method\n ([#185](https://github.com/voxpupuli/pypuppetdb/pull/185))\n - Improved the documentation on [Read the Docs](https://pypuppetdb.readthedocs.io/en/latest/)\n and in the project's README \n ([#190](https://github.com/voxpupuli/pypuppetdb/pull/190))\n\n2.2.0\n-----\n\n - Loosen requirements and drop six\n\n2.1.0\n-----\n\n - Bugfix: Fixed <span class=\"title-ref\">metric()</span> function to\n query the new v2 endpoint based on Jolokia\n (<https://jolokia.org/reference/html/protocol.html>)\n - Added a new parameter\n <span class=\"title-ref\">metric\\_api\\_version</span> to the\n <span class=\"title-ref\">BaseAPI()</span> constructor that allows\n changing the version of the <span class=\"title-ref\">metric</span>\n API being queried. Valid values are\n <span class=\"title-ref\">'v1'</span> for PuppetDB \\<= 6.9.0,\n <span class=\"title-ref\">'v2'</span> for PuppetDB \\>= 6.9.1 or\n <span class=\"title-ref\">None</span> which defaults to\n <span class=\"title-ref\">'v2'</span>.\n - Added a mew parameter <span class=\"title-ref\">version</span> to the\n <span class=\"title-ref\">metric()</span> function that allows\n overriding the version of the metric API being queried for that\n individual call. If nothing is specified it will default to the\n <span class=\"title-ref\">self.metric\\_api\\_version</span> of the\n class, else it expects a value of\n <span class=\"title-ref\">'v1'</span> or\n <span class=\"title-ref\">'v2'</span> same as the\n <span class=\"title-ref\">metric\\_api\\_version</span> class parameter.\n - Added new <span class=\"title-ref\">payload</span> parameter to\n <span class=\"title-ref\">\\_query()</span> to allow users to send\n arbitrary payloads with their queries (useful for debugging).\n\n2.0.0\n-----\n\n - Dropping old python 2.7/3.5 and ensuring 3 latest versions are\n supported\n - Adding mypy + cleanup + further removal of python2 code\n - Bugfix: Httpretty is not used outside tests and breaks install on\n newer python versions for some systems\n\n1.2.0\n-----\n\n - Add option to get nodes without using event-counts\n - define the project status as stable\n - bundle requirements-test.txt in python package\n\n1.1.0\n-----\n\n - deduplicate dependencylist\n - QueryBuilder.py: Use native data structures for internal\n representation\n - Add support for the Command API, /pdb/cmd/v1. Added \\_cmd alongside\n \\_query to minimise changes to original code\n\n1.0.0\n-----\n\n - Bump dependencies\n - QueryBuilder: Added support for FromOperator, arrays and\n FromOperator\n - New endpoint: status\n - POST query in request body\n - Simplify JSON encoding for POST\n - Upload and publish is built in to setuptools\n\n0.3.3\n-----\n\n - Add support for authentication with tokens\n - Fix bug with parsing results from inventory endpoint\n\n0.3.2\n-----\n\n - Fixed noop puppet runs reporting unchanged instead of noop.\n - Fixed unreported nodes shown as 'noop' in puppetdb \\> 4.1.0.\n - Add Inventory API endpoint for PuppetDB 4.2.0.\n - Support for producer field on catalogs, facts and report types.\n\n0.3.1\n-----\n\n - Fixed a datetime related bug in\n <span class=\"title-ref\">pypuppetdb.api.nodes()</span> that caused\n all returned nodes to be an unreported status\n\n0.3.0\n-----\n\n - New QueryBuilder module allows users to build PuppetDB queries in an\n Object-Oriented fashion.\n - Adding support for new fields provided in PuppetDB 4.1.0.\n\n0.2.3\n-----\n\n - Removed deprecation of\n <span class=\"title-ref\">pypuppetdb.types.Report.events()</span>.\n Expanded resource events data timestamps are not parseable.\n - Escaping additional path parameters passed to \\_url() with\n urllib.quote\n\n0.2.2\n-----\n\n - Fixed URL Encoding found when querying the specific value of a\n macaddress fact.\n - Adding support for PuppetDB 4.0.0 information. Namely Adding a\n catalog\\_uuid attribute to the Catalog type object. Adding code\\_id,\n catalog\\_uuid and cached\\_catalog\\_status attributes to the Report\n type object.\n - Removing unneeded sudo option from .travis.yml, this gave\n unnecessary warning in the test environment.\n - Updating the files under docs/ so\n <https://pypuppetdb.readthedocs.org/en/latest/> can be updated\n - Deprecating\n <span class=\"title-ref\">pypuppetdb.types.Report.events()</span> in\n favour of the new events list variable.\n - Renaming test-requirements.txt to requirements.txt\n\n0.2.1\n-----\n\n - Adding a version comparison utility function using examples provided\n in\n <http://stackoverflow.com/questions/1714027/version-number-comparison>\n - Adding a new variable latest\\_report\\_hash to the Node object.\n Default None but is given a real value from the field of the same\n name in the Nodes endpoint available in PuppetDB 3.2 or higher.\n - Allowing support for 'GET' AND 'POST' requests in the api \\_query()\n function. This will allow clients to send requests to the PuppetDB\n that are too long for a GEt request query string\n - Adding a node field, code\\_id, to the Catalog object using the field\n of the same name from the Catalogs endpoint (currently unused as of\n PuppetDB 3.2.2)\n - Adding test cases for new features EXCEPT the GET and POST update.\n\n0.2.0\n-----\n\n - Version bump to 0.2.0\n - Adding support for v4 of the Query API\n - Removing v2 and v3 api functions as per changelog\n - pypuppetdb will no longer support multiple API versions, removing\n the api\\_version attribute from pypuppetdb.connect()\n - All clients must remove the api\\_version attribute from the connect\n function, or the starting number, since it is no longer supported\n - Removing all NotImplemented errors in the function of BaseAPI and\n filled them with the real code\n\n**New Features**\n\nNew endpoints:\n\n - `environments`: `environments()`\n - `factsets`: `factsets()`\n - `fact-paths`: `fact_paths()`\n - `fact-contents`: `fact_contents()`\n - `edges`: `edges()`\n\nChanges to Types:\n\n - `pypupperdb.types.Report` now requires `api` to be passed as the\n second argument, this allows to directly query for any events that\n occurred in this report object. This functionality was proposed and\n denied because of backward compatability reasons, since the previous\n versions are now removed this is no longer a problem.\n - All `pypupperdb.types.*` accept the v4 API information as optional\n parameters. These parameters are primarily environment related but\n may include additional information if provided from that endpoint.\n - Functions appearing inside `pypuppetdb.types` that run queries\n against the PuppetDB now accept and passing additional keyword\n arguments to the query.\n - All `pypuppetdb.BaseAPI` functions pass any received keyword\n arguments to the `pypuppetdb.api.__init__._query()` function. This\n allows for easy integration with paging functions and parameters.\n\n0.1.1\n-----\n\n - Fix the license in our `setup.py`. The license shouldn't be longer\n than 200 characters. We were including the full license tripping up\n tools like bdist\\_rpm.\n\n0.1.0\n-----\n\nSignificant changes have been made in this release. The complete v3 API\nis now supported except for query pagination.\n\nMost changes are backwards compatible except for a change in the SSL\nconfiguration. The previous behaviour was buggy and slightly misleading\nin the names the options took:\n\n - `ssl` has been renamed to `ssl_verify` and now defaults to `True`.\n - Automatically use HTTPS if `ssl_key` and `ssl_cert` are provided.\n\nFor additional instructions about getting SSL to work see the Quickstart\nin the documentation.\n\n**Deprecation**\n\nSupport for API v2 will be dropped in the 0.2.x release series.\n\n**New features**\n\nThe following features are **only** supported for **API v3**.\n\nThe `node()` and `nodes()` function have gained the following options:\n\n - `with_status=False`\n - `unreported=2`\n\nWhen `with_status` is set to `True` an additional query will be made\nusing the `events-count` endpoint scoped to the latest report. This will\nresult in an additional `events` and `status` keys on the node object.\n`status` will be either of `changed`, `unchanged` or `failed` depending\non if `events` contains `successes` or `failures` or none.\n\nBy default `unreported` is set to `2`. This is only in effect when\n`with_status` is set to `True`. It means that if a node hasn't checked\nin for two hours it will get a `status` of `unreported` instead.\n\nNew endpoints:\n\n - `events-count`: `events_count()`\n - `aggregate-event-counts`: `aggregate_event_counts()`\n - `server-time`: `server_time()`\n - `version`: `current_version()`\n - `catalog`: `catalog()`\n\nNew types:\n\n - `pypuppetdb.types.Catalog`\n - `pypuppetdb.types.Edge`\n\nChanges to types:\n\n - `pypuppetdb.types.Node` now has:\n - `status` defaulting to `None`\n - `events` defaulting to `None`\n - `unreported_time` defaulting to `None`\n\n0.0.4\n-----\n\nDue to a fairly serious bug 0.0.3 was pulled from PyPi minutes after\nrelease.\n\nWhen a bug was fixed to be able to query for all facts we accidentally\nintroduced a different bug that caused the `facts()` call on a node to\nquery for all facts because we were resetting the query.\n\n - Fix a bug where `node.facts()` was causing us to query all facts\n because the query to scope our request was being reset.\n\n0.0.3\n-----\n\nWith the introduction of PuppetDB 1.5 a new API version, v3, was also\nintroduced. In that same release the old `/experimental` endpoints were\nremoved, meaning that as of PuppetDB 1.5 with the v2 API you can no\nlonger get access to reports or events.\n\nIn light of this the support for the experimental endpoints has been\ncompletely removed from pypuppetdb. As of this release you can only get\nto reports and/or events through v3 of the API.\n\nThis release includes preliminary support for the v3 API. Everything\nthat could be done with v2 plus the experimental endpoints is now\npossible on v3. However, more advanced funtionality has not yet been\nimplemented. That will be the focus of the next release.\n\n - Removed dependency on pytz.\n - Fixed the behaviour of `facts()` and `resources()`. We can now\n correctly query for all facts or resources.\n - Fixed an issue with catalog timestampless nodes.\n - Pass along the `timeout` option to `connect()`.\n - Added preliminary PuppetDB API v3 support.\n - Removed support for the experimental endpoints.\n - The `connect()` method defaults to API v3 now.\n\n0.0.2\n-----\n\n - Fix a bug in `setup.py` preventing successful installation.\n\n0.0.1\n-----\n\nInitial release. Implements most of the v2 API.\n\n\n\\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*\n",
"bugtrack_url": null,
"license": "Apache License 2.0",
"summary": "Library for working with the PuppetDB REST API.",
"version": "3.2.0",
"project_urls": {
"Homepage": "https://github.com/voxpupuli/pypuppetdb"
},
"split_keywords": [
"puppet",
"puppetdb"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "e596ec7d821a56e2ac751dbd3e7d7b6a32a86224477084dd03e6323692fdac97",
"md5": "4f3ab9aba011523e6fb4e97943ee9b66",
"sha256": "d9aa0a284d4140532916d83ab9d1f294497ffa3b12e98a15ea43ca3641f15e4e"
},
"downloads": -1,
"filename": "pypuppetdb-3.2.0-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "4f3ab9aba011523e6fb4e97943ee9b66",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": ">=3.7.0",
"size": 38970,
"upload_time": "2023-10-08T19:31:37",
"upload_time_iso_8601": "2023-10-08T19:31:37.917638Z",
"url": "https://files.pythonhosted.org/packages/e5/96/ec7d821a56e2ac751dbd3e7d7b6a32a86224477084dd03e6323692fdac97/pypuppetdb-3.2.0-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b48b7cdb42bfdcb60af0a7f055ffd1916de031f3bf875c3634d31d211d29853c",
"md5": "80951481dc54796cc6d88c81983df33e",
"sha256": "2a4b8722b1233ca5a8f055931a7eded3b6edc5edcd1903d0dccc118d67989980"
},
"downloads": -1,
"filename": "pypuppetdb-3.2.0.tar.gz",
"has_sig": false,
"md5_digest": "80951481dc54796cc6d88c81983df33e",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7.0",
"size": 44149,
"upload_time": "2023-10-08T19:31:39",
"upload_time_iso_8601": "2023-10-08T19:31:39.137568Z",
"url": "https://files.pythonhosted.org/packages/b4/8b/7cdb42bfdcb60af0a7f055ffd1916de031f3bf875c3634d31d211d29853c/pypuppetdb-3.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-08 19:31:39",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "voxpupuli",
"github_project": "pypuppetdb",
"travis_ci": false,
"coveralls": true,
"github_actions": true,
"requirements": [],
"lcname": "pypuppetdb"
}