Simplified Execute in shell.go

This commit is contained in:
Chris Stuurman 2024-04-03 21:09:48 +02:00
parent 977ca6a544
commit 99642343d1
8 changed files with 23 additions and 51 deletions

View File

@ -6,7 +6,6 @@ ENV DEBIAN_FRONTEND=noninteractive
ENV TZ="Africa/Johannesburg" ENV TZ="Africa/Johannesburg"
ENV WEBROOT=/webroot ENV WEBROOT=/webroot
# Set up ZSH and our preferred terminal environment for containers
RUN apk add --no-cache git RUN apk add --no-cache git
WORKDIR /workspace WORKDIR /workspace

View File

@ -25,6 +25,6 @@ alias dnsupd=/acme/updatedns.sh
# alias cp='cp -i' # alias cp='cp -i'
# alias mv='mv -i' # alias mv='mv -i'
export PATH=/root/bin:$PATH:/acme export PATH=/root/bin:$PATH:/acme
export FRONTEND=noninteractive #export FRONTEND=noninteractive
export TZ=Africa/Johannesburg #export TZ=Africa/Johannesburg
export WEBROOT=/webroot #export WEBROOT=/webroot

View File

@ -31,5 +31,5 @@ alias dnsupd=/acme/updatedns.sh
# alias cp='cp -ip' # alias cp='cp -ip'
# alias mv='mv -i' # alias mv='mv -i'
# alias rm='rm -i' # alias rm='rm -i'
export PATH=/root/bin:$PATH export PATH=/root/bin:$PATH:/acme
export WEBROOT=/webroot #export WEBROOT=/webroot

View File

@ -1,5 +1,5 @@
apiVersion: v1 apiVersion: v1
appVersion: v0.0.4-alpha.93 appVersion: v0.0.4-alpha.100
description: Cert-Manager webhook for sthome description: Cert-Manager webhook for sthome
name: sthome-webhook name: sthome-webhook
version: 0.0.4-alpha.93 version: 0.0.4-alpha.100

View File

@ -31,7 +31,7 @@ clusterIssuer:
image: image:
repository: stuurmcp/cert-manager-webhook-sthome repository: stuurmcp/cert-manager-webhook-sthome
#repository: wstat.sthome.net:5000/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 should be IfNotPresent. Set to Always for testing purposes
pullPolicy: IfNotPresent pullPolicy: IfNotPresent

View File

@ -1,45 +1,22 @@
package sthome package sthome
import ( import (
"os" "bytes"
"os/exec" "os/exec"
//"bytes"
"k8s.io/klog/v2" "k8s.io/klog/v2"
) )
type saveOutput struct { func Execute(shell string, arg ...string) (bool, error) {
buffer []byte var outb, errb bytes.Buffer
} cmd := exec.Command(shell, arg...)
cmd.Stdout = &outb
func (so *saveOutput) Write(p []byte) (n int, err error) { cmd.Stderr = &errb
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
err := cmd.Run() err := cmd.Run()
if err != nil { 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 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 return true, nil
} }

View File

@ -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) klog.Infof("Presenting record for %s, ch: %s, domain: %s", ch.DNSName, ch.ResolvedFQDN, domainName)
// TODO: convert shell script to golang // TODO: convert shell script to golang
localip := getOutboundIP(dnsserver_net) localip := getOutboundIP(dnsserver_net)
// shell command success, _ := Execute(
settxtcommand := []string{
shell, shell,
acmeAuthCmd, acmeAuthCmd,
"set", "set",
@ -94,8 +93,7 @@ func (loc *LocalDNSProviderSolver) Present(ch *v1alpha1.ChallengeRequest) error
"-l", "-l",
localip, localip,
"-v", "-v",
} )
success, _ := Execute(shell, settxtcommand)
klog.Infof("Execute set TXT returned success: %t", success) klog.Infof("Execute set TXT returned success: %t", success)
return nil return nil
} }
@ -110,8 +108,7 @@ func (loc *LocalDNSProviderSolver) CleanUp(ch *v1alpha1.ChallengeRequest) error
//domainName := extractDomainName(ch.ResolvedZone) //domainName := extractDomainName(ch.ResolvedZone)
// TODO: add code that deletes a record from the DNS provider's console // TODO: add code that deletes a record from the DNS provider's console
localip := getOutboundIP(dnsserver_net) localip := getOutboundIP(dnsserver_net)
// shell command success, _ := Execute(
unsetxtcommand := []string{
shell, shell,
acmeAuthCmd, acmeAuthCmd,
"unset", "unset",
@ -121,8 +118,7 @@ func (loc *LocalDNSProviderSolver) CleanUp(ch *v1alpha1.ChallengeRequest) error
"-l", "-l",
localip, localip,
"-v", "-v",
} )
success, _ := Execute(shell, unsetxtcommand)
klog.Infof("Execute unset TXT returned success: %t", success) klog.Infof("Execute unset TXT returned success: %t", success)
return nil return nil
} }

View File

@ -1,3 +1,3 @@
0.0.4-alpha.93 0.0.4-alpha.100
20240401-2346 20240402-1118
93 100