forked from 0k/0k-charms
Valentin Lab
6 years ago
2 changed files with 177 additions and 5 deletions
@ -0,0 +1,162 @@ |
|||||
|
#!/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 |
||||
|
|
||||
|
merge_yaml_str() { |
||||
|
printf "<merge_yaml_str(" |
||||
|
printf "'%s', " "$@" |
||||
|
printf ")>" |
||||
|
} |
||||
|
export -f merge_yaml_str |
||||
|
|
||||
|
|
||||
|
export state_tmpdir=$(mktemp -d -t tmp.XXXXXXXXXX) |
||||
|
trap "rm -rf \"$state_tmpdir\"" EXIT |
||||
|
|
||||
|
## |
||||
|
## Tests |
||||
|
## |
||||
|
|
||||
|
try " |
||||
|
ssl_get_plugin_fun ' |
||||
|
domain: www.example.com |
||||
|
'" |
||||
|
is errlvl 1 |
||||
|
is err '' |
||||
|
is out '' |
||||
|
|
||||
|
|
||||
|
|
||||
|
try " |
||||
|
set -o pipefail |
||||
|
ssl_get_plugin_fun ' |
||||
|
domain: www.example.com |
||||
|
ssl: true |
||||
|
' | tr '\0' ':' |
||||
|
" |
||||
|
is errlvl 0 |
||||
|
is err '' |
||||
|
is out reg '^ssl_fallback:' |
||||
|
|
||||
|
|
||||
|
try " |
||||
|
ssl_get_plugin_fun ' |
||||
|
domain: www.example.com |
||||
|
ssl: |
||||
|
- a |
||||
|
- b |
||||
|
' |
||||
|
" |
||||
|
is errlvl 1 |
||||
|
is err part 'please provide a string or a struct' |
||||
|
is out '' |
||||
|
|
||||
|
|
||||
|
try " |
||||
|
ssl_get_plugin_fun ' |
||||
|
domain: www.example.com |
||||
|
ssl: |
||||
|
- a |
||||
|
- b |
||||
|
' |
||||
|
" |
||||
|
is errlvl 1 |
||||
|
is err part 'please provide a string or a struct' |
||||
|
is out '' |
||||
|
|
||||
|
|
||||
|
try " |
||||
|
ssl_get_plugin_fun ' |
||||
|
domain: www.example.com |
||||
|
ssl: xxx |
||||
|
' |
||||
|
" |
||||
|
is errlvl 1 |
||||
|
is err part 'no corresponding services declared in cert-provider' |
||||
|
is out '' |
||||
|
|
||||
|
|
||||
|
try " |
||||
|
RELATIONS=(cert-provider xxx mycfg True) |
||||
|
ssl_get_plugin_fun ' |
||||
|
domain: www.example.com |
||||
|
ssl: xxx |
||||
|
' | tr '\0' ':' |
||||
|
" |
||||
|
noerror |
||||
|
is out "ssl_plugin_cert-provider:xxx:<merge_yaml_str('mycfg', '', )>:" |
||||
|
|
||||
|
|
||||
|
try " |
||||
|
RELATIONS=( |
||||
|
cert-provider xxx mycfgxxx True |
||||
|
cert-provider yyy mycfgyyy True |
||||
|
) |
||||
|
ssl_get_plugin_fun ' |
||||
|
domain: www.example.com |
||||
|
ssl: yyy |
||||
|
' | tr '\0' ':' |
||||
|
" |
||||
|
noerror |
||||
|
is out "ssl_plugin_cert-provider:yyy:<merge_yaml_str('mycfgyyy', '', )>:" |
||||
|
|
||||
|
|
||||
|
try " |
||||
|
RELATIONS=( |
||||
|
cert-provider xxx mycfgxxx True |
||||
|
cert-provider yyy mycfgyyy True |
||||
|
) |
||||
|
ssl_get_plugin_fun ' |
||||
|
domain: www.example.com |
||||
|
ssl: |
||||
|
cert: a |
||||
|
' | tr '\0' '|' |
||||
|
" |
||||
|
noerror |
||||
|
is out "ssl_fallback||cert: a|" |
||||
|
|
||||
|
|
||||
|
try " |
||||
|
RELATIONS=( |
||||
|
cert-provider xxx mycfgxxx True |
||||
|
cert-provider yyy mycfgyyy True |
||||
|
) |
||||
|
ssl_get_plugin_fun ' |
||||
|
domain: www.example.com |
||||
|
ssl: |
||||
|
popo: a |
||||
|
' |
||||
|
" |
||||
|
is errlvl 1 |
||||
|
is err part 'no corresponding services declared in cert-provider' |
||||
|
is out '' |
||||
|
|
||||
|
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue