Augeas Lens Index

R |
| rabbit, Rabbitmq
| ratelimit, Chrony
| reaction, Nsswitch
| real_server_field, Keepalived
| realm_entry, JettyRealm
| recipient, Xymon_Alerting
| record Global Apt_Update_Manager AptPreferences Aptsources Avahi BackupPCHosts Crypttab Dpkg IniFile Login_defs Modules Oz Pg_Hba Postfix_Passwordmap Postfix_Transport Postfix_Virtual Puppet_Auth Schroot Services Subversion Systemd Tmpfiles
| record_local, Pg_Hba
| record_noempty, IniFile
| record_remote, Pg_Hba
| recover, Xymon_Alerting
| refclock, Chrony
| refid_re, Ntpd
| repeat, Xymon_Alerting
| repo, Yaml
| reset_counters, Puppet_Auth
| rspace, Erlang
| rtable_re, Ntpd
| rule, Xymon_Alerting
| rule_filter, Xymon_Alerting
| runas_alias, Sudoers
| runas_spec, Sudoers

> let rabbit = Erlang.application "rabbit" parameters

The rabbit Erlang.application config

> let ratelimit = [ Util.indent . key /(cmd)?ratelimit/ . [ space . key ratelimit_options . space . store no_space ]* . eol ]

ratelimit/cmdratelimit has specific syntax

> let reaction = let status_kw = /[Ss][Uu][Cc][Cc][Ee][Ss][Ss]/ | /[Nn][Oo][Tt][Ff][Oo][Uu][Nn][Dd]/ | /[Uu][Nn][Aa][Vv][Aa][Ii][Ll]/ | /[Tt][Rr][Yy][Aa][Gg][Aa][Ii][Nn]/ in let action_kw = /[Rr][Ee][Tt][Uu][Rr][Nn]/ | /[Cc][Oo][Nn][Tt][Ii][Nn][Uu][Ee]/ | /[Mm][Ee][Rr][Gg][Ee]/ in let negate = [ Util.del_str "!" . label "negate" ] in let reaction_entry = [ label "status" . negate? . store status_kw . Util.del_str "=" . [ label "action" . store action_kw ] ] in Util.del_str "[" . [ label "reaction" . (Build.opt_list reaction_entry Sep.space) ] . Util.del_str "]"

The reaction on lookup result like `[NOTFOUND=return]’ TODO: Use case-insensitive regexps when ticket #147 is fixed.

> let real_server_field = let num_re = "weight" in let flag_re = "inhibit_on_failure" in let to_eol_re = /notify_(up|down)/ in field num_re sto_num | flag flag_re | field to_eol_re sto_to_eol | block "TCP_CHECK" tcp_check_field | block "MISC_CHECK" misc_check_field | block "SMTP_CHECK" smtp_check_field | block /(HTTP|SSL)_GET/ http_check_field

> let realm_entry = [ label "user" . [ label "username" . store Rx.word ] . del /[ \t]*:[ \t]*/ ": " . [ label "password" . store Rx.word ] . [ label "realm" . comma_sep . store Rx.word ]* . Util.eol ]

> let recipient = mail | script | ignore | format | repeat | unmatched | stop | macro

Recipients are made out of any of the above recipient definitions

> let record = IniFile.record title entry

An sssd.conf record

> let record = IniFile.record title entry

> let record = [ seq "record" . entries+ ]

> let record = let option_sep = [ label "operation" . store /[+-]/]? . Sep.equal in let option = Build.key_value /arch|trusted/ option_sep (store Rx.word) in let options = [ label "options" . Util.del_str "[" . Sep.opt_space . Build.opt_list option Sep.space . Sep.opt_space . Util.del_str "]" . sep_ws ] in [ Util.indent . seq "source" . [ label "type" . store word ] . sep_ws . options? . [ label "uri" . store uri ] . sep_ws . [ label "distribution" . store word ] . [ label "component" . sep_ws . store word ]* . del /[ \t]*(#.*)?/ "" . eol ]

> let record = IniFile.record title entry

> let record = let moreusers = Build.opt_list [ label "moreusers" . store word ] Sep.comma in [ seq "host" . [ label "host" . store word ] . Util.del_ws_tab . [ label "dhcp" . store word ] . Util.del_ws_tab . [ label "user" . store word ] . (Util.del_ws_tab . moreusers)? . (Util.comment|Util.eol) ]

> let record = [ seq "entry" . [ label "target" . store target ] . sep_tab . [ label "device" . store fspath ] . (sep_tab . [ label "password" . store fspath ] . ( sep_tab . comma_sep_list "opt")? )? . eol ]

A crypttab record

> let record = [ key keyword . (sep_spc . store word)? . eol ]

Keyword, followed by optional whitespace and value, followed by EOL.

> let record (title:lens) (entry:lens) = record_noempty title ( entry | empty )

Generic INI File record

> let record = let value = store /[^ \t\n]+([ \t]+[^ \t\n]+)*/ in [ key Rx.word . Sep.space . value . Util.eol ]

A login.defs record

> let record = [ key word . (Util.del_ws_tab . sto_line)? . Util.eol ]

> let record = IniFile.record title entry

> let record = [ seq "entries" . (record_local | record_remote) . eol ]

A sequence of record_local or record_remote entries

> let record = [ label "pattern" . store /\[?[A-Za-z0-9@\*.-]+\]?(:?[A-Za-z0-9]*)*/ . space_or_eol . username . colon . password . Util.eol ]

> let record = [ label "pattern" . store /[A-Za-z0-9@\*.-]+/ . space_or_eol . (transport | nexthop_smtp) . Util.eol ]

> let record = let destinations = Build.opt_list destination comma in [ label "pattern" . word . space_or_eol Rx.space " " . destinations . Util.eol ]

> let record = let operator = [ label "operator" . store "~" ] in [ Util.indent . key "path" . (Sep.space . operator)? . Sep.space . store /[^~# \t\n][^#\n]*[^# \t\n]|[^~# \t\n]/ . Util.eol . reset_counters . (Util.empty | Util.comment | setting)* . setting ]

> let record = IniFile.record title entry

An IniFile.record

> let record = [ label "service-name" . store word_re . sep_spc . (port | port_range) . del "/" "/" . protocol . ( sep_spc . alias )* . comment_or_eol ]

A standard /etc/services record TODO: make sure a space is added before a comment on new nodes

> let record = IniFile.record_noempty title (entry|empty)

Use the non-indented empty

> let record = IniFile.record title (entry|include)

An IniFile.record

> let record = [ seq "record" . sep_opt_spc . [ label "type" . store type ] . sep_spc . [ label "path" . store field ] . ( sep_spc . [ label "mode" . store mode ] . ( sep_spc . [ label "uid" . store field ] . ( sep_spc . [ label "gid" . store field ] . ( sep_spc . [ label "age" . store age ] . ( sep_spc . [ label "argument" . store argument ] )? )? )? )? )? . Util.comment_or_eol ]

A valid record, one line in the file.

> let record_local = [ label "type" . store "local" ] . Sep.tab . database . Sep.tab . user . Sep.tab . method

when type is “local”, there is no “address” field

> let record_noempty (title:lens) (entry:lens) = [ title . entry* ]

INI File Record with no empty lines allowed.

> let record_remote = [ label "type" . store remtypes ] . Sep.tab . database . Sep.tab . user . Sep.tab . address . Sep.tab . method

> let recover = flag "RECOVER"

The recover filter definition

> let refclock = [ Util.indent . key "refclock" . space . [ label "driver" . store word ] . space . [ label "parameter" . store no_space ] . ( space . ( [ key refclock_flags ] | [ key refclock_options . space . store no_space ] ) )* . eol ]

refclock has specific syntax

> let refid_re = /[A-Za-z0-9_.-]{1,5}/

string with length < 5

> let repeat = kw_word_filters_opt "REPEAT"

The repeat recipient definition

> let _repo = [ key Rx.word . colon . space . (val | mval) . eol ]

> let reset_counters = counter "environment" . counter "method" . counter "allow" . counter "allow_ip"

> let rspace (char:string) = del (char . /[ \t\n]*/ ) char

Add spaces to the right of char

> let rtable_re = Rx.byte

> let rule = [ seq "rules" . filters . ws_or_eol . recipients . eol ]

Rules are made of rule_filter and then recipients sperarated by a whitespace

> let rule_filter = page | group | host | service | color | time | duration | recover | notice

Filters are made out of any of the above filter definitions

> let runas_alias = alias_entry "Runas_Alias" "runas_user" sto_to_com

Run_Alias, see alias_field

> let runas_spec_user = alias_list "runas_user" sto_to_com

A runas specification for spec, using alias_list for listing users and/or groups used to run a command
Close