Blame SOURCES/0007-v2v-nbdkit-Handle-password-parameter-in-common_creat.patch

7ed5e3
From bcb9f50eee4050e72a532a0b805531dc72105a4f Mon Sep 17 00:00:00 2001
7ed5e3
From: "Richard W.M. Jones" <rjones@redhat.com>
7ed5e3
Date: Mon, 1 Jun 2020 17:18:59 +0100
7ed5e3
Subject: [PATCH] v2v: nbdkit: Handle password= parameter in common_create.
7ed5e3
7ed5e3
Just refactoring.
7ed5e3
7ed5e3
(cherry picked from commit 36c008009a601634ec1c1fbc4f619b21988f075c)
7ed5e3
---
7ed5e3
 v2v/nbdkit_sources.ml | 42 +++++++++++++++++++-----------------------
7ed5e3
 1 file changed, 19 insertions(+), 23 deletions(-)
7ed5e3
7ed5e3
diff --git a/v2v/nbdkit_sources.ml b/v2v/nbdkit_sources.ml
7ed5e3
index bfda91a7..47832011 100644
7ed5e3
--- a/v2v/nbdkit_sources.ml
7ed5e3
+++ b/v2v/nbdkit_sources.ml
7ed5e3
@@ -58,7 +58,8 @@ let error_unless_nbdkit_compiled_with_selinux config =
7ed5e3
       error (f_"nbdkit was compiled without SELinux support.  You will have to recompile nbdkit with libselinux-devel installed, or else set SELinux to Permissive mode while doing the conversion.")
7ed5e3
   )
7ed5e3
 
7ed5e3
-let common_create ?bandwidth ?extra_debug ?extra_env plugin_name plugin_args =
7ed5e3
+let common_create ?bandwidth ?extra_debug ?extra_env password
7ed5e3
+      plugin_name plugin_args =
7ed5e3
   error_unless_nbdkit_working ();
7ed5e3
   let config = Nbdkit.config () in
7ed5e3
   error_unless_nbdkit_min_version config;
7ed5e3
@@ -136,6 +137,15 @@ let common_create ?bandwidth ?extra_debug ?extra_env plugin_name plugin_args =
7ed5e3
     List.fold_left (fun cmd (k, v) -> Nbdkit.add_arg cmd k v)
7ed5e3
       cmd (plugin_args @ rate_args) in
7ed5e3
 
7ed5e3
+  (* Handle the password parameter specially. *)
7ed5e3
+  let cmd =
7ed5e3
+    match password with
7ed5e3
+    | NoPassword -> cmd
7ed5e3
+    | AskForPassword ->
7ed5e3
+       Nbdkit.add_arg cmd "password" "-"
7ed5e3
+    | PasswordFile password_file ->
7ed5e3
+       Nbdkit.add_arg cmd "password" ("+" ^ password_file) in
7ed5e3
+
7ed5e3
   cmd
7ed5e3
 
7ed5e3
 (* VDDK libraries are located under lib32/ or lib64/ relative to the
7ed5e3
@@ -223,20 +233,16 @@ See also the virt-v2v-input-vmware(1) manual.") libNN
7ed5e3
     let get_args () = List.rev !args in
7ed5e3
     add_arg, get_args in
7ed5e3
 
7ed5e3
-  let password_param =
7ed5e3
-    match password_file with
7ed5e3
-    | None ->
7ed5e3
-       (* nbdkit asks for the password interactively *)
7ed5e3
-       "password", "-"
7ed5e3
-    | Some password_file ->
7ed5e3
-       (* nbdkit reads the password from the file *)
7ed5e3
-       "password", "+" ^ password_file in
7ed5e3
   add_arg ("server", server);
7ed5e3
   add_arg ("user", user);
7ed5e3
-  add_arg password_param;
7ed5e3
   add_arg ("vm", sprintf "moref=%s" moref);
7ed5e3
   add_arg ("file", path);
7ed5e3
 
7ed5e3
+  let password =
7ed5e3
+    match password_file with
7ed5e3
+    | None -> AskForPassword
7ed5e3
+    | Some password_file -> PasswordFile password_file in
7ed5e3
+
7ed5e3
   (* The passthrough parameters. *)
7ed5e3
   Option.may (fun s -> add_arg ("config", s)) config;
7ed5e3
   Option.may (fun s -> add_arg ("cookie", s)) cookie;
7ed5e3
@@ -251,7 +257,7 @@ See also the virt-v2v-input-vmware(1) manual.") libNN
7ed5e3
   let debug_flag =
7ed5e3
     if version >= (1, 17, 10) then Some ("vddk.datapath", "0") else None in
7ed5e3
 
7ed5e3
-  common_create ?bandwidth ?extra_debug:debug_flag ?extra_env:env
7ed5e3
+  common_create ?bandwidth ?extra_debug:debug_flag ?extra_env:env password
7ed5e3
     "vddk" (get_args ())
7ed5e3
 
7ed5e3
 (* Create an nbdkit module specialized for reading from SSH sources. *)
7ed5e3
@@ -267,14 +273,9 @@ let create_ssh ?bandwidth ~password ?port ~server ?user path =
7ed5e3
   add_arg ("host", server);
7ed5e3
   Option.may (fun s -> add_arg ("port", s)) port;
7ed5e3
   Option.may (fun s -> add_arg ("user", s)) user;
7ed5e3
-  (match password with
7ed5e3
-   | NoPassword -> ()
7ed5e3
-   | AskForPassword -> add_arg ("password", "-")
7ed5e3
-   | PasswordFile password_file -> add_arg ("password", "+" ^ password_file)
7ed5e3
-  );
7ed5e3
   add_arg ("path", path);
7ed5e3
 
7ed5e3
-  common_create ?bandwidth "ssh" (get_args ())
7ed5e3
+  common_create ?bandwidth password "ssh" (get_args ())
7ed5e3
 
7ed5e3
 (* Create an nbdkit module specialized for reading from Curl sources. *)
7ed5e3
 let create_curl ?bandwidth ?cookie ~password ?(sslverify=true) ?user url =
7ed5e3
@@ -287,18 +288,13 @@ let create_curl ?bandwidth ?cookie ~password ?(sslverify=true) ?user url =
7ed5e3
     add_arg, get_args in
7ed5e3
 
7ed5e3
   Option.may (fun s -> add_arg ("user", s)) user;
7ed5e3
-  (match password with
7ed5e3
-   | NoPassword -> ()
7ed5e3
-   | AskForPassword -> add_arg ("password", "-")
7ed5e3
-   | PasswordFile password_file -> add_arg ("password", "+" ^ password_file)
7ed5e3
-  );
7ed5e3
   (* https://bugzilla.redhat.com/show_bug.cgi?id=1146007#c10 *)
7ed5e3
   add_arg ("timeout", "2000");
7ed5e3
   Option.may (fun s -> add_arg ("cookie", s)) cookie;
7ed5e3
   if not sslverify then add_arg ("sslverify", "false");
7ed5e3
   add_arg ("url", url);
7ed5e3
 
7ed5e3
-  common_create ?bandwidth "curl" (get_args ())
7ed5e3
+  common_create ?bandwidth password "curl" (get_args ())
7ed5e3
 
7ed5e3
 let run cmd =
7ed5e3
   let sock, _ = Nbdkit.run_unix cmd in
7ed5e3
-- 
7ed5e3
2.18.4
7ed5e3