Page Menu
Home
ClusterLabs Projects
Search
Configure Global Search
Log In
Files
F3153582
corosync.aug
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
corosync.aug
View Options
(* Process /etc/corosync/corosync.conf *)
(* The lens is based on the corosync.conf(5) man page *)
module Corosync =
autoload xfm
let comment = Util.comment
let empty = Util.empty
let dels = Util.del_str
let eol = Util.eol
let ws = del /[ \t]+/ " "
let wsc = del /:[ \t]+/ ": "
let indent = del /[ \t]*/ ""
(* We require that braces are always followed by a newline *)
let obr = del /\{([ \t]*)\n/ "{\n"
let cbr = del /[ \t]*}[ \t]*\n/ "}\n"
let ikey (k:regexp) = indent . key k
let section (n:regexp) (b:lens) =
[ ikey n . ws . obr . (b|empty|comment)* . cbr ]
let kv (k:regexp) (v:regexp) =
[ ikey k . wsc . store v . eol ]
(* FIXME: it would be much more concise to write *)
(* [ key k . ws . (bare | quoted) ] *)
(* but the typechecker trips over that *)
let qstr (k:regexp) =
let delq = del /['"]/ "\"" in
let bare = del /["']?/ "" . store /[^"' \t\n]+/ . del /["']?/ "" in
let quoted = delq . store /.*[ \t].*/ . delq in
[ ikey k . wsc . bare . eol ]
|[ ikey k . wsc . quoted . eol ]
(* The compatibility option *)
let compatibility = kv "compatibility" /whitetank|none/
(* A integer subsection *)
let interface =
let setting =
kv "ringnumber" Rx.integer
|kv "mcastport" Rx.integer
|qstr /bindnetaddr|mcastaddr/ in
section "interface" setting
(* The totem section *)
let totem =
let setting =
kv "clear_node_high_bit" /yes|no/
|kv "rrp_mode" /none|active|passive/
|kv "vsftype" /none|ykd/
|kv "secauth" /on|off/
|kv "crypto_type" /nss|sober/
|kv "crypto_accept" /new|old/
|kv "transport" /udp|iba/
|kv "version" Rx.integer
|kv "nodeid" Rx.integer
|kv "threads" Rx.integer
|kv "netmtu" Rx.integer
|kv "token" Rx.integer
|kv "token_retransmit" Rx.integer
|kv "hold" Rx.integer
|kv "token_retransmits_before_loss_const" Rx.integer
|kv "join" Rx.integer
|kv "send_join" Rx.integer
|kv "consensus" Rx.integer
|kv "merge" Rx.integer
|kv "downcheck" Rx.integer
|kv "fail_to_recv_const" Rx.integer
|kv "seqno_unchanged_const" Rx.integer
|kv "heartbeat_failures_allowed" Rx.integer
|kv "max_network_delay" Rx.integer
|kv "max_messages" Rx.integer
|kv "window_size" Rx.integer
|kv "rrp_problem_count_timeout" Rx.integer
|kv "rrp_problem_count_threshold" Rx.integer
|kv "rrp_token_expired_timeout" Rx.integer
|interface in
section "totem" setting
let common_logging =
kv "to_syslog" /yes|no|on|off/
|kv "to_stderr" /yes|no|on|off/
|kv "to_logfile" /yes|no|on|off/
|kv "debug" /yes|no|on|off/
|kv "logfile_priority" /alert|crit|debug|emerg|err|info|notice|warning/
|kv "syslog_priority" /alert|crit|debug|emerg|err|info|notice|warning/
|kv "syslog_facility" /daemon|local0|local1|local2|local3|local4|local5|local6|local7/
|qstr /logfile|trace/
(* A logger_subsys subsection *)
let logger_subsys =
let setting =
qstr /subsys/
|common_logging in
section "logger_subsys" setting
(* The logging section *)
let logging =
let setting =
kv "fileline" /yes|no|on|off/
|kv "function_name" /yes|no|on|off/
|kv "timestamp" /yes|no|on|off/
|common_logging
|logger_subsys in
section "logging" setting
(* The resource section *)
let common_resource =
kv "max" Rx.decimal
|kv "poll_period" Rx.integer
|kv "recovery" /reboot|shutdown|watchdog|none/
let memory_used =
let setting =
common_resource in
section "memory_used" setting
let load_15min =
let setting =
common_resource in
section "load_15min" setting
let system =
let setting =
load_15min
|memory_used in
section "system" setting
(* The resources section *)
let resources =
let setting =
system in
section "resources" setting
(* The amf section *)
let amf =
let setting =
kv "mode" /enabled|disabled/ in
section "amf" setting
(* The quorum section *)
let quorum =
let setting =
qstr /provider/
|kv "expected_votes" Rx.integer
|kv "votes" Rx.integer
|kv "quorumdev_poll" Rx.integer
|kv "leaving_timeout" Rx.integer
|kv "disallowed" Rx.integer
|kv "quorate" Rx.integer
|kv "two_node" Rx.integer in
section "quorum" setting
(* The service section *)
let service =
let setting =
qstr /name|ver/ in
section "service" setting
(* The uidgid section *)
let uidgid =
let setting =
qstr /uid|gid/ in
section "uidgid" setting
let lns = (comment|empty|compatibility|totem|quorum|logging|resources|amf|service|uidgid)*
let xfm = transform lns (incl "/etc/corosync/corosync.conf")
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Feb 25, 10:30 PM (1 d, 6 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1465000
Default Alt Text
corosync.aug (4 KB)
Attached To
Mode
rC Corosync
Attached
Detach File
Event Timeline
Log In to Comment