Remove the data(keys) and log files of puppet.
 
 Signed-off-by: Wanlong Gao <gaowanlong(a)cn.fujitsu.com>
 ---
  TODO                                         |    1 -
  sysprep/Makefile.am                          |    2 +
  sysprep/sysprep_operation_puppet_data_log.ml |   52 ++++++++++++++++++++++++++
  3 files changed, 54 insertions(+), 1 deletion(-)
  create mode 100644 sysprep/sysprep_operation_puppet_data_log.ml
 
 diff --git a/TODO b/TODO
 index b2d53d7..a89d52e 100644
 --- a/TODO
 +++ b/TODO
 @@ -377,7 +377,6 @@ virt-sysprep ideas
  ------------------
  
   - other Spacewalk / RHN IDs (?)
 - - Puppet registration
   - Windows sysprep
     (see:
https://github.com/clalancette/oz/blob/e74ce83283d468fd987583d6837b441608...
)
   - (librarian suggests ...)
 diff --git a/sysprep/Makefile.am b/sysprep/Makefile.am
 index 4f49ad3..2afd406 100644
 --- a/sysprep/Makefile.am
 +++ b/sysprep/Makefile.am
 @@ -49,6 +49,7 @@ SOURCES = \
  	sysprep_operation_net_hwaddr.ml \
  	sysprep_operation_package_manager_cache.ml \
  	sysprep_operation_pam_data.ml \
 +	sysprep_operation_puppet_data_log.ml \
  	sysprep_operation_random_seed.ml \
  	sysprep_operation_rhn_systemid.ml \
  	sysprep_operation_samba_db_log.ml \
 @@ -86,6 +87,7 @@ OBJECTS = \
  	sysprep_operation_net_hwaddr.cmx \
  	sysprep_operation_package_manager_cache.cmx \
  	sysprep_operation_pam_data.cmx \
 +	sysprep_operation_puppet_data_log.cmx \
  	sysprep_operation_random_seed.cmx \
  	sysprep_operation_rhn_systemid.cmx \
  	sysprep_operation_samba_db_log.cmx \
 diff --git a/sysprep/sysprep_operation_puppet_data_log.ml
b/sysprep/sysprep_operation_puppet_data_log.ml
 new file mode 100644
 index 0000000..38061f8
 --- /dev/null
 +++ b/sysprep/sysprep_operation_puppet_data_log.ml
 @@ -0,0 +1,52 @@
 +(* virt-sysprep
 + * Copyright (C) 2012 FUJITSU LIMITED
 + *
 + * This program is free software; you can redistribute it and/or modify
 + * it under the terms of the GNU General Public License as published by
 + * the Free Software Foundation; either version 2 of the License, or
 + * (at your option) any later version.
 + *
 + * This program is distributed in the hope that it will be useful,
 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 + * GNU General Public License for more details.
 + *
 + * You should have received a copy of the GNU General Public License along
 + * with this program; if not, write to the Free Software Foundation, Inc.,
 + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 + *)
 +
 +open Sysprep_operation
 +open Sysprep_gettext.Gettext
 +
 +module G = Guestfs
 +
 +let puppet_data_log_perform g root =
 +  let typ = g#inspect_get_type root in
 +  if typ <> "windows" then (
 +    let paths = [ "/var/log/puppet/*";
 +                  "/var/lib/puppet/*/*";
 +                  "/var/lib/puppet/*/*/*" ] in
 +    List.iter (
 +      fun path ->
 +        let files = g#glob_expand path in
 +        Array.iter (
 +          fun file ->
 +            try g#rm file with G.Error _ -> ()
 +        ) files;
 +    ) paths;
 +
 +    []
 +  )
 +  else []
 +
 +let puppet_data_log_op = {
 +  name = "puppet-data-log";
 +  enabled_by_default = false;
 +  heading = s_"Remove the data and log files of puppet";
 +  pod_description = None;
 +  extra_args = [];
 +  perform = puppet_data_log_perform;
 +}
 +
 +let () = register_operation puppet_data_log_op
 -- 
 1.7.10 
ACK.  I'll enable this by default.
Rich.
-- 
Richard Jones, Virtualization Group, Red Hat 
libguestfs lets you edit virtual machines.  Supports shell scripting,
bindings from many languages.