[augeas-devel] augeas: master - Ntp: support more commands

David Lutterkort lutter at fedoraproject.org
Fri May 29 19:23:04 UTC 2009


Gitweb:        http://git.fedorahosted.org/git/augeas.git?p=augeas.git;a=commitdiff;h=bccf692ec237528050cd5d6fe62b3ae7b913a0b4
Commit:        bccf692ec237528050cd5d6fe62b3ae7b913a0b4
Parent:        7ce058488369836ed7b2f9550c81805d4dcd6a19
Author:        David Lutterkort <lutter at redhat.com>
AuthorDate:    Fri May 29 12:12:55 2009 -0700
Committer:     David Lutterkort <lutter at redhat.com>
CommitterDate: Fri May 29 12:12:55 2009 -0700

Ntp: support more commands

* process 'broadcastdelay'
* process enable/disable flags
* process leapfile

Minor amount of code cleanup

Fixes bug #62, reported by Frank Sweetser
---
 lenses/ntp.aug            |   33 ++++++++++++++++++++++-----------
 lenses/tests/test_ntp.aug |   11 +++++++++++
 2 files changed, 33 insertions(+), 11 deletions(-)

diff --git a/lenses/ntp.aug b/lenses/ntp.aug
index d1b2615..f324ba9 100644
--- a/lenses/ntp.aug
+++ b/lenses/ntp.aug
@@ -22,6 +22,9 @@ module Ntp =
     let empty   = [ del /[ \t]*\n/ "\n" ]
 
 
+    let kv (k:regexp) (v:regexp) =
+      [ key k . sep_spc. store v . eol ]
+
     (* Define generic record *)
     let record (kw:regexp) (value:lens) =
       [ key kw . sep_spc . store word . value . eol ]
@@ -42,13 +45,24 @@ module Ntp =
     let fudge_opt  = [ sep_spc . key fudge_opt_re . sep_spc . store word ]
     let fudge_record = record "fudge" fudge_opt?
 
-    (* Define simple settings *)
-    let simple_setting (kw:string) = [ key kw . sep_spc . store word . eol ]
+    (* Define simple settings, see miscopt.html in ntp docs *)
+    let flags =
+      let flags_re = /auth|bclient|calibrate|kernel|monitor|ntp|pps|stats/ in
+      let flag = [ label "flag" . store flags_re ] in
+        [ key /enable|disable/ . (sep_spc . flag)* . eol ]
+
+    let simple_setting (k:regexp) = kv k word
+
+    (* Still incomplete, misses logconfig, phone, setvar, tinker, tos,
+       trap, ttl *)
+    let simple_settings =
+        kv "broadcastdelay" Rx.decimal
+      | flags
+      | simple_setting /driftfile|leapfile|logfile|includefile/
+	  | simple_setting "statsdir"
+
+    (* Misc commands, see miscopt.html in ntp docs *)
 
-    let simple_settings = simple_setting "driftfile"
-                        | simple_setting "logfile"
-			| simple_setting "statsdir"
-    
     (* Define restrict *)
     let restrict_record   =
       let action    = [ label "action" . sep_spc . store word ] in
@@ -82,19 +96,16 @@ module Ntp =
 
     (* Authentication commands, see authopt.html#cmd; incomplete *)
     let auth_command =
-      [ key /controlkey|keys|keysdir|requestkey/ . 
+      [ key /controlkey|keys|keysdir|requestkey/ .
             sep_spc . store word . eol ]
      | [ key /autokey|revoke/ . [sep_spc . store word]? . eol ]
      | [ key /trustedkey/ . [ sep_spc . label "key" . store word ]+ . eol ]
 
-    (* Includefile *)
-    let files = [ key /includefile/ . sep_spc . store word . eol ]
-
     (* Define lens *)
 
     let lns = ( comment | empty | command_record | fudge_record
               | restrict_record | simple_settings | statistics_record
-              | filegen_record | files | broadcastclient
+              | filegen_record | broadcastclient
               | auth_command )*
 
     let filter = (incl "/etc/ntp.conf")
diff --git a/lenses/tests/test_ntp.aug b/lenses/tests/test_ntp.aug
index f56a924..3bdd60b 100644
--- a/lenses/tests/test_ntp.aug
+++ b/lenses/tests/test_ntp.aug
@@ -134,3 +134,14 @@ filegen clockstats file clockstats type day enable nolink
 
   test Ntp.auth_command get "trustedkey 42\n" = 
      { "trustedkey" { "key" = "42" } }
+
+  test Ntp.lns get "broadcastdelay 0.008\n" =
+     { "broadcastdelay" = "0.008" }
+
+  test Ntp.lns get "enable auth calibrate\ndisable kernel stats\n" =
+     { "enable"
+         { "flag" = "auth" }
+         { "flag" = "calibrate" } }
+     { "disable"
+         { "flag" = "kernel" }
+         { "flag" = "stats" } }




More information about the augeas-devel mailing list