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 WEBROOT=/webroot
# Set up ZSH and our preferred terminal environment for containers
RUN apk add --no-cache git
WORKDIR /workspace

View File

@ -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
#export FRONTEND=noninteractive
#export TZ=Africa/Johannesburg
#export WEBROOT=/webroot

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
}

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)
// 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
}

View File

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