forked from ungleich-public/cdist
		
	Create, finish and integrate bin/cdist-exec-transfer
Signed-off-by: Nico Schottelius <nico@kr.ethz.ch>
This commit is contained in:
		
					parent
					
						
							
								da4cd7235c
							
						
					
				
			
			
				commit
				
					
						255124b8c9
					
				
			
		
					 4 changed files with 16 additions and 63 deletions
				
			
		|  | @ -52,3 +52,6 @@ cdist-object-codegen-all localhost "$object_tmp" "$exec_tmp" | |||
| 
 | ||||
| # Display result | ||||
| find "$exec_tmp" | ||||
| 
 | ||||
| # Transfer generated code | ||||
| cdist-exec-transfer localhost "$exec_tmp" | ||||
|  |  | |||
|  | @ -77,6 +77,7 @@ export __cdist_remote_explorer_dir | |||
| : ${__cdist_remote_cache_explorer:=$__cdist_remote_cache_dir/$__cdist_name_explorer} | ||||
| export __cdist_remote_cache_explorer | ||||
| : ${__cdist_remote_cache_bin:=$__cdist_remote_base_dir/$__cdist_name_bin} | ||||
| : ${__cdist_remote_cache_exec:=$__cdist_remote_base_dir/$__cdist_name_exec} | ||||
| 
 | ||||
| # Tempfiles need to be recreated for each individual script, unshared! | ||||
| __cdist_tmp_dir=$(mktemp -d "/tmp/cdist.XXXXXXXXXXXX") | ||||
|  |  | |||
|  | @ -38,10 +38,12 @@ cdist-explorer-run            "$__cdist_target_host" "$tmp_exp" | |||
| cdist-manifest-init           "$__cdist_target_host" "$tmp_obj" | ||||
| cdist-manifest-run-all        "$__cdist_target_host" "$tmp_obj" | ||||
| cdist-object-codegen-all      "$__cdist_target_host" "$tmp_obj" "$tmp_exec" | ||||
| cdist-object-codegen-all      "$__cdist_target_host" "$tmp_obj" "$tmp_exec" | ||||
| 
 | ||||
| exit 1 | ||||
| 
 | ||||
| cdist-target-exec "$__cdist_target_host" "$tmp_code" | ||||
| cdist-exec-transfer           "$__cdist_target_host" "$tmp_exec" | ||||
| cdist-exec-run                "$__cdist_target_host" "$tmp_exec" | ||||
| 
 | ||||
| # Create new cache - put into seperate script? | ||||
| # cdist-cache migrate? | ||||
|  |  | |||
|  | @ -18,74 +18,21 @@ | |||
| # along with cdist. If not, see <http://www.gnu.org/licenses/>. | ||||
| # | ||||
| # | ||||
| # FIXME: This script is ugly, should be either seperated into smaller ones, | ||||
| # but definitely be cleaned up - PROOF OF CONCEPT CODE | ||||
| # Transfer executables | ||||
| # | ||||
| 
 | ||||
| . cdist-config | ||||
| 
 | ||||
| if [ $# -ne 2 ]; then | ||||
|    __cdist_usage "<target host> <outdir>" | ||||
| fi | ||||
| 
 | ||||
| export __cdist_target_host="$1"; shift | ||||
| export __cdist_output_dir="$1"; shift | ||||
| 
 | ||||
| [ $# -eq 2 ] || __cdist_usage "<target host> <exec_dir>" | ||||
| set -e | ||||
| 
 | ||||
| # create basedir | ||||
| ssh root@${__cdist_target_host} "mkdir -p \"${__cdist_remote_base_dir}\" \ | ||||
|          \"${__cdist_remote_cache_dir}\" \"${__cdist_remote_cache_bin}\" \ | ||||
|         \"${__cdist_remote_cache_explorer}\"" | ||||
| export __cdist_target_host="$1"; shift | ||||
| export __cdist_exec_dir="$1"; shift | ||||
| 
 | ||||
| # Transfer all explorers to the target dir - must be one level above, so | ||||
| # coyping it multiple times works: a -> remote:/base/ = remote:/base/a vs. | ||||
| # a -> remote:/base/a = remote:/base/a/a (second copy) | ||||
| 
 | ||||
| # re-create basedir so it's clean | ||||
| ssh "root@${__cdist_target_host}" "rm -rf \"${__cdist_remote_cache_exec}\" && mkdir -p \"${__cdist_remote_cache_exec}\"" | ||||
| 
 | ||||
| # FIXME: enable -q as soon as the code is cleaned up | ||||
| scp -r "${__cdist_explorer_dir}" \ | ||||
|        "root@${__cdist_target_host}:${__cdist_remote_base_dir}" | ||||
| 
 | ||||
| # Transfer cdist binaries - FIXME: should transfer all (needed?) of them! | ||||
| scp "$(which cdist-explorer-coordinator)" "$(which cdist-config)" \ | ||||
|     "root@${__cdist_target_host}:${__cdist_remote_cache_bin}" | ||||
| 
 | ||||
| # Execute explorer coordinator, which will save results on target | ||||
| ssh root@${__cdist_target_host} \ | ||||
|    "PATH=\"${__cdist_remote_cache_bin}:\$PATH\" | ||||
|    \"${__cdist_remote_cache_bin}/cdist-explorer-coordinator\" \ | ||||
|          \"${__cdist_remote_explorer_dir}\" \"${__cdist_remote_cache_explorer}\"" | ||||
| 
 | ||||
| # Ensure local destination directory exists | ||||
| mkdir -p "$__cdist_output_dir" | ||||
| 
 | ||||
| # FIXME: enable -q as soon as the code is cleaned up | ||||
| # Transfer back all results - FIXME: Add 2 level cache, so old version is kept until success | ||||
| scp -r "root@${__cdist_target_host}:${__cdist_remote_cache_explorer}/*" \ | ||||
|       "$__cdist_output_dir" | ||||
| 
 | ||||
| 
 | ||||
| exit 0 | ||||
| 
 | ||||
| # -------------------------------------------------------------------------------- | ||||
| # old idea with shell scripts (also sexy) | ||||
| # Keep until above version successfully works | ||||
| 
 | ||||
| 
 | ||||
| cd "${__cdist_explorer_dir}" | ||||
| ls > "${__cdist_tmp_file}" | ||||
| 
 | ||||
| # first load all functions | ||||
| while read funcfull; do | ||||
|    cat "${funcfull}" | ||||
| done < "${__cdist_tmp_file}" | ||||
| 
 | ||||
| # then execute functions | ||||
| while read funcfull; do | ||||
|    sh="${funcfull##*/}" | ||||
|    func="${sh%.sh}" | ||||
|    var="__$func" | ||||
| 
 | ||||
|    echo "$var=\"\$($func)\"" | ||||
|    echo "echo $var=\\\"\$$var\\\"" | ||||
| done < "${CDIST_TMP}" | ||||
| scp -r "${__cdist_exec_dir}"/* \ | ||||
|        "root@${__cdist_target_host}:${__cdist_remote_cache_exec}" | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue