# Rabbitmq

Parses Rabbitmq configuration files

Author: Raphael Pinson raphael.nosp@m..pinson@camptoc.nosp@m.amp.com

Summary

Rabbitmq | Parses Rabbitmq configuration files
Reference | This lens tries to keep as close as possible to `http://www.rabbitmq.com/configure.html` where possible.
License | This file is licenced under the LGPL v2+, like the rest of Augeas.
Lens Usage | To be documented
Configuration files | This lens applies to Rabbitmq configuration files.
Examples | The Test_Rabbitmq file contains various examples and tests.
Augeas Lenses |
listeners | A tcp/ssl listener
ssl_options | (Incomplete) list of SSL options
disk_free_limit |
log_levels |
cluster_nodes | Can be a tuple `(nodes, node_type)` or simple `nodes`
cluster_partition_handling | Can be single value or `{pause_if_all_down, [nodes], ignore | autoheal}`
tcp_listen_options |
parameters | Top-level parameters for the lens
rabbit | The rabbit Erlang.application config
lns | A top-level Erlang.config
Augeas Variables |
filter |

### Reference

This lens tries to keep as close as possible to `http://www.rabbitmq.com/configure.html` where possible.

### License

This file is licenced under the LGPL v2+, like the rest of Augeas.

### Lens Usage

To be documented

### Configuration files

This lens applies to Rabbitmq configuration files. See filter.

### Examples

The Test_Rabbitmq file contains various examples and tests.

### Augeas Lenses

### listeners

> let listeners = let value = Erlang.make_value Erlang.integer | Erlang.tuple Erlang.quoted Erlang.integer in Erlang.list /(tcp|ssl)_listeners/ value

A tcp/ssl listener

### ssl_options

> let ssl_options = let versions_list = Erlang.opt_list (Erlang.make_value Erlang.quoted) in let option = Erlang.value /((ca)?cert|key)file/ Erlang.path | Erlang.value "verify" Erlang.bare | Erlang.value "verify_fun" Erlang.boolean | Erlang.value /fail_if_no_peer_cert|reuse_sessions/ Erlang.boolean | Erlang.value "depth" Erlang.integer | Erlang.value "password" Erlang.quoted | Erlang.value "versions" versions_list in Erlang.list "ssl_options" option

(Incomplete) list of SSL options

### disk_free_limit

> let disk_free_limit = let value = Erlang.integer | Erlang.tuple Erlang.bare Erlang.decimal in Erlang.value "disk_free_limit" value

### log_levels

> let log_levels = let category = Erlang.tuple Erlang.bare Erlang.bare in Erlang.list "log_levels" category

### cluster_nodes

> let cluster_nodes = let nodes = Erlang.opt_list (Erlang.make_value Erlang.quoted) in let value = Erlang.tuple nodes Erlang.bare | nodes in Erlang.value "cluster_nodes" value

Can be a tuple `(nodes, node_type)` or simple `nodes`

### cluster_partition_handling

> let cluster_partition_handling = let nodes = Erlang.opt_list (Erlang.make_value Erlang.quoted) in let value = Erlang.tuple3 Erlang.bare nodes Erlang.bare | Erlang.bare in Erlang.value "cluster_partition_handling" value

Can be single value or `{pause_if_all_down, [nodes], ignore | autoheal}`

### tcp_listen_options

> let tcp_listen_options = let value = Erlang.make_value Erlang.bare | Erlang.tuple Erlang.bare Erlang.bare in Erlang.list "tcp_listen_options" value

### parameters

> let parameters = listeners | ssl_options | disk_free_limit | log_levels | Erlang.value /vm_memory_high_watermark(_paging_ratio)?/ Erlang.decimal | Erlang.value "frame_max" Erlang.integer | Erlang.value "heartbeat" Erlang.integer | Erlang.value /default_(vhost|user|pass)/ Erlang.glob | Erlang.value_list "default_user_tags" Erlang.bare | Erlang.value_list "default_permissions" Erlang.glob | cluster_nodes | Erlang.value_list "server_properties" Erlang.bare | Erlang.value "collect_statistics" Erlang.bare | Erlang.value "collect_statistics_interval" Erlang.integer | Erlang.value_list "auth_mechanisms" Erlang.quoted | Erlang.value_list "auth_backends" Erlang.bare | Erlang.value "delegate_count" Erlang.integer | Erlang.value_list "trace_vhosts" Erlang.bare | tcp_listen_options | Erlang.value "hipe_compile" Erlang.boolean | Erlang.value "msg_store_index_module" Erlang.bare | Erlang.value "backing_queue_module" Erlang.bare | Erlang.value "msg_store_file_size_limit" Erlang.integer | Erlang.value /queue_index_(max_journal_entries|embed_msgs_below)/ Erlang.integer | cluster_partition_handling | Erlang.value /(ssl_)?handshake_timeout/ Erlang.integer | Erlang.value "channel_max" Erlang.integer | Erlang.value_list "loopback_users" Erlang.glob | Erlang.value "reverse_dns_lookups" Erlang.boolean | Erlang.value "cluster_keepalive_interval" Erlang.integer | Erlang.value "mnesia_table_loading_timeout" Erlang.integer

Top-level parameters for the lens

### rabbit

> let rabbit = Erlang.application "rabbit" parameters

The rabbit Erlang.application config

### lns

> let lns = Erlang.config rabbit

A top-level Erlang.config

### Augeas Variables

### filter

Provides unit tests and examples for the Rabbitmq lens.

> let listeners = let value = Erlang.make_value Erlang.integer | Erlang.tuple Erlang.quoted Erlang.integer in Erlang.list /(tcp|ssl)_listeners/ value

A tcp/ssl listener

> let ssl_options = let versions_list = Erlang.opt_list (Erlang.make_value Erlang.quoted) in let option = Erlang.value /((ca)?cert|key)file/ Erlang.path | Erlang.value "verify" Erlang.bare | Erlang.value "verify_fun" Erlang.boolean | Erlang.value /fail_if_no_peer_cert|reuse_sessions/ Erlang.boolean | Erlang.value "depth" Erlang.integer | Erlang.value "password" Erlang.quoted | Erlang.value "versions" versions_list in Erlang.list "ssl_options" option

(Incomplete) list of SSL options

> let disk_free_limit = let value = Erlang.integer | Erlang.tuple Erlang.bare Erlang.decimal in Erlang.value "disk_free_limit" value

> let log_levels = let category = Erlang.tuple Erlang.bare Erlang.bare in Erlang.list "log_levels" category

> let cluster_nodes = let nodes = Erlang.opt_list (Erlang.make_value Erlang.quoted) in let value = Erlang.tuple nodes Erlang.bare | nodes in Erlang.value "cluster_nodes" value

Can be a tuple `(nodes, node_type)` or simple `nodes`

> let cluster_partition_handling = let nodes = Erlang.opt_list (Erlang.make_value Erlang.quoted) in let value = Erlang.tuple3 Erlang.bare nodes Erlang.bare | Erlang.bare in Erlang.value "cluster_partition_handling" value

Can be single value or `{pause_if_all_down, [nodes], ignore | autoheal}`

> let tcp_listen_options = let value = Erlang.make_value Erlang.bare | Erlang.tuple Erlang.bare Erlang.bare in Erlang.list "tcp_listen_options" value

> let parameters = listeners | ssl_options | disk_free_limit | log_levels | Erlang.value /vm_memory_high_watermark(_paging_ratio)?/ Erlang.decimal | Erlang.value "frame_max" Erlang.integer | Erlang.value "heartbeat" Erlang.integer | Erlang.value /default_(vhost|user|pass)/ Erlang.glob | Erlang.value_list "default_user_tags" Erlang.bare | Erlang.value_list "default_permissions" Erlang.glob | cluster_nodes | Erlang.value_list "server_properties" Erlang.bare | Erlang.value "collect_statistics" Erlang.bare | Erlang.value "collect_statistics_interval" Erlang.integer | Erlang.value_list "auth_mechanisms" Erlang.quoted | Erlang.value_list "auth_backends" Erlang.bare | Erlang.value "delegate_count" Erlang.integer | Erlang.value_list "trace_vhosts" Erlang.bare | tcp_listen_options | Erlang.value "hipe_compile" Erlang.boolean | Erlang.value "msg_store_index_module" Erlang.bare | Erlang.value "backing_queue_module" Erlang.bare | Erlang.value "msg_store_file_size_limit" Erlang.integer | Erlang.value /queue_index_(max_journal_entries|embed_msgs_below)/ Erlang.integer | cluster_partition_handling | Erlang.value /(ssl_)?handshake_timeout/ Erlang.integer | Erlang.value "channel_max" Erlang.integer | Erlang.value_list "loopback_users" Erlang.glob | Erlang.value "reverse_dns_lookups" Erlang.boolean | Erlang.value "cluster_keepalive_interval" Erlang.integer | Erlang.value "mnesia_table_loading_timeout" Erlang.integer

Top-level parameters for the lens

> let rabbit = Erlang.application "rabbit" parameters

The rabbit Erlang.application config

> let application (name:regexp) (parameter:lens) = list name parameter

> let lns = Erlang.config rabbit

A top-level Erlang.config

> let config (app:lens) = (Util.empty | comment)* . rspace lbrack . Build.opt_list (kernel | app) (lrspace comma) . lrspace rbrack . Util.del_str "." . Util.eol . (Util.empty | comment)*

A top-level config
Close