forked from 0k/0k-charms
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
138 lines
1.8 KiB
138 lines
1.8 KiB
#!/bin/bash
|
|
|
|
exname=$(basename $0)
|
|
|
|
prefix_cmd="
|
|
. /etc/shlib
|
|
|
|
include common
|
|
include parse
|
|
|
|
. ../lib/common
|
|
|
|
"
|
|
|
|
# mock
|
|
relation-get() {
|
|
local key="$1"
|
|
echo "$CFG" | shyaml get-value "$key" 2>/dev/null
|
|
}
|
|
export -f relation-get
|
|
|
|
cfg-get-value() {
|
|
local key="$1"
|
|
shyaml get-value "$key" 2>/dev/null
|
|
}
|
|
export -f cfg-get-value
|
|
|
|
get_service_relations() {
|
|
printf "%s\0" "${RELATIONS[@]}"
|
|
}
|
|
export -f get_service_relations
|
|
|
|
export state_tmpdir=$(mktemp -d -t tmp.XXXXXXXXXX)
|
|
trap "rm -rf \"$state_tmpdir\"" EXIT
|
|
|
|
##
|
|
## Tests
|
|
##
|
|
|
|
try "
|
|
__vhost_cfg_normalize_protocol '
|
|
protocol: both
|
|
'"
|
|
noerror
|
|
is out ',http,https,'
|
|
|
|
try "
|
|
__vhost_cfg_normalize_protocol '
|
|
protocol: http
|
|
'"
|
|
noerror
|
|
is out ',http,'
|
|
|
|
|
|
try "
|
|
__vhost_cfg_normalize_protocol '
|
|
protocol: https
|
|
'"
|
|
noerror
|
|
is out ',https,'
|
|
|
|
try "
|
|
__vhost_cfg_normalize_protocol '
|
|
protocol: ssl
|
|
'"
|
|
noerror
|
|
is out ',https,'
|
|
|
|
|
|
##
|
|
## auto
|
|
##
|
|
|
|
|
|
try "
|
|
__vhost_cfg_normalize_protocol '
|
|
protocol: auto
|
|
'"
|
|
noerror
|
|
is out ',http,'
|
|
|
|
try "
|
|
__vhost_cfg_normalize_protocol '
|
|
'"
|
|
noerror
|
|
is out ',http,'
|
|
|
|
|
|
try "
|
|
__vhost_cfg_normalize_protocol '
|
|
ssl: false
|
|
'"
|
|
noerror
|
|
is out ',http,'
|
|
|
|
|
|
try "
|
|
__vhost_cfg_normalize_protocol '
|
|
ssl: null
|
|
'"
|
|
noerror
|
|
is out ',http,'
|
|
|
|
|
|
try "
|
|
__vhost_cfg_normalize_protocol '
|
|
ssl: true
|
|
'"
|
|
noerror
|
|
is out ',http,https,'
|
|
|
|
|
|
## This case is special, we have values, but we don't know
|
|
## how if there are any plugin that can use it. For this
|
|
## function's responsibility, we are wanting 'ssl'.
|
|
try "
|
|
__vhost_cfg_normalize_protocol '
|
|
ssl: xxx
|
|
'"
|
|
noerror
|
|
is out ',http,https,'
|
|
|
|
|
|
try "
|
|
RELATIONS=(cert-provider foo a True)
|
|
__vhost_cfg_normalize_protocol '
|
|
'" "no ssl, but with cert-provider"
|
|
noerror
|
|
is out ',http,https,'
|
|
|
|
|
|
try "
|
|
RELATIONS=(cert-provider foo a True)
|
|
__vhost_cfg_normalize_protocol '
|
|
ssl: false
|
|
'" "with explicit ssl disable, but with cert-provider"
|
|
noerror
|
|
is out ',http,'
|