From 99642343d18bdeaacd084710100b867b6af5dcaa Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 3 Apr 2024 21:09:48 +0200 Subject: [PATCH] Simplified Execute in shell.go --- Dockerfile | 1 - config/bash.sh | 6 ++--- config/zsh.sh | 4 ++-- deploy/sthome-webhook/Chart.yaml | 4 ++-- deploy/sthome-webhook/values.yaml | 2 +- sthome/shell.go | 39 +++++++------------------------ sthome/solver_local.go | 12 ++++------ version.txt | 6 ++--- 8 files changed, 23 insertions(+), 51 deletions(-) diff --git a/Dockerfile b/Dockerfile index fa00b4d..f62ef2a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -6,7 +6,6 @@ ENV DEBIAN_FRONTEND=noninteractive ENV TZ="Africa/Johannesburg" ENV WEBROOT=/webroot -# Set up ZSH and our preferred terminal environment for containers RUN apk add --no-cache git WORKDIR /workspace diff --git a/config/bash.sh b/config/bash.sh index ce433bd..aa3c86c 100644 --- a/config/bash.sh +++ b/config/bash.sh @@ -25,6 +25,6 @@ alias dnsupd=/acme/updatedns.sh # alias cp='cp -i' # alias mv='mv -i' export PATH=/root/bin:$PATH:/acme -export FRONTEND=noninteractive -export TZ=Africa/Johannesburg -export WEBROOT=/webroot \ No newline at end of file +#export FRONTEND=noninteractive +#export TZ=Africa/Johannesburg +#export WEBROOT=/webroot \ No newline at end of file diff --git a/config/zsh.sh b/config/zsh.sh index 6a262d5..aa578df 100644 --- a/config/zsh.sh +++ b/config/zsh.sh @@ -31,5 +31,5 @@ alias dnsupd=/acme/updatedns.sh # alias cp='cp -ip' # alias mv='mv -i' # alias rm='rm -i' -export PATH=/root/bin:$PATH -export WEBROOT=/webroot +export PATH=/root/bin:$PATH:/acme +#export WEBROOT=/webroot diff --git a/deploy/sthome-webhook/Chart.yaml b/deploy/sthome-webhook/Chart.yaml index e4d1791..2ac97d2 100644 --- a/deploy/sthome-webhook/Chart.yaml +++ b/deploy/sthome-webhook/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v1 -appVersion: v0.0.4-alpha.93 +appVersion: v0.0.4-alpha.100 description: Cert-Manager webhook for sthome name: sthome-webhook -version: 0.0.4-alpha.93 +version: 0.0.4-alpha.100 diff --git a/deploy/sthome-webhook/values.yaml b/deploy/sthome-webhook/values.yaml index 4b9a173..0e94703 100644 --- a/deploy/sthome-webhook/values.yaml +++ b/deploy/sthome-webhook/values.yaml @@ -31,7 +31,7 @@ clusterIssuer: image: repository: stuurmcp/cert-manager-webhook-sthome #repository: wstat.sthome.net:5000/cert-manager-webhook-sthome - tag: 0.0.4-alpha.93 + tag: 0.0.4-alpha.100 #pullPolicy should be IfNotPresent. Set to Always for testing purposes pullPolicy: IfNotPresent diff --git a/sthome/shell.go b/sthome/shell.go index 5904752..b162a15 100644 --- a/sthome/shell.go +++ b/sthome/shell.go @@ -1,45 +1,22 @@ package sthome import ( - "os" + "bytes" "os/exec" - //"bytes" - "k8s.io/klog/v2" ) -type saveOutput struct { - buffer []byte -} - -func (so *saveOutput) Write(p []byte) (n int, err error) { - so.buffer = append(so.buffer, p...) - return os.Stdout.Write(p) -} - -func Execute(shell string, command []string) (bool, error) { - var so saveOutput - //var buffer bytes.Buffer - /* - currentUser, err := user.Current() - if err != nil { - klog.Fatalf("CZ: Unable to get current user: %s", err) - } - klog.Infof("CZ: Executing as user %s : %s %v\n", currentUser.Name, shell, command) - */ - cmd := &exec.Cmd{ - Path: shell, - Args: command, - } - cmd.Stdin = os.Stdin - cmd.Stdout = &so //&buffer - cmd.Stderr = os.Stderr +func Execute(shell string, arg ...string) (bool, error) { + var outb, errb bytes.Buffer + cmd := exec.Command(shell, arg...) + cmd.Stdout = &outb + cmd.Stderr = &errb err := cmd.Run() if err != nil { - klog.Errorf("Script return error: %s\n%s\n", err, string(so.buffer)) + klog.Errorf("Script returned error: %s\nout:\n%serr:\n%s============\n", err, outb.String(), errb.String()) return false, err } - klog.Infof("Script returned success:\n%s\n", string(so.buffer)) + klog.Infof("Script returned success:\nout:\n%s============\n", outb.String()) return true, nil } diff --git a/sthome/solver_local.go b/sthome/solver_local.go index 5cb91c4..92a4188 100644 --- a/sthome/solver_local.go +++ b/sthome/solver_local.go @@ -83,8 +83,7 @@ func (loc *LocalDNSProviderSolver) Present(ch *v1alpha1.ChallengeRequest) error klog.Infof("Presenting record for %s, ch: %s, domain: %s", ch.DNSName, ch.ResolvedFQDN, domainName) // TODO: convert shell script to golang localip := getOutboundIP(dnsserver_net) - // shell command - settxtcommand := []string{ + success, _ := Execute( shell, acmeAuthCmd, "set", @@ -94,8 +93,7 @@ func (loc *LocalDNSProviderSolver) Present(ch *v1alpha1.ChallengeRequest) error "-l", localip, "-v", - } - success, _ := Execute(shell, settxtcommand) + ) klog.Infof("Execute set TXT returned success: %t", success) return nil } @@ -110,8 +108,7 @@ func (loc *LocalDNSProviderSolver) CleanUp(ch *v1alpha1.ChallengeRequest) error //domainName := extractDomainName(ch.ResolvedZone) // TODO: add code that deletes a record from the DNS provider's console localip := getOutboundIP(dnsserver_net) - // shell command - unsetxtcommand := []string{ + success, _ := Execute( shell, acmeAuthCmd, "unset", @@ -121,8 +118,7 @@ func (loc *LocalDNSProviderSolver) CleanUp(ch *v1alpha1.ChallengeRequest) error "-l", localip, "-v", - } - success, _ := Execute(shell, unsetxtcommand) + ) klog.Infof("Execute unset TXT returned success: %t", success) return nil } diff --git a/version.txt b/version.txt index 819df63..bff0165 100644 --- a/version.txt +++ b/version.txt @@ -1,3 +1,3 @@ -0.0.4-alpha.93 -20240401-2346 -93 \ No newline at end of file +0.0.4-alpha.100 +20240402-1118 +100 \ No newline at end of file