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.l...@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@pve.proxmox.com > https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel > > _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel