|
|
@ -457,6 +457,26 @@ get_service_base_image_dir_uid_gid() { |
|
|
|
export -f get_service_base_image_dir_uid_gid |
|
|
|
|
|
|
|
|
|
|
|
get_service_type() { |
|
|
|
local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$1" |
|
|
|
if [ -z "$service" ]; then |
|
|
|
print_syntax_error "$FUNCNAME: Please specify a service as first argument." |
|
|
|
return 1 |
|
|
|
fi |
|
|
|
|
|
|
|
if [ -e "$cache_file" ]; then |
|
|
|
# debug "$FUNCNAME: cache hit ($*)" |
|
|
|
cat "$cache_file" |
|
|
|
return 0 |
|
|
|
fi |
|
|
|
|
|
|
|
charm=$(get_service_charm "$service") || return 1 |
|
|
|
metadata=$(charm.metadata "$charm") || return 1 |
|
|
|
printf "%s" "$metadata" | shyaml get-value type service 2>/dev/null | |
|
|
|
tee "$cache_file" |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
are_files_locked_in_dir() { |
|
|
|
local dir="$1" device hdev ldev |
|
|
|
device=$(stat -c %d "$dir") || { |
|
|
@ -2923,9 +2943,7 @@ else |
|
|
|
up) |
|
|
|
if [ "${#services_args[@]}" == 0 ]; then |
|
|
|
while read-0 service; do |
|
|
|
charm=$(get_service_charm "$service") |
|
|
|
metadata=$(charm.metadata "$charm") |
|
|
|
type="$(printf "%s" "$metadata" | shyaml get-value type 2>/dev/null)" || true |
|
|
|
type="$(get_service_type "$service")" || exit 1 |
|
|
|
if [ "$type" != "run-once" ]; then |
|
|
|
services_args+=("$service") |
|
|
|
fi |
|
|
|