On Tue, 2010-02-16 at 07:09 -0700, Steven Dake wrote: > The patch looks great but I prefer a feature addition as well: > > configure --enable-augeas option which has the effect of enabling the > installation of the augeas files. >
Hi Attached is a patch with the --enable-augeas config option. -Angus > On systems where there is no augeas, I'd wonder what would happen with > this patch. > > Regards > -steve > > On Tue, 2010-02-16 at 13:09 +1100, Angus Salkeld wrote: > > Hi > > > > This adds an augeas lens to corosync (so you can configure corosync.conf > > via augtool and python-augeas). > > > > Here is my post to the augeas ML. > > https://www.redhat.com/archives/augeas-devel/2010-February/msg00041.html > > > > I have included rules to install the lens as the augeas maintainer suggests > > (Steve I am not sure if that is what you want). > > Note on my system I have the following > > ls /usr/share/augeas/lenses/ > > corosync.aug dist libvirtd.aug libvirtd_qemu.aug tests > > > > > > The test suite I will post soon needs this to configure corosync. > > > > -Angus
>From 0462f3533cc20968fc9e96e1da4cd8e0de7795a6 Mon Sep 17 00:00:00 2001 From: Angus Salkeld <[email protected]> Date: Wed, 17 Feb 2010 07:23:58 +1100 Subject: [PATCH] Add augeas lense for corosync.conf Signed-off-by: Angus Salkeld <[email protected]> --- Makefile.am | 8 +++ conf/lenses/corosync.aug | 120 +++++++++++++++++++++++++++++++++++ conf/lenses/tests/test_corosync.aug | 87 +++++++++++++++++++++++++ configure.ac | 10 +++ 4 files changed, 225 insertions(+), 0 deletions(-) create mode 100644 conf/lenses/corosync.aug create mode 100644 conf/lenses/tests/test_corosync.aug diff --git a/Makefile.am b/Makefile.am index 5cb90b8..976ca11 100644 --- a/Makefile.am +++ b/Makefile.am @@ -48,6 +48,14 @@ corosysconfdir = ${COROSYSCONFDIR} corosysconf_DATA = conf/corosync.conf.example +if INSTALL_AUGEAS +corolensdir = ${datadir}/augeas/lenses +corolens_DATA = conf/lenses/corosync.aug + +corolenstestdir = ${corolensdir}/tests +corolenstest_DATA = conf/lenses/tests/test_corosync.aug +endif + SUBDIRS = include lcr lib exec services tools test pkgconfig \ man init diff --git a/conf/lenses/corosync.aug b/conf/lenses/corosync.aug new file mode 100644 index 0000000..a7ff421 --- /dev/null +++ b/conf/lenses/corosync.aug @@ -0,0 +1,120 @@ +(* 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 "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|tags/ + +(* 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 amf section *) +let amf = + let setting = + kv "mode" /enabled|disabled/ in + section "amf" setting + + +let lns = (comment|empty|compatibility|totem|logging|amf)* + +let xfm = transform lns (incl "/etc/corosync/corosync.conf") diff --git a/conf/lenses/tests/test_corosync.aug b/conf/lenses/tests/test_corosync.aug new file mode 100644 index 0000000..0bf3277 --- /dev/null +++ b/conf/lenses/tests/test_corosync.aug @@ -0,0 +1,87 @@ +module Test_corosync = + + let conf = "# Please read the corosync.conf.5 manual page +compatibility: whitetank + +totem { + version: 2 + secauth: off + threads: 0 + clear_node_high_bit: no + rrp_mode: none + transport: udp + token: 1000 + interface { + ringnumber: 0 + bindnetaddr: 192.168.122.1 + mcastaddr: 226.94.1.1 + mcastport: 5405 + } +} + +logging { + fileline: off + function_name: on + to_stderr: yes + to_logfile: yes + to_syslog: yes + logfile: /tmp/corosync.log + debug: off + timestamp: on + logger_subsys { + to_syslog: no + subsys: CPG + debug: on + } + logger_subsys { + to_stderr: no + logfile: /tmp/corosync-msg.log + subsys: MSG + debug: on + } +} + +amf { + mode: disabled +}\n" + +test Corosync.lns get conf = + + { "#comment" = "Please read the corosync.conf.5 manual page" } + { "compatibility" = "whitetank" } + { } + { "totem" + { "version" = "2" } + { "secauth" = "off" } + { "threads" = "0" } + { "clear_node_high_bit" = "no" } + { "rrp_mode" = "none" } + { "transport" = "udp" } + { "token" = "1000" } + { "interface" + { "ringnumber" = "0" } + { "bindnetaddr" = "192.168.122.1" } + { "mcastaddr" = "226.94.1.1" } + { "mcastport" = "5405" } } } + { } + { "logging" + { "fileline" = "off" } + { "function_name" = "on" } + { "to_stderr" = "yes" } + { "to_logfile" = "yes" } + { "to_syslog" = "yes" } + { "logfile" = "/tmp/corosync.log" } + { "debug" = "off" } + { "timestamp" = "on" } + { "logger_subsys" + { "to_syslog" = "no" } + { "subsys" = "CPG" } + { "debug" = "on" } } + { "logger_subsys" + { "to_stderr" = "no" } + { "logfile" = "/tmp/corosync-msg.log" } + { "subsys" = "MSG" } + { "debug" = "on" } } } + { } + { "amf" + { "mode" = "disabled" } } diff --git a/configure.ac b/configure.ac index 45a59d9..9f44aac 100644 --- a/configure.ac +++ b/configure.ac @@ -204,6 +204,12 @@ AC_ARG_ENABLE([rdma], [ enable_rdma="no" ]) AM_CONDITIONAL(BUILD_RDMA, test x$enable_rdma = xyes) +AC_ARG_ENABLE([augeas], + [ --enable-augeas : Install the augeas lens for corosync.conf ],, + [ enable_augeas="no" ]) +AM_CONDITIONAL(INSTALL_AUGEAS, test x$enable_augeas = xyes) + + AC_ARG_WITH([initddir], [ --with-initddir=DIR : path to init script directory. ], [ INITDDIR="$withval" ], @@ -328,6 +334,10 @@ if test "x${enable_rdma}" = xyes; then PACKAGE_FEATURES="$PACKAGE_FEATURES rdma" fi +if test "x${enable_augeas}" = xyes; then + PACKAGE_FEATURES="$PACKAGE_FEATURES augeas" +fi + # extra warnings EXTRA_WARNINGS="" -- 1.6.6
_______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
