| 
									
										
										
										
											2011-03-26 00:24:35 +01:00
										 |  |  | #!/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 <http://www.gnu.org/licenses/>. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | #  | 
					
						
							|  |  |  | # Run the explorers for the given object on the target host. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | . cdist-config | 
					
						
							|  |  |  | [ $# -eq 2 ] || __cdist_usage "<target host> <object>" | 
					
						
							|  |  |  | set -eu | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | __cdist_target_host="$1"; shift | 
					
						
							| 
									
										
										
										
											2011-03-29 15:29:56 +02:00
										 |  |  | __cdist_object="$1"; shift | 
					
						
							| 
									
										
										
										
											2011-03-26 00:24:35 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-06 20:50:09 +02:00
										 |  |  | __cdist_object_id="$(__cdist_object_id_from_object "$__cdist_object")" | 
					
						
							| 
									
										
										
										
											2011-03-29 15:29:56 +02:00
										 |  |  | __cdist_type="$(__cdist_type_from_object "$__cdist_object")" | 
					
						
							| 
									
										
										
										
											2011-04-06 20:51:17 +02:00
										 |  |  | __cdist_object_self="$__cdist_type/$__cdist_object_id" | 
					
						
							| 
									
										
										
										
											2011-03-26 00:24:35 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-29 14:36:35 +02:00
										 |  |  | # Check if type of object has >= 1 explorer | 
					
						
							|  |  |  | __cdist_has_explorer="$(__cdist_type_has_explorer "$__cdist_type")" | 
					
						
							|  |  |  | # Run the type explorers for the current object if any | 
					
						
							| 
									
										
										
										
											2011-03-29 10:34:04 +02:00
										 |  |  | if [ "$__cdist_has_explorer" ]; then | 
					
						
							| 
									
										
										
										
											2011-03-29 14:36:35 +02:00
										 |  |  |    if ! __cdist_type_explorer_pushed "$__cdist_type"; then | 
					
						
							|  |  |  |       src_dir="$(__cdist_type_explorer_dir "$__cdist_type")" | 
					
						
							|  |  |  |       dst_dir="$(__cdist_remote_type_explorer_dir "$__cdist_type")" | 
					
						
							| 
									
										
										
										
											2011-04-06 20:52:14 +02:00
										 |  |  |       __cdist_echo info "Transfering explorers for $__cdist_type ..." | 
					
						
							| 
									
										
										
										
											2011-03-29 14:36:35 +02:00
										 |  |  |       cdist-dir push "$__cdist_target_host" "$src_dir" "$dst_dir" | 
					
						
							|  |  |  |       __cdist_type_explorer_pushed_add "$__cdist_type" | 
					
						
							|  |  |  |    fi | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-06 20:58:34 +02:00
										 |  |  |    __cdist_echo info "Running explorers for $__cdist_object ..." | 
					
						
							| 
									
										
										
										
											2011-03-26 00:24:35 +01:00
										 |  |  |    # Copy object parameters | 
					
						
							| 
									
										
										
										
											2011-03-31 19:35:26 +02:00
										 |  |  |    cdist-dir push "$__cdist_target_host"                          \ | 
					
						
							|  |  |  |       "$(__cdist_object_parameter_dir "$__cdist_object")"         \ | 
					
						
							| 
									
										
										
										
											2011-03-29 15:29:56 +02:00
										 |  |  |       "$(__cdist_remote_object_parameter_dir "$__cdist_object")" | 
					
						
							| 
									
										
										
										
											2011-03-26 00:24:35 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |    # Execute explorers | 
					
						
							|  |  |  |    cdist-run-remote "$__cdist_target_host"                     \ | 
					
						
							| 
									
										
										
										
											2011-03-29 15:29:56 +02:00
										 |  |  |       "$__cdist_name_var_object=\"$(__cdist_remote_object_dir "$__cdist_object")\"" \ | 
					
						
							| 
									
										
										
										
											2011-04-06 20:50:09 +02:00
										 |  |  |       "$__cdist_name_var_object_id=\"$__cdist_object_id\"      \ | 
					
						
							| 
									
										
										
										
											2011-03-29 15:29:56 +02:00
										 |  |  |       "$__cdist_name_var_self=\"$__cdist_object\""             \ | 
					
						
							| 
									
										
										
										
											2011-03-26 00:24:35 +01:00
										 |  |  |       cdist-remote-explorer-run                                \ | 
					
						
							|  |  |  |       "$__cdist_name_var_type_explorer"                        \ | 
					
						
							|  |  |  |       "$(__cdist_remote_type_explorer_dir "$__cdist_type")"    \ | 
					
						
							| 
									
										
										
										
											2011-03-29 15:29:56 +02:00
										 |  |  |       "$(__cdist_remote_object_type_explorer_dir "$__cdist_object")" | 
					
						
							| 
									
										
										
										
											2011-03-26 00:24:35 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  |    # Copy back results | 
					
						
							| 
									
										
										
										
											2011-03-31 19:35:26 +02:00
										 |  |  |    cdist-dir pull "$__cdist_target_host"                             \ | 
					
						
							| 
									
										
										
										
											2011-03-29 15:29:56 +02:00
										 |  |  |       "$(__cdist_remote_object_type_explorer_dir "$__cdist_object")" \ | 
					
						
							|  |  |  |       "$(__cdist_object_type_explorer_dir "$__cdist_object")" | 
					
						
							| 
									
										
										
										
											2011-03-26 00:24:35 +01:00
										 |  |  | fi |