[Libguestfs] [PATCH 1/2] v2v:windows: factor out getting CurrentControlSet

Roman Kagan rkagan at virtuozzo.com
Wed Aug 17 17:59:43 UTC 2016


It will be used in new code in a followup patch.

Signed-off-by: Roman Kagan <rkagan at virtuozzo.com>
---
 v2v/convert_windows.ml | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

diff --git a/v2v/convert_windows.ml b/v2v/convert_windows.ml
index 55bb3ef..751a6ab 100644
--- a/v2v/convert_windows.ml
+++ b/v2v/convert_windows.ml
@@ -210,6 +210,13 @@ let convert ~keep_serial_console (g : G.guestfs) inspect source rcaps =
   (*----------------------------------------------------------------------*)
   (* Perform the conversion of the Windows guest. *)
 
+  (* Find the 'Current' ControlSet. *)
+  let get_current_cs root =
+    let select = g#hivex_node_get_child root "Select" in
+    let valueh = g#hivex_node_get_value select "Current" in
+    let value = int_of_le32 (g#hivex_value_value valueh) in
+    sprintf "ControlSet%03Ld" value in
+
   let rec configure_firstboot () =
     (match installer with
      | None -> ()
@@ -302,14 +309,8 @@ if errorlevel 3010 exit /b 0
     (* Update the SYSTEM hive.  When this function is called the hive has
      * already been opened as a hivex handle inside guestfs.
      *)
-    (* Find the 'Current' ControlSet. *)
-    let current_cs =
-      let select = g#hivex_node_get_child root "Select" in
-      let valueh = g#hivex_node_get_value select "Current" in
-      let value = int_of_le32 (g#hivex_value_value valueh) in
-      sprintf "ControlSet%03Ld" value in
-
-    debug "current ControlSet is %s" current_cs;
+    let current_cs = get_current_cs root in
+    if verbose () then printf "current ControlSet is %s\n%!" current_cs;
 
     disable_services root current_cs;
     disable_prl_drivers root current_cs;
-- 
2.7.4




More information about the Libguestfs mailing list