Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,9 @@ collections:
openvox-server_8x:
output: true
permalink: '/openvox-server/8.x/:path:output_ext'
openvox-server_9x:
output: true
permalink: '/openvox-server/9.x/:path:output_ext'

openvoxdb_latest:
output: true
Expand Down Expand Up @@ -146,6 +149,11 @@ defaults:
type: openvox-server_8x
values:
nav: openvox-server_8x
- scope:
path: ''
type: openvox-server_9x
values:
nav: openvox-server_9x

- scope:
path: ''
Expand Down
170 changes: 170 additions & 0 deletions _data/nav/openvox-server_9x.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
---
- text: About OpenVox Server
link: services_puppetserver.html
- text: Release notes
link: release_notes.html
- text: Deprecated features
link: deprecated_features.html
- text: Installing and upgrading
items:
- text: Before you begin
link: install_pre.html
- text: Install OpenVox Server
link: install_from_packages.html
- text: What gets installed and where
link: install_what_and_where.html
- text: Upgrading OpenVox Server
link: upgrade_minor.html
- text: Configuring OpenVox Server
items:
- text: Configuring OpenVox Server
link: configuration.html
- text: 'Main OpenVox Server configurations: puppetserver.conf'
link: config_file_puppetserver.html
- text: 'Global settings: global.conf'
link: config_file_global.html
- text: 'Webserver service: webserver.conf'
link: config_file_webserver.html
- text: 'Web application mount points: web-routes.conf'
link: config_file_web-routes.html
- text: 'Access control: auth.conf'
link: config_file_auth.html
- text: 'Metrics services: metrics.conf'
link: config_file_metrics.html
- text: 'Log level and location: logback.xml'
link: config_file_logbackxml.html
- text: Advanced logging configuration
link: config_logging_advanced.html
- text: 'CA service: ca.conf'
link: config_file_ca.html
- text: OpenVox Server use of puppet.conf settings
link: puppet_conf_setting_diffs.html
- text: 'Configuring product-level interactions (optional): product.conf'
link: config_file_product.html
- text: Using and extending OpenVox Server
items:
- text: Using Ruby gems
link: gems.html
- text: Subcommands
link: subcommands.html
- text: Infrastructure CRL
link: infrastructure_crl.html
- text: Intermediate CA
link: intermediate_ca.html
- text: Renewing and regenerating certificates
link: certificate_renewal.html
- text: External SSL termination
link: external_ssl_termination.html
- text: Restarting OpenVox Server
link: restarting.html
- text: Tuning, troubleshooting, and known issues
items:
- text: Known issues
link: known_issues.html
- text: SSL problems with load-balanced PuppetDB servers ("Server Certificate Change"
error)
link: ssl_server_certificate_change_and_virtual_ips.html
- text: OpenVox Server tuning guide
link: tuning_guide.html
- text: Scaling OpenVox Server with compilers
link: scaling_puppet_server.html
- text: HTTP API
items:
- text: HTTP API overview
link: http_api_index.html
- text: PSON
link: pson.html
- text: Puppet v3 API
items:
- text: Catalog
link: http_catalog.html
- text: Node
link: http_node.html
- text: Facts
link: http_facts.html
- text: File bucket file
link: http_file_bucket_file.html
- text: File content
link: http_file_content.html
- text: File metadata
link: http_file_metadata.html
- text: Report
link: http_report.html
- text: Environments
link: http_environments.html
- text: Puppet v4 API
items:
- text: Catalog
link: puppet-api/v4/catalog.html
- text: CA v1 API
items:
- text: Certificate
link: ca-api/v1/http_certificate.html
- text: Certificate request
link: ca-api/v1/http_certificate_request.html
- text: Certificate status
link: ca-api/v1/http_certificate_status.html
- text: Certificate revocation list
link: ca-api/v1/http_certificate_revocation_list.html
- text: Certificate clean
link: ca-api/v1/http_certificate_clean.html
- text: Certificate expirations
link: ca-api/v1/http_certificate_expirations.html
- text: Certificate renewal
link: ca-api/v1/http_certificate_renewal.html
- text: Bulk certificate sign
link: ca-api/v1/http_certificate_sign.html
- text: Server-specific API
items:
- text: Environment classes
link: puppet-api/v3/environment_classes.html
- text: Environment modules
link: puppet-api/v3/environment_modules.html
- text: Environment transports
link: puppet-api/v3/environment_transports.html
- text: Compile endpoint
link: puppet-api/v3/compile.html
- text: Static file content
link: puppet-api/v3/static_file_content.html
- text: File content
link: puppet-api/v3/file_content.html
- text: Tasks overview
link: puppet-api/v3/tasks.html
- text: Tasks details
link: puppet-api/v3/task_detail.html
- text: Plans overview
link: puppet-api/v3/plans.html
- text: Plans details
link: puppet-api/v3/plan_detail.html
- text: Admin API
items:
- text: Environment cache
link: admin-api/v1/environment-cache.html
- text: JRuby pool
link: admin-api/v1/jruby-pool.html
- text: Status API
items:
- text: Services endpoint
link: status-api/v1/services.html
- text: Simple endpoint
link: status-api/v1/simple.html
- text: Metrics
items:
- text: Monitoring OpenVox Server metrics
link: puppet_server_metrics.html
- text: HTTP client metrics
link: http_client_metrics.html
- text: Applying metrics to improve performance
link: puppet_server_metrics_performance.html
- text: v1 metrics API
link: metrics-api/v1/metrics_api.html
- text: v2 (Jolokia) metrics API
link: metrics-api/v2/metrics_api.html
- text: Developer information
items:
- text: Developer debugging
link: dev_debugging.html
- text: Running from source
link: dev_running_from_source.html
- text: Tracing code events
link: dev_trace_func.html
4 changes: 4 additions & 0 deletions _data/nav_map.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@
collections: openvox-server_latest|openvox-server_8x
base: /openvox-server/latest/

- nav_key: openvox-server_9x
collections: openvox-server_9x
base: /openvox-server/9.x/

- nav_key: openvoxdb_8x
collections: openvoxdb_latest|openvoxdb_8x
base: /openvoxdb/latest/
Expand Down
2 changes: 1 addition & 1 deletion _data/navigation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
collections: [openvox_latest, openvox_8x, openvox_9x]
- title: OpenVox Server
url: /openvox-server/latest/
collections: [openvox-server_latest, openvox-server_8x]
collections: [openvox-server_latest, openvox-server_8x, openvox-server_9x]
- title: OpenVoxDB
url: /openvoxdb/latest/
collections: [openvoxdb_latest, openvoxdb_8x]
Expand Down
4 changes: 4 additions & 0 deletions _data/products.yml
Original file line number Diff line number Diff line change
Expand Up @@ -73,6 +73,10 @@ openvox-server:
label: OpenVox Server
latest: 8x
versions:
- id: 9x
label: "9.x"
collection: _openvox-server_9x
base: /openvox-server/9.x/
- id: 8x
label: "8.x"
collection: _openvox-server_8x
Expand Down
4 changes: 2 additions & 2 deletions docs/_openvox-server_8x/puppet-api/v3/file_content.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ The `file_content` endpoint returns contents of the specified file.

## `GET /puppet/v3/file_content/:mount_point/:module/:file-path?environment=:environment`

When specifying environment see the [OpenVox API docs](/openvox-server/latest/http_file_content.html)
When specifying environment see the [OpenVox API docs](/openvox-server/latest/http_file_content.html).

## `GET /puppet/v3/file_content/:mount_point/:module/:file-path?project=:project-ref
## `GET /puppet/v3/file_content/:mount_point/:module/:file-path?project=:project-ref`

Return the contents of a file from the project specified by :project-ref, which should be of the form :name-:version

Expand Down
36 changes: 36 additions & 0 deletions docs/_openvox-server_9x/admin-api/v1/environment-cache.markdown
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
layout: default
title: "OpenVox Server: Admin API: Environment Cache"
---

When using directory environments, the OpenVox Server [caches](https://docs.openvoxproject.org/openvox/latest/environments_creating.html) the data it loads from disk for each environment.
OpenVox Server adds a new endpoint to the master's HTTP API:

## `DELETE /puppet-admin-api/v1/environment-cache`

To trigger a complete invalidation of the data in this cache, make an HTTP request to this endpoint.

### Query Parameters

This endpoint accepts an optional query parameter, `environment`, whose value may be set to the name of a specific OpenVox environment. If this parameter is provided, only the specified environment will be
flushed from the cache, as opposed to all environments.

### Response

A successful request to this endpoint will return an `HTTP 204: No Content`. The response body will be empty.

### Example

```text
$ curl -i --cert $(puppet config print hostcert) --key $(puppet config print hostprivkey) --cacert $(puppet config print localcacert) -X DELETE https://$(puppet config print certname):8140/puppet-admin-api/v1/environment-cache
HTTP/1.1 204 No Content

$ curl -i --cert $(puppet config print hostcert) --key $(puppet config print hostprivkey) --cacert $(puppet config print localcacert) -X DELETE https://localhost:8140/puppet-admin-api/v1/environment-cache?environment=production
HTTP/1.1 204 No Content
```

## Relevant Configuration

Access to this endpoint is controlled by the `puppet-admin` section of `puppetserver.conf`. See [the configuration page](../../configuration.html) for more information.

In the example above, the `curl` command is using a certificate and private key. You must make sure this certificate's name is included in the `puppet-admin -> client-whitelist` setting before you can use it.
66 changes: 66 additions & 0 deletions docs/_openvox-server_9x/admin-api/v1/jruby-pool.markdown
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
layout: default
title: "OpenVox Server: Admin API: JRuby Pool"
---

OpenVox Server contains a pool of JRuby instances. OpenVox Server adds a new, experimental endpoint to the master's HTTP API:

## `DELETE /puppet-admin-api/v1/jruby-pool`

This will remove all of the existing JRuby interpreters from the pool, allowing the memory occupied by these interpreters to be reclaimed by the JVM's garbage collector. The pool will then be refilled with new
JRuby instances, each of which will load the latest Ruby code and related resources from disk.

If you're developing new Ruby plugins that run on the OpenVox server (functions, resource types, report handlers), you may need to force OpenVox to re-load its plugins when a new version is ready to test. Killing
the JRuby instances will do this, and it's faster than restarting the entire JVM process.

Furthermore, if you are using multiple environments, this could be useful if you want to make sure that your JRuby instances are cleaned up and don't have conflicts based on common code that appears in multiple
environments.

This is an experimental feature, and as such the performance impact is unknown at this time. Also, please note that this operation is computationally expensive, and as such OpenVox Server will be unable to
fulfill any incoming requests until the first of the new interpreters has been initialized, which may take several seconds.

### Response

A successful request to this endpoint will return an `HTTP 204: No Content`. The response body will be empty.

### Example

```text
$ curl -i --cert $(puppet config print hostcert) --key $(puppet config print hostprivkey) --cacert $(puppet config print localcacert) -X DELETE https://$(puppet config print certname):8140
/puppet-admin-api/v1/jruby-pool
HTTP/1.1 204 No Content
```

## `GET /puppet-admin-api/v1/jruby-pool/thread-dump`

Retrieve a Ruby thread dump for each JRuby instance registered to the pool. The thread dump provides a backtrace through the Ruby code that each instance is executing and is useful for diagnosing instances that
have stalled or are otherwise unresponsive. Backtraces are generated using the JRuby JMX interface and require the `jruby.management.enabled` property to be set to `true` in the JVM running OpenVox Server.

### Response

A successful request to this endpoint will return a `HTTP 200: Ok` status code. The response body will be a JSON document containing a map that associates each JRuby instance ID with a map containing a
`thread-dump` entry that has a string value with the Ruby backtrace.

A `HTTP 500: Internal Server Error` status code will be returned if an exception occurs while retrieving the thread dump for a JRuby instance, or if the `jruby.management.enabled` property is not set to `true`.
The response body in this case is also JSON, but the failed instances will be associated with a map containing a `error` entry with a value describing the issue.

### Example

```text
$ curl -i --cert $(puppet config print hostcert) --key $(puppet config print hostprivkey) --cacert $(puppet config print localcacert) -X GET https://$(puppet config print certname):8140/puppet-admin-api/v1/jruby-pool/thread-dump
HTTP/1.1 200 OK

{"1":{"thread-dump":"All threads known to Ruby instance 1960016402\n\n ..."}}

# Error returned when jruby.management.enabled is not configured
$ curl -i --cert $(puppet config print hostcert) --key $(puppet config print hostprivkey) --cacert $(puppet config print localcacert) -X GET https://$(puppet config print certname):8140/puppet-admin-api/v1/jruby-pool/thread-dump
HTTP/1.1 500 Server Error

{"1":{"error":"JRuby management interface not enabled. Add '-Djruby.management.enabled=true' to JAVA_ARGS to enable thread dumps."}}
```

## Relevant Configuration

Access to this endpoint is controlled by the `puppet-admin` section of `puppetserver.conf`. See [the configuration page](../../configuration.html) for more information.

In the example above, the `curl` command is using a certificate and private key. You must make sure this certificate's name is included in the `puppet-admin -> client-whitelist` setting before you can use it.
Loading