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

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

    XMLWordPrintable

    Details

    • Template:
    • Sub-team:
    • Story Points:
      1
    • Sprint:
      Server Emerald 2015-05-13, Server Emerald 2015-05-27

      Description

      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
      {"line":80,"parameters":{"installonly_limit":"3"},"name":"yum","kind":"class"}
      

      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.

      QA:

      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

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              jeremy.barlow Jeremy Barlow
              Reporter:
              ralston James Ralston
              QA Contact:
              Erik Dasher
              Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved:

                  Zendesk Support