From 92005e25670206302ae87d1b3da561f0911aa176 Mon Sep 17 00:00:00 2001 From: Steven Armstrong Date: Sat, 26 Mar 2011 00:24:35 +0100 Subject: [PATCH] extract code to run an objects explorers into its own executable Signed-off-by: Steven Armstrong --- bin/cdist-object-explorer-run | 61 +++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100755 bin/cdist-object-explorer-run diff --git a/bin/cdist-object-explorer-run b/bin/cdist-object-explorer-run new file mode 100755 index 00000000..e349a490 --- /dev/null +++ b/bin/cdist-object-explorer-run @@ -0,0 +1,61 @@ +#!/bin/sh +# +# 2010-2011 Nico Schottelius (nico-cdist at schottelius.org) +# 2011 Steven Armstrong (steven-cdist at armstrong.cc) +# +# This file is part of cdist. +# +# cdist is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# cdist is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with cdist. If not, see . +# +# +# Run the explorers for the given object on the target host. +# + +. cdist-config +[ $# -eq 2 ] || __cdist_usage " " + +set -eu + +__cdist_target_host="$1"; shift +__object="$1"; shift + +__object_id="$(__cdist_object_id_from_object "$__object")" +__cdist_type="$(__cdist_type_from_object "$__object")" + +# Check if type of object has >= 1 explorer +has_explorer="$(__cdist_type_has_explorer "$__cdist_type")" + +# If so, run explorers on remote side +if [ "$has_explorer" ]; then + echo "Running explorers for $__object ..." + # Copy object parameters + cdist-dir push "$__cdist_target_host" \ + "$(__cdist_object_parameter_dir "$__object")" \ + "$(__cdist_remote_object_parameter_dir "$__object")" + + # Execute explorers + cdist-run-remote "$__cdist_target_host" \ + "__object=\"$(__cdist_remote_object_dir "$__object")\"" \ + "__object_id=\"$__object_id\"" \ + cdist-remote-explorer-run \ + "$__cdist_name_var_type_explorer" \ + "$(__cdist_remote_type_explorer_dir "$__cdist_type")" \ + "$(__cdist_remote_object_type_explorer_dir "$__object")" + + # Copy back results + cdist-dir pull "$__cdist_target_host" \ + "$(__cdist_remote_object_type_explorer_dir "$__object")" \ + "$(__cdist_object_type_explorer_dir "$__object")" +fi +