summaryrefslogtreecommitdiff
path: root/nodes.sh
blob: bef9f51e6af9084e116c9b1f4542a746c55f13c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/bin/bash
set -eux

OUTPUT_FILE=${OUTPUT_FILE:-"nodes.csv"}
NODES_JSON_FILE=${NODES_JSON_FILE:-"/home/stack/instackenv.json"}

NUM_NODES=$(jq '.nodes | length' $NODES_JSON_FILE)

if [ -e $OUTPUT_FILE ]; then
    rm $OUTPUT_FILE
fi

for i in $(seq 0 $(expr $NUM_NODES - 1)); do
    DRIVER=$(jq -r ".nodes[${i}] | .[\"pm_type\"]" $NODES_JSON_FILE)
    SSH_ADDRESS=$(jq -r ".nodes[${i}] | .[\"pm_addr\"]" $NODES_JSON_FILE)
    SSH_USERNAME=$(jq -r ".nodes[${i}] | .[\"pm_user\"]" $NODES_JSON_FILE)
    SSH_KEY_CONTENTS=$(jq -r ".nodes[${i}] | .[\"pm_password\"]" $NODES_JSON_FILE)
    MAC=$(jq -r ".nodes[${i}] | .mac[0]" $NODES_JSON_FILE)
    echo "${DRIVER},${SSH_ADDRESS},${SSH_USERNAME},\"${SSH_KEY_CONTENTS}\",${MAC}" >> $OUTPUT_FILE
done