|
|
@ -225,6 +225,31 @@ _get_docker_compose_links() { |
|
|
|
merge_yaml_str "${deps[@]}" | tee "$cache_file" |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
_get_docker_compose_opts() { |
|
|
|
local service="$1" cache_file="$state_tmpdir/$FUNCNAME.cache.$(echo "$*" | md5_compat)" \ |
|
|
|
links charm charm_part master_charm |
|
|
|
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 |
|
|
|
|
|
|
|
compose_def="$(get_compose_service_def "$service")" || return 1 |
|
|
|
master_charm="$(_get_top_master_charm_for_service "$service")" |
|
|
|
docker_compose_opts=$(echo "$compose_def" | shyaml get-value "docker-compose" 2>/dev/null) |
|
|
|
|
|
|
|
if [ "$docker_compose_opts" ]; then |
|
|
|
yaml_key_val_str "$master_charm" "$docker_compose_opts" |
|
|
|
fi | tee "$cache_file" |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
## |
|
|
|
## By Reading the metadata.yml, we create a docker-compose.yml mixin. |
|
|
|
## Some metadata.yml (of subordinates) will indeed modify other |
|
|
@ -247,6 +272,7 @@ _get_docker_compose_service_mixin() { |
|
|
|
## The compose part |
|
|
|
|
|
|
|
links_yaml=$(_get_docker_compose_links "$service") || return 1 |
|
|
|
docker_compose_options=$(_get_docker_compose_opts "$service") || return 1 |
|
|
|
|
|
|
|
## the charm part |
|
|
|
|
|
|
@ -257,7 +283,7 @@ _get_docker_compose_service_mixin() { |
|
|
|
## Merge results |
|
|
|
if [ "$charm_part" ]; then |
|
|
|
charm_yaml="$(yaml_key_val_str "$master_charm" "$charm_part")" || return 1 |
|
|
|
merge_yaml_str "$links_yaml" "$charm_yaml" |
|
|
|
merge_yaml_str "$links_yaml" "$charm_yaml" "$docker_compose_options" |
|
|
|
else |
|
|
|
echo "$links_yaml" |
|
|
|
fi > "$cache_file" |
|
|
|