forked from ungleich-public/cdist
refactor so that there is no interaction between code-local and code-remote
Signed-off-by: Steven Armstrong <steven@icarus.ethz.ch>
This commit is contained in:
parent
a3dea70a97
commit
fcfd2d0a3c
3 changed files with 19 additions and 20 deletions
|
@ -53,11 +53,24 @@ if [ "$state_should" = "present" -o "$state_should" = "exists" ]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ "$create_file" -o "$upload_file" ]; then
|
if [ "$create_file" -o "$upload_file" ]; then
|
||||||
|
# tell gencode-remote that we created or uploaded a file and that it must
|
||||||
|
# set all attributes no matter what the explorer retreived
|
||||||
mkdir "$__object/files"
|
mkdir "$__object/files"
|
||||||
|
touch "$__object/files/set-attributes"
|
||||||
|
|
||||||
|
# upload file to temp location
|
||||||
tempfile_template="${destination}.cdist.XXXXXXXXXX"
|
tempfile_template="${destination}.cdist.XXXXXXXXXX"
|
||||||
echo "$__remote_exec ${__target_host} \"mktemp $tempfile_template\" > \"$__object/files/destination_upload\""
|
cat << DONE
|
||||||
|
destination_upload="\$($__remote_exec $__target_host "mktemp $tempfile_template")"
|
||||||
|
DONE
|
||||||
if [ "$upload_file" ]; then
|
if [ "$upload_file" ]; then
|
||||||
echo "$__remote_copy $source ${__target_host}:\$(cat \"$__object/files/destination_upload\")"
|
cat << DONE
|
||||||
fi
|
$__remote_copy $source ${__target_host}:\$destination_upload
|
||||||
|
DONE
|
||||||
|
fi
|
||||||
|
# move uploaded file into place
|
||||||
|
cat << DONE
|
||||||
|
$__remote_exec $__target_host "rm -rf \"$destination\"; mv \"\$destination_upload\" \"$destination\""
|
||||||
|
DONE
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -57,29 +57,13 @@ set_mode() {
|
||||||
set_attributes=
|
set_attributes=
|
||||||
case "$state_should" in
|
case "$state_should" in
|
||||||
present|exists)
|
present|exists)
|
||||||
if [ -f "$__object/files/destination_upload" ]; then
|
|
||||||
# we uploaded a file, move it into place and set all attributes
|
|
||||||
destination_upload="$(cat "$__object/files/destination_upload")"
|
|
||||||
set_attributes=1
|
|
||||||
if [ "$type" = "directory" ]; then
|
|
||||||
# our destination is currently a directory, delete it
|
|
||||||
cat << DONE
|
|
||||||
rm -rf "$destination"
|
|
||||||
DONE
|
|
||||||
fi
|
|
||||||
# move our upload into place
|
|
||||||
cat << DONE
|
|
||||||
mv "$destination_upload" "$destination"
|
|
||||||
DONE
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Note: Mode - needs to happen last as a chown/chgrp can alter mode by
|
# Note: Mode - needs to happen last as a chown/chgrp can alter mode by
|
||||||
# clearing S_ISUID and S_ISGID bits (see chown(2))
|
# clearing S_ISUID and S_ISGID bits (see chown(2))
|
||||||
for attribute in group owner mode; do
|
for attribute in group owner mode; do
|
||||||
if [ -f "$__object/parameter/$attribute" ]; then
|
if [ -f "$__object/parameter/$attribute" ]; then
|
||||||
value_should="$(cat "$__object/parameter/$attribute")"
|
value_should="$(cat "$__object/parameter/$attribute")"
|
||||||
value_is="$(get_current_value "$attribute" "$value_should")"
|
value_is="$(get_current_value "$attribute" "$value_should")"
|
||||||
if [ "$set_attributes" -o "$value_should" != "$value_is" ]; then
|
if [ -f "$__object/files/set-attributes" -o "$value_should" != "$value_is" ]; then
|
||||||
"set_$attribute" "$value_should"
|
"set_$attribute" "$value_should"
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -249,7 +249,7 @@ class Config(object):
|
||||||
cdist_type = cdist_object.cdist_type
|
cdist_type = cdist_object.cdist_type
|
||||||
|
|
||||||
# Generate
|
# Generate
|
||||||
self.log.info("Generating and executing code for %s" % (cdist_object.name))
|
self.log.info("Generating code for %s" % (cdist_object.name))
|
||||||
cdist_object.code_local = self.code.run_gencode_local(cdist_object)
|
cdist_object.code_local = self.code.run_gencode_local(cdist_object)
|
||||||
cdist_object.code_remote = self.code.run_gencode_remote(cdist_object)
|
cdist_object.code_remote = self.code.run_gencode_remote(cdist_object)
|
||||||
if cdist_object.code_local or cdist_object.code_remote:
|
if cdist_object.code_local or cdist_object.code_remote:
|
||||||
|
@ -257,6 +257,8 @@ class Config(object):
|
||||||
|
|
||||||
# Execute
|
# Execute
|
||||||
if not self.dry_run:
|
if not self.dry_run:
|
||||||
|
if cdist_object.code_local or cdist_object.code_remote:
|
||||||
|
self.log.info("Executing code for %s" % (cdist_object.name))
|
||||||
if cdist_object.code_local:
|
if cdist_object.code_local:
|
||||||
self.code.run_code_local(cdist_object)
|
self.code.run_code_local(cdist_object)
|
||||||
if cdist_object.code_remote:
|
if cdist_object.code_remote:
|
||||||
|
|
Loading…
Reference in a new issue