aboutsummaryrefslogtreecommitdiff
path: root/share/hydra/nodes
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2010-11-14 14:50:55 -0200
committerSilvio Rhatto <rhatto@riseup.net>2010-11-14 14:50:55 -0200
commit2c1c916fc6b0a11ca572ede5a95e63b46fa1e61d (patch)
treee7b8ea9677150f7e234ff4e59a22a2a92f5a724e /share/hydra/nodes
parentdbf0e0cb984c7be0f805f58d20e65b6780dc6f77 (diff)
downloadhydra-2c1c916fc6b0a11ca572ede5a95e63b46fa1e61d.tar.gz
hydra-2c1c916fc6b0a11ca572ede5a95e63b46fa1e61d.tar.bz2
Nodes and mass updates
Diffstat (limited to 'share/hydra/nodes')
-rwxr-xr-xshare/hydra/nodes35
1 files changed, 28 insertions, 7 deletions
diff --git a/share/hydra/nodes b/share/hydra/nodes
index 6b9d101..84eb7f0 100755
--- a/share/hydra/nodes
+++ b/share/hydra/nodes
@@ -3,26 +3,47 @@
# Node tool.
#
-# Default node retrieval method
-function hydra_get_nodes {
- # See http://www.mail-archive.com/puppet-users@googlegroups.com/msg01615.html
+# Get a list of puppet node files
+function hydra_node_files {
if [ -d "$PUPPET/manifests/nodes/" ]; then
- files="$PUPPET/manifests/nodes/*"
+ FILES="$PUPPET/manifests/nodes/*"
else
- files="`find $PUPPET -name 'nodes.pp'`"
+ FILES="`find $PUPPET -name 'nodes.pp'`"
fi
- grep ^node $files | sed -e 's/^node //' | awk -F, '{for(i=1;i<=NF;i++) {print $i}}' | cut -d "'" -f2
+}
+
+# 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
-hydra_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