The Puppet Labs Issue Tracker has Moved: https://tickets.puppetlabs.com

Feature #14137

Updated by Chris Price almost 2 years ago

In order to improve the ability for an external tool to support parameterized classes and other functionality, we need to make a few improvements to the REST API for the resource_type service.

The main shortcomings with the current version are as follows:

1. 1) The "search" mode does not support filtering by type; every query returns instances of all three types (classes, defined types, and nodes).
2. 2) The field names on the output objects are confusing. They use terminology / names like "hostclass" which are, for practical purposes, internal / implementation-specific terminology. The output should use names that are more consistent with our documentation / DSL / external exposure of these constructs (e.g. "class" instead of "hostclass").

Proposed changes:
-----------------

To address concern # 1 above, the proposal is to add support for a query parameter to allow filtering by type. So, e.g., you could issue a query like this:

curl -k -H "Accept: pson" "https://localhost:8140/production/resource_type_search/*<b>?type=class</b>"

The new bit is the part in bold: <b>?type=class</b>. This would also support the values "defined_type" and "node". The behavior would be to simply filter the result set to the type that is specified by this query parameter.

To address concern #2 above, we will modify the code that transforms the objects to PSON before serializing them. This will involve renaming fields/values that are not named clearly (e.g. "hostclass"=>"class" as mentioned above), and may also include eliminating some unnecessary fields from the output. I will add more comments to this ticket as I determine what changes seem appropriate.

Back