#!/bin/bash # # Node tool. # # Get a list of puppet node files function hydra_node_files { if [ -d "$PUPPET/manifests/nodes/" ]; then FILES="$PUPPET/manifests/nodes/*" else FILES="`find $PUPPET -name 'nodes.pp'`" fi } # Get all lines matching a node definition function hydra_node_lines { # See http://www.mail-archive.com/puppet-users@googlegroups.com/msg01615.html grep ^node $FILES | sed -e 's/^node //' | awk -F, '{for(i=1;i<=NF;i++) {print $i}}' } # Default node retrieval method function hydra_nodes { hydra_node_lines | cut -d "'" -f2 } # Load source $APP_BASE/lib/hydra/functions || exit 1 hydra_config_load # Command line arguments CLASS="$1" # Validation if [ -z "$PUPPET" ]; then echo "No PUPPET parameter defined at $HYDRA preferences." exit 1 fi # Get initial file list hydra_node_files # Get nodes if [ ! -z "$CLASS" ]; then FILES="`hydra_node_lines | cut -d ':' -f 1`" FILES="`grep nodo::$CLASS $FILES | cut -d ':' -f 1`" hydra_nodes else hydra_nodes fi