Hi Martin, just as a caveat, I'm not a Puppet expert, but I decided to try out the new support search that Perforce put on the help docs (help.puppet.com/core) with this question and it's possible the answer it gave might help out! I've put in its answer below, in case it helps, but it also cited this doc as a source: https://help.puppet.com/core/current/Content/PuppetCore/server/http_api/http_catalog.htm <https://help.puppet.com/core/current/Content/PuppetCore/server/http_api/http_catalog.htm>
Those docs seem to have some Catalog API examples that might help? Here's the response the search tool gave, in case it helps: ---------------- You can retrieve the catalog version from the Puppet Server using the /puppet/v3/catalog API. The catalog version is included in the response under the version key when a catalog is successfully retrieved. Here are the key details: 1. Request Parameters: The API supports GET and POST methods. The relevant URL for your request would typically include the node name for which you want the catalog: GET /puppet/v3/catalog/:nodename?environment=:environment In your case, you are making a GET request with parameters such as facts_format and transaction_uuid. Ensure that the facts parameter contains serialized fact data as JSON, and it might need to be double-escaped due to containing characters like &. 2. Response: If the catalog is found, the response includes the catalog details in JSON. The version field in the response represents the catalog version: { "name": "elmo.mydomain.com", "version": 1377473054, "code_id": null, "catalog_uuid": "827a74c8-cf98-44da-9ff7-18c5e4bee41e", "catalog_format": 1, ... } 3. Comparison: After fetching the version from the API response, you can compare it to the config field in the last_run_summary.yaml. The config value generally refers to the branch or commit from which the catalog was compiled. Make sure your curl request correctly constructs the API call and encodes the required data parameters to ensure a proper response ---------------- On Tuesday, July 29, 2025 at 6:27:01 AM UTC-4 mvo...@gmail.com wrote: > Hello, > > I have the following REST skript: > > #!/bin/sh > > HOST=$HOSTNAME > STRING='{"name":"HOST","values":{"architecture":"x86_64"}}' > STRING=${STRING/HOST/$HOST} > echo "STRING: $STRING" > URL_ENCODE=$(echo -n $STRING | jq -sRr @uri) > > curl --cert /etc/puppetlabs/puppet/ssl/certs/${HOST}.pem \ > --key /etc/puppetlabs/puppet/ssl/private_keys/${HOST}.pem \ > --cacert /etc/puppetlabs/puppet/ssl/certs/ca.pem \ > -X GET " > https://puppet:8140/puppet/v3/catalog/$HOST?environment=production&facts_format=application/json&facts=${URL_ENCODE}&transaction_uuid=1234567890 > > " > > > I'm interested in getting the catalog version, as printed by: > > puppet/lib/ruby/vendor_ruby/puppet/transaction.rb > > Puppet.info _("Applying configuration version '%{version}'") % { version: > catalog.version } if catalog.version > > > The reason is, I like to compare the catalog version from the server with > the catalog version off the last run: > > $ cat /opt/puppetlabs/puppet/public/last_run_summary.yaml | grep config > config: heads/devel-0-g1940ad41 > > This would allow me to speed things up in a hot path. > > How can this be done? > > > best regards, > > Martin > > -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/puppet-users/af4e151e-62ba-491b-8ed6-345ecd7c3e3an%40googlegroups.com.