Uploaded image for project: 'Puppet Server'
  1. Puppet Server
  2. SERVER-564

documented /puppet/v3/status API returns "Not Found"




      I am attempting to use the /puppet/v3/status API to query the status of a Puppet Server. My goal is to be able to use our Nagios monitoring system to test not just whether Puppet Server is accepting connections on TCP port 8140, but whether the Puppet Server is alive and functioning.

      Based on the API docs, I am using the follow curl command for testing:

      $ curl -v -k 'https://puppet-ca.example.org:8140/puppet/v3/status/ignored?environment=ignored'

      The /puppet/v3/status service is permitted in /etc/puppetlabs/puppet/auth.conf:

      path /puppet/v3/status
      method find
      allow *

      However, Puppet Server returns Not found:

      > GET /puppet/v3/status/ignored?environment=ignored HTTP/1.1
      > User-Agent: curl/7.29.0
      > Host: puppet-ca.example.org:8140
      > Accept: */*
      < HTTP/1.1 404 Not Found
      < Date: Wed, 22 Apr 2015 20:22:32 GMT
      < Content-Type: text/html; charset=UTF-8
      < Content-Length: 9
      < Server: Jetty(9.1.z-SNAPSHOT)

      Other services work properly. For example, if I permit the /puppet/v3/resource_type service in auth.conf, and use the Puppet client certificate to authenticate (because the /puppet/v3/resource_type service does not permit anonymous access), it works:

      $ curl -v --cert /etc/puppetlabs/puppet/ssl/certs/client.example.org.pem --key /etc/puppetlabs/puppet/ssl/private_keys/client.example.org.pem --cacert /etc/puppetlabs/puppet/ssl-ca/ca/ca_crt.pem 'https://puppet-ca.example.org:8140/puppet/v3/resource_type/yum?environment=production'
      [lines omitted]
      > GET /puppet/v3/resource_type/yum?environment=production HTTP/1.1
      > User-Agent: curl/7.29.0
      > Host: puppet-ca.example.org:8140
      > Accept: */*
      < HTTP/1.1 200 OK
      < Date: Wed, 22 Apr 2015 20:29:37 GMT
      < Content-Type: text/pson;charset=ISO-8859-1
      < X-Puppet-Version: 4.0.0
      < Content-Length: 78
      < Server: Jetty(9.1.z-SNAPSHOT)
      * Connection #0 to host puppet-ca.example.org left intact

      So, in conclusion, I'm using the API as it is documented, but the /puppet/v3/status service simply doesn't seem to work.

      For production monitoring purposes, we'd really, really like for this to work.


      Risk Assessment: Medium (QA plans Functional Review, but no additional automated testing because this will be replaced in the near future. QA will target automated testing against the long term solution.)
      Probability: High
      Severity: Medium


        Issue Links



              jeremy.barlow Jeremy Barlow
              ralston James Ralston
              Erik Dasher Erik Dasher
              0 Vote for this issue
              5 Start watching this issue



                Zendesk Support