[libvirt] [libvirt-jenkins-ci PATCH 2/6] guests: Move configuration handling to load_config()

Andrea Bolognani abologna at redhat.com
Thu Oct 19 15:36:28 UTC 2017


Just a code move. We'll be adding more logic soon, and it'll
be nice not to pollute the do_prepare() function too much
because of it. Rename the existing load_config() function to
load_install_config() accordingly.

Signed-off-by: Andrea Bolognani <abologna at redhat.com>
---
 guests/lcitool | 54 +++++++++++++++++++++++++++++++-----------------------
 1 file changed, 31 insertions(+), 23 deletions(-)

diff --git a/guests/lcitool b/guests/lcitool
index 4578327..883e0eb 100755
--- a/guests/lcitool
+++ b/guests/lcitool
@@ -34,12 +34,12 @@ yaml_var() {
     grep "^$2:\\s*" "$1" 2>/dev/null | tail -1 | sed "s/$2:\\s*//g"
 }
 
-# load_config FILE
+# load_install_config FILE
 #
 # Read all known configuration variables from $FILE and set them in the
 # environment. Configuration variables that have already been set in
 # the environment will not be updated.
-load_config() {
+load_install_config() {
     INSTALL_URL=${INSTALL_URL:-$(yaml_var "$1" install_url)}
     INSTALL_CONFIG=${INSTALL_CONFIG:-$(yaml_var "$1" install_config)}
     INSTALL_VIRT_TYPE=${INSTALL_VIRT_TYPE:-$(yaml_var "$1" install_virt_type)}
@@ -53,6 +53,32 @@ load_config() {
     INSTALL_NETWORK=${INSTALL_NETWORK:-$(yaml_var "$1" install_network)}
 }
 
+# load_config
+#
+# Read tool configuration and perform the necessary validation.
+load_config() {
+    CONFIG_DIR="$HOME/.config/$PROGRAM_NAME"
+
+    VAULT_PASS_FILE="$CONFIG_DIR/vault-password"
+    ROOT_PASS_FILE="$CONFIG_DIR/root-password"
+
+    # Make sure required passwords exist and are not invalid (empty)
+    test -f "$VAULT_PASS_FILE" && test "$(cat "$VAULT_PASS_FILE")" || {
+        die "$PROGRAM_NAME: $VAULT_PASS_FILE: Missing or invalid password"
+    }
+    test -f "$ROOT_PASS_FILE" && test "$(cat "$ROOT_PASS_FILE")" || {
+        die "$PROGRAM_NAME: $ROOT_PASS_FILE: Missing or invalid password"
+    }
+
+    ROOT_HASH_FILE="$CONFIG_DIR/.root-password.hash"
+
+    # Regenerate root password hash. Ansible expects passwords as hashes but
+    # doesn't provide a built-in facility to generate one from plain text
+    hash_file "$ROOT_PASS_FILE" >"$ROOT_HASH_FILE" || {
+        die "$PROGRAM_NAME: Failure while hashing root password"
+    }
+}
+
 # ----------------------
 #  User-visible actions
 # ----------------------
@@ -92,8 +118,8 @@ do_install()
     # Load configuration files. Values don't get overwritten after being
     # set the first time, so loading the host-specific configuration before
     # the group configuration ensures overrides work as expected
-    load_config "host_vars/$GUEST/install.yml"
-    load_config "group_vars/all/install.yml"
+    load_install_config "host_vars/$GUEST/install.yml"
+    load_install_config "group_vars/all/install.yml"
 
     # Both memory size and disk size use GiB as unit, but virt-install wants
     # disk size in GiB and memory size in *MiB*, so perform conversion here
@@ -136,24 +162,7 @@ do_prepare() {
         die "$PROGRAM_NAME: $GUEST: Unknown guest"
     }
 
-    VAULT_PASS_FILE="$CONFIG_DIR/vault-password"
-    ROOT_PASS_FILE="$CONFIG_DIR/root-password"
-
-    # Make sure required passwords exist and are not invalid (empty)
-    test -f "$VAULT_PASS_FILE" && test "$(cat "$VAULT_PASS_FILE")" || {
-        die "$PROGRAM_NAME: $VAULT_PASS_FILE: Missing or invalid password"
-    }
-    test -f "$ROOT_PASS_FILE" && test "$(cat "$ROOT_PASS_FILE")" || {
-        die "$PROGRAM_NAME: $ROOT_PASS_FILE: Missing or invalid password"
-    }
-
-    ROOT_HASH_FILE="$CONFIG_DIR/.root-password.hash"
-
-    # Regenerate root password hash. Ansible expects passwords as hashes but
-    # doesn't provide a built-in facility to generate one from plain text
-    hash_file "$ROOT_PASS_FILE" >"$ROOT_HASH_FILE" || {
-        die "$PROGRAM_NAME: Failure while hashing root password"
-    }
+    load_config
 
     ansible-playbook \
         --vault-password-file "$VAULT_PASS_FILE" \
@@ -167,7 +176,6 @@ do_prepare() {
 
 CALL_NAME="$0"
 PROGRAM_NAME="${0##*/}"
-CONFIG_DIR="$HOME/.config/$PROGRAM_NAME"
 
 test -f "$PROGRAM_NAME" || {
     die "$PROGRAM_NAME: Must be run from the source directory"
-- 
2.13.6




More information about the libvir-list mailing list