[pve-devel] [Patch V2 acme 05/12] Implement feature setup and teardown functionality.
Fabian Grünbichler
f.gruenbichler at proxmox.com
Wed Apr 1 15:26:30 CEST 2020
On March 31, 2020 12:08 pm, Wolfgang Link wrote:
> We use these functions to add and remove a txt record via the dnsapi.
>
> Signed-off-by: Wolfgang Link <w.link at proxmox.com>
> ---
> src/proxmox-acme | 68 ++++++++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 68 insertions(+)
>
> diff --git a/src/proxmox-acme b/src/proxmox-acme
> index f7a6757..1cfb8f6 100644
> --- a/src/proxmox-acme
> +++ b/src/proxmox-acme
> @@ -1,5 +1,12 @@
> #!/usr/bin/env sh
>
> +VER=0.9
> +
> +PROJECT_NAME="ProxmoxACME"
> +
> +USER_AGENT="$PROJECT_NAME/$VER"
> +
> +DNS_PLUGIN_PATH="/usr/share/proxmox-ve/proxmox-acme/dnsapi"
> HTTP_HEADER="$(mktemp)"
>
> _base64() {
> @@ -581,3 +588,64 @@ _load_plugin_config() {
> index="$(_math "$index" - 1)"
> done
> }
> +
> +# call setup and teardown direct
> +# the parameter must be set in the correct order
> +# $1 <String> DNS Plugin name
> +# $2 <String> Fully Qualified Domain Name
> +# $3 <String> value for TXT record
> +# $4 <String> DNS plugin auth and config parameter separated by ","
potentially brittle, as "," could be contained in some variable.
alternative: encode the full multiline key-value string as base64? or
pass it in via STDIN here?
> +
> +setup() {
> + dns_plugin="dns_$1"
> + dns_plugin_path="${DNS_PLUGIN_PATH}/${dns_plugin}.sh"
> + fqdn="_acme-challenge.$2"
> + txtvalue=$3
> + plugin_conf_sting=$4
s/sting/string
> +
> + _load_plugin_config
> +
> + if ! . "$dns_plugin_path"; then
> + _err "Load file $dns_plugin error."
> + return 1
> + fi
> +
> + addcommand="${dns_plugin}_add"
> + if ! _exists "$addcommand"; then
> + _err "It seems that your api file is not correct, it must have a function named: $addcommand"
> + return 1
> + fi
> +
> + if ! $addcommand "$fqdn" "$txtvalue"; then
> + _err "Error add txt for domain:$fulldomain"
> + return 1
> + fi
> +}
> +
> +teardown() {
> + dns_plugin="dns_$1"
> + dns_plugin_path="${DNS_PLUGIN_PATH}/${dns_plugin}.sh"
> + fqdn="_acme-challenge.$2"
> + txtvalue=$3
> + plugin_conf_sting=$4
s/sting/string
same as above ;)
> +
> + _load_plugin_config
> +
> + if ! . "$dns_plugin_path"; then
> + _err "Load file $dns_plugin error."
> + return 1
> + fi
> +
> + rmcommand="${dns_plugin}_rm"
> + if ! _exists "$rmcommand"; then
> + _err "It seems that your api file is not correct, it must have a function named: $rmcommand"
> + return 1
> + fi
> +
> + if ! $rmcommand "$fqdn" "$txtvalue"; then
> + _err "Error add txt for domain:$fulldomain"
> + return 1
> + fi
> +}
> +
> +"$@"
> --
> 2.20.1
>
>
> _______________________________________________
> pve-devel mailing list
> pve-devel at pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
>
>
More information about the pve-devel
mailing list