From 3cc354008a76f061ab4708922b7c0f3a8d37097b Mon Sep 17 00:00:00 2001
From: tv <tv@shackspace.de>
Date: Wed, 20 May 2015 21:58:59 +0200
Subject: [PATCH] lib/cac.sh: add cac_getserver_by_servername

---
 infest                   | 21 +++++++++------------
 lib/cac.sh               | 10 ++++++++++
 networking-configuration | 20 ++++++++------------
 3 files changed, 27 insertions(+), 24 deletions(-)

diff --git a/infest b/infest
index c6d509a50..dc5e54070 100755
--- a/infest
+++ b/infest
@@ -19,12 +19,9 @@ nix_find_sha1sum=86f8775bd4f0841edd4c816df861cebf509d58c3
 # hostname=
 
 main() {
-  listservers=$(cac_listservers)
+  server=$(cac_getserver_by_servername "$cac_servername")
 
-  config=$(echo $listservers \
-      | jq -r ".[]|select(.servername==\"$cac_servername\")")
-
-  serverstatus=$(echo $config | jq -r .status)
+  serverstatus=$(echo $server | jq -r .status)
   case $serverstatus in
     'Powered On') : ;;
     *)
@@ -32,9 +29,9 @@ main() {
       exit 2
   esac
 
-  template=$(echo $config | jq -r .template)
+  template=$(echo $server | jq -r .template)
   case $template in
-    'CentOS-7-64bit') infest_centos7_64bit "$config";;
+    'CentOS-7-64bit') infest_centos7_64bit "$server";;
     *)
       echo $0: bad template: $template >&2
       exit 3
@@ -43,14 +40,14 @@ main() {
 
 
 infest_centos7_64bit() {
-  config=$1
-  address=$(echo $config | jq -r .ip)
-  gateway=$(echo $config | jq -r .gateway)
+  server=$1
+  address=$(echo $server | jq -r .ip)
+  gateway=$(echo $server | jq -r .gateway)
   nameserver=8.8.8.8
-  netmask=$(echo $config | jq -r .netmask)
+  netmask=$(echo $server | jq -r .netmask)
   prefixLength=$(netmaskToPrefixLengh $netmask)
   RSYNC_RSH='sshpass -e ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null'
-  SSHPASS=$(echo $config | jq -r .rootpass)
+  SSHPASS=$(echo $server | jq -r .rootpass)
   export SSHPASS
   export RSYNC_RSH
 
diff --git a/lib/cac.sh b/lib/cac.sh
index 482e4ddea..c78576ebf 100644
--- a/lib/cac.sh
+++ b/lib/cac.sh
@@ -1,5 +1,15 @@
 . ./lib/url.sh
 
+
+cac_getserver_by_servername() {(
+  serverlist=$(cac_listservers)
+  echo $serverlist \
+    | jq \
+        --arg name "$1" \
+        '.[]|select(.servername==$name)'
+)}
+
+
 cac_listservers() {(
   listservers=$(_cac_get_api_v1 listservers)
   status=$(echo "$listservers" | jq -r .status)
diff --git a/networking-configuration b/networking-configuration
index 2cae39663..77b9a45be 100755
--- a/networking-configuration
+++ b/networking-configuration
@@ -19,22 +19,18 @@ hostname=$2
 
 # hostname=
 
-main() {
-  listservers=$(cac_listservers)
-
-  config=$(echo $listservers \
-      | jq -r ".[]|select(.servername==\"$cac_servername\")")
-
-  print_networking_configuraton "$config"
-}
+main() {(
+  server=$(cac_getserver_by_servername "$cac_servername")
+  print_networking_configuraton "$server"
+)}
 
 
 print_networking_configuraton() {
-  config=$1
-  address=$(echo $config | jq -r .ip)
-  gateway=$(echo $config | jq -r .gateway)
+  server=$1
+  address=$(echo $server | jq -r .ip)
+  gateway=$(echo $server | jq -r .gateway)
   nameserver=8.8.8.8
-  netmask=$(echo $config | jq -r .netmask)
+  netmask=$(echo $server | jq -r .netmask)
   prefixLength=$(netmaskToPrefixLengh $netmask)
 
   # TODO generate all config and put it into a temp dir, then rsync that