[augeas-devel] augeas: master - * src/augeas.c: erase /augeas/events/saved only once

David Lutterkort lutter at fedoraproject.org
Thu Feb 26 23:43:32 UTC 2009


Gitweb:        http://git.fedorahosted.org/git/augeas.git?p=augeas.git;a=commitdiff;h=856a6c16a7279187f0c1b7ef6965461328f4bba0
Commit:        856a6c16a7279187f0c1b7ef6965461328f4bba0
Parent:        cbe2f82b7d2c81b0e4cb2a0f2be99b04cb5143bb
Author:        David Lutterkort <lutter at redhat.com>
AuthorDate:    Tue Feb 24 22:38:18 2009 -0800
Committer:     David Lutterkort <lutter at redhat.com>
CommitterDate: Tue Feb 24 22:38:18 2009 -0800

* src/augeas.c: erase /augeas/events/saved only once

tree_save is called recursively; /augeas/events/saved must be reset
in aug_save, not tree_save
---
 src/augeas.c               |    3 ++-
 tests/test-events-saved.sh |   11 +++++------
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/src/augeas.c b/src/augeas.c
index f05dc95..529cbf7 100644
--- a/src/augeas.c
+++ b/src/augeas.c
@@ -603,7 +603,6 @@ static int tree_save(struct augeas *aug, struct tree *tree,
                      const char *path) {
     int result = 0;
     // FIXME: We need to detect subtrees that aren't saved by anything
-    aug_rm(aug, AUGEAS_EVENTS_SAVED);
 
     list_for_each(t, tree) {
         if (t->dirty) {
@@ -680,6 +679,8 @@ int aug_save(struct augeas *aug) {
     }
     free_pathx(p);
 
+    aug_rm(aug, AUGEAS_EVENTS_SAVED);
+
     list_for_each(t, aug->origin->children) {
         tree_propagate_dirty(t);
     }
diff --git a/tests/test-events-saved.sh b/tests/test-events-saved.sh
index de8bfb7..b8c5cc6 100755
--- a/tests/test-events-saved.sh
+++ b/tests/test-events-saved.sh
@@ -9,6 +9,8 @@ augtool --nostdinc -r $root -I $abs_top_srcdir/lenses <<EOF
 set /files/etc/hosts/1/ipaddr 127.0.1.1
 set /files/etc/grub.conf/default 3
 set /files/etc/inittab/1/action fake
+set /files/etc/puppet/puppet.conf/main/ssldir /dev/null
+set /files/etc/yum.repos.d/fedora.repo/fedora/enabled 0
 save
 match /augeas/events/saved
 EOF
@@ -17,14 +19,11 @@ EOF
 root=$abs_top_builddir/build/test-events-saved
 
 rm -rf $root
-mkdir -p $root/etc
-
-for f in hosts grub.conf inittab; do
-  cp -p $abs_top_srcdir/tests/root/etc/$f $root/etc
-done
+mkdir -p $root
+cp -pr $abs_top_srcdir/tests/root/* $root
 
 saved=$(run_augtool | grep ^/augeas/events/saved | cut -d ' ' -f 3 | sort | tr '\n' ' ')
-exp="/files/etc/grub.conf /files/etc/hosts /files/etc/inittab "
+exp="/files/etc/grub.conf /files/etc/hosts /files/etc/inittab /files/etc/puppet/puppet.conf /files/etc/yum.repos.d/fedora.repo "
 
 if [ "$saved" != "$exp" ]
 then




More information about the augeas-devel mailing list