summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard W.M. Jones <rjones@redhat.com>2012-04-11 13:25:36 +0100
committerRichard W.M. Jones <rjones@redhat.com>2012-04-11 13:50:53 +0100
commitb8fbbcf79147ee88c605726d74b2672b765e4d21 (patch)
tree928e8efec893b4b852f8e3aac02abc5fe5c3b3a9
parentb10a3d718e4ff8957e8af4afafcd1680c386ad33 (diff)
downloadlibguestfs-b8fbbcf79147ee88c605726d74b2672b765e4d21.tar.gz
libguestfs-b8fbbcf79147ee88c605726d74b2672b765e4d21.tar.xz
libguestfs-b8fbbcf79147ee88c605726d74b2672b765e4d21.zip
sysprep: Print some logging by default.
It can be disabled using the --quiet option. The logging looks like: Examining the guest ... Performing "cron-spool" ... Performing "dhcp-client-state" ... Performing "dhcp-server-state" ... Performing "hostname" ... Performing "logfiles" ... Performing "mail-spool" ... Performing "net-hwaddr" ... Performing "random-seed" ... Performing "rhn-systemid" ... Performing "script" ... Performing "smolt-uuid" ... Performing "ssh-hostkeys" ... Performing "udev-persistent-net" ... Performing "utmp" ... Performing "yum-uuid" ... Reviewed-by: Wanlong Gao <gaowanlong@cn.fujitsu.com>
-rw-r--r--sysprep/main.ml14
-rw-r--r--sysprep/sysprep_operation.ml5
-rw-r--r--sysprep/sysprep_operation.mli2
-rwxr-xr-xsysprep/virt-sysprep.pod8
4 files changed, 23 insertions, 6 deletions
diff --git a/sysprep/main.ml b/sysprep/main.ml
index d06b0d2a..cd7aa577 100644
--- a/sysprep/main.ml
+++ b/sysprep/main.ml
@@ -29,12 +29,13 @@ let () = Sysprep_operation.bake ()
(* Command line argument parsing. *)
let prog = Filename.basename Sys.executable_name
-let debug_gc, operations, g, selinux_relabel =
+let debug_gc, operations, g, selinux_relabel, quiet =
let debug_gc = ref false in
let domain = ref None in
let dryrun = ref false in
let files = ref [] in
let format = ref "auto" in
+ let quiet = ref false in
let libvirturi = ref "" in
let operations = ref None in
let selinux_relabel = ref `Auto in
@@ -105,6 +106,8 @@ let debug_gc, operations, g, selinux_relabel =
"--enable", Arg.String set_enable, "operations Enable specific operations";
"--format", Arg.Set_string format, "format Set format (default: auto)";
"--list-operations", Arg.Unit list_operations, " List supported operations";
+ "-q", Arg.Set quiet, " Don't print log messages";
+ "--quiet", Arg.Set quiet, " Don't print log messages";
"--selinux-relabel", Arg.Unit force_selinux_relabel, " Force SELinux relabel";
"--no-selinux-relabel", Arg.Unit no_force_selinux_relabel, " Never do SELinux relabel";
"-v", Arg.Set verbose, " Enable debugging messages";
@@ -159,10 +162,14 @@ read the man page virt-sysprep(1).
let debug_gc = !debug_gc in
let dryrun = !dryrun in
let operations = !operations in
+ let quiet = !quiet in
let selinux_relabel = !selinux_relabel in
let trace = !trace in
let verbose = !verbose in
+ if not quiet then
+ printf "Examining the guest ...\n%!";
+
(* Connect to libguestfs. *)
let g = new G.guestfs () in
if trace then g#set_trace true;
@@ -170,7 +177,7 @@ read the man page virt-sysprep(1).
add g dryrun;
g#launch ();
- debug_gc, operations, g, selinux_relabel
+ debug_gc, operations, g, selinux_relabel, quiet
let () =
(* Inspection. *)
@@ -194,7 +201,8 @@ let () =
) mps;
(* Perform the operations. *)
- let flags = Sysprep_operation.perform_operations ?operations g root in
+ let flags =
+ Sysprep_operation.perform_operations ?operations ~quiet g root in
(* Parse flags. *)
let relabel = ref false in
diff --git a/sysprep/sysprep_operation.ml b/sysprep/sysprep_operation.ml
index 3fd8afc7..fedf9a04 100644
--- a/sysprep/sysprep_operation.ml
+++ b/sysprep/sysprep_operation.ml
@@ -169,7 +169,7 @@ let list_operations () =
*)
List.iter (fun op -> print_endline op.name ) !ops
-let perform_operations ?operations g root =
+let perform_operations ?operations ?(quiet = false) g root =
assert !baked;
let ops =
@@ -181,7 +181,8 @@ let perform_operations ?operations g root =
let flags =
List.map (
fun op ->
- (* eprintf "calling %S.perform g %S\n" op.name root; *)
+ if not quiet then
+ printf "Performing %S ...\n%!" op.name;
op.perform g root
) ops in
diff --git a/sysprep/sysprep_operation.mli b/sysprep/sysprep_operation.mli
index 5fe035f6..0f585100 100644
--- a/sysprep/sysprep_operation.mli
+++ b/sysprep/sysprep_operation.mli
@@ -95,5 +95,5 @@ val add_to_set : string -> set -> set
Note that this will raise [Not_found] if [name] is not
a valid operation name. *)
-val perform_operations : ?operations:set -> Guestfs.guestfs -> string -> flag list
+val perform_operations : ?operations:set -> ?quiet:bool -> Guestfs.guestfs -> string -> flag list
(** Perform all operations, or the subset listed in the [operations] set. *)
diff --git a/sysprep/virt-sysprep.pod b/sysprep/virt-sysprep.pod
index 8120c78d..a8cffb6c 100755
--- a/sysprep/virt-sysprep.pod
+++ b/sysprep/virt-sysprep.pod
@@ -124,6 +124,14 @@ security problem with malicious guests (CVE-2010-3851).
List the operations supported by the virt-sysprep program.
+=item B<-q>
+
+=item B<--quiet>
+
+Don't print log messages.
+
+To enable detailed logging of individual file operations, use I<-x>.
+
=item B<--selinux-relabel>
=item B<--no-selinux-relabel>