From fa1e7d4097a3ec7b828a775832e6e86b48b426bd Mon Sep 17 00:00:00 2001
From: shangxdy <shang.xiaodong@zte.com.cn>
Date: Thu, 25 May 2017 15:43:13 +0800
Subject: [PATCH] Fix ZUUL_USER_SSH_PUBLIC_KEY to support ssh key content

Currently ZUUL_USER_SSH_PUBLIC_KEY must be a key file, but
there is no change to create the key file, so it not convenient
for building a image with diskimage-builder, this patch makes
it possible to set ssh public key through ZUUL_USER_SSH_PUBLIC_KEY
in envirement(e.g. diskimage configuration in nodepool.yaml  ).

Change-Id: I83ef3d2e5ff5c3951ecf7036c46d0d8a68871e0c
Signed-off-by: shangxdy <shang.xiaodong@zte.com.cn>
---
 .../elements/zuul-worker/extra-data.d/60-zuul-user    | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

diff --git a/nodepool/elements/zuul-worker/extra-data.d/60-zuul-user b/nodepool/elements/zuul-worker/extra-data.d/60-zuul-user
index 1795ed846d..aa1eb9457b 100755
--- a/nodepool/elements/zuul-worker/extra-data.d/60-zuul-user
+++ b/nodepool/elements/zuul-worker/extra-data.d/60-zuul-user
@@ -8,9 +8,12 @@ set -o pipefail
 
 ZUUL_USER_SSH_PUBLIC_KEY=${ZUUL_USER_SSH_PUBLIC_KEY:-$HOME/.ssh/id_rsa.pub}
 
-if [ ! -f $ZUUL_USER_SSH_PUBLIC_KEY ]; then
+if [ -f "$ZUUL_USER_SSH_PUBLIC_KEY" ]; then
+    # save the public key inside the chroot from specific file
+    cat $ZUUL_USER_SSH_PUBLIC_KEY >> $TMP_HOOKS_PATH/zuul-user-ssh-public-key
+elif [ -n "$ZUUL_USER_SSH_PUBLIC_KEY" ]; then
+    # save the specific public key inside the chroot from env derectly
+    echo "$ZUUL_USER_SSH_PUBLIC_KEY" >> $TMP_HOOKS_PATH/zuul-user-ssh-public-key
+else
     die "Can not find public key for zuul user!"
 fi
-
-# save the public key inside the chroot
-cat $ZUUL_USER_SSH_PUBLIC_KEY >> $TMP_HOOKS_PATH/zuul-user-ssh-public-key