[pve-devel] [Patch V3 acme 05/13] Implement feature setup and teardown functionality.
Wolfgang Link
w.link at proxmox.com
Thu Apr 16 07:18:29 CEST 2020
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 b4e01d8..ff9fec8 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-acme/dnsapi"
HTTP_HEADER="$(mktemp)"
_base64() {
@@ -587,3 +594,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 ","
+
+setup() {
+ dns_plugin="dns_$1"
+ dns_plugin_path="${DNS_PLUGIN_PATH}/${dns_plugin}.sh"
+ fqdn="_acme-challenge.$2"
+ txtvalue=$3
+ plugin_conf_string=$4
+
+ _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_string=$4
+
+ _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
More information about the pve-devel
mailing list