Merge pull request #65 from sdmarshall79/issue64

This will replace hard-coded values with calls to LookupMQM
This commit is contained in:
Rob Parker
2018-04-26 10:14:42 +02:00
committed by GitHub
6 changed files with 42 additions and 33 deletions

View File

@@ -64,8 +64,12 @@ func (ks *KeyStore) Create() error {
} }
} }
} }
// TODO: Lookup value for MQM user here? mqmUID, mqmGID, err := command.LookupMQM()
err = os.Chown(ks.Filename, 999, 999) if err != nil {
log.Error(err)
return err
}
err = os.Chown(ks.Filename, mqmUID, mqmGID)
if err != nil { if err != nil {
log.Error(err) log.Error(err)
return err return err
@@ -88,8 +92,12 @@ func (ks *KeyStore) CreateStash() error {
} }
return err return err
} }
// TODO: Lookup value for MQM user here? mqmUID, mqmGID, err := command.LookupMQM()
err = os.Chown(stashFile, 999, 999) if err != nil {
log.Error(err)
return err
}
err = os.Chown(stashFile, mqmUID, mqmGID)
if err != nil { if err != nil {
log.Error(err) log.Error(err)
return err return err

View File

@@ -19,6 +19,8 @@ import (
"os" "os"
"path" "path"
"text/template" "text/template"
"github.com/ibm-messaging/mq-container/internal/command"
) )
// processTemplateFile takes a Go templateFile, and processes it with the // processTemplateFile takes a Go templateFile, and processes it with the
@@ -35,8 +37,12 @@ func processTemplateFile(templateFile, destFile string, data interface{}) error
if err != nil { if err != nil {
if os.IsNotExist(err) { if os.IsNotExist(err) {
os.MkdirAll(dir, 0660) os.MkdirAll(dir, 0660)
// TODO: Lookup value for MQM user here? mqmUID, mqmGID, err := command.LookupMQM()
err = os.Chown(dir, 999, 999) if err != nil {
log.Error(err)
return err
}
err = os.Chown(dir, mqmUID, mqmGID)
if err != nil { if err != nil {
log.Error(err) log.Error(err)
return err return err
@@ -52,8 +58,12 @@ func processTemplateFile(templateFile, destFile string, data interface{}) error
log.Error(err) log.Error(err)
return err return err
} }
// TODO: Lookup value for MQM user here? mqmUID, mqmGID, err := command.LookupMQM()
err = os.Chown(destFile, 999, 999) if err != nil {
log.Error(err)
return err
}
err = os.Chown(destFile, mqmUID, mqmGID)
if err != nil { if err != nil {
log.Error(err) log.Error(err)
return err return err

View File

@@ -19,6 +19,8 @@ import (
"fmt" "fmt"
"os" "os"
"path/filepath" "path/filepath"
"github.com/ibm-messaging/mq-container/internal/command"
) )
func configureWebTLS(cms *KeyStore) error { func configureWebTLS(cms *KeyStore) error {
@@ -76,9 +78,14 @@ func configureTLS(qmName string, inputFile string, passPhrase string) error {
if err != nil { if err != nil {
return err return err
} }
err = os.Chown(dir, 999, 999) mqmUID, mqmGID, err := command.LookupMQM()
if err != nil { if err != nil {
log.Debug(err) log.Error(err)
return err
}
err = os.Chown(dir, mqmUID, mqmGID)
if err != nil {
log.Error(err)
return err return err
} }
} else { } else {

View File

@@ -17,28 +17,12 @@ package main
import ( import (
"os" "os"
"os/user"
"path/filepath" "path/filepath"
"runtime" "runtime"
"strconv"
"syscall" "syscall"
)
func lookupMQM() (int, int, error) { "github.com/ibm-messaging/mq-container/internal/command"
mqm, err := user.Lookup("mqm") )
if err != nil {
return -1, -1, err
}
mqmUID, err := strconv.Atoi(mqm.Uid)
if err != nil {
return -1, -1, err
}
mqmGID, err := strconv.Atoi(mqm.Gid)
if err != nil {
return -1, -1, err
}
return mqmUID, mqmGID, nil
}
func createVolume(path string) error { func createVolume(path string) error {
dataPath := filepath.Join(path, "data") dataPath := filepath.Join(path, "data")
@@ -60,7 +44,7 @@ func createVolume(path string) error {
sys := fi.Sys() sys := fi.Sys()
if sys != nil && runtime.GOOS == "linux" { if sys != nil && runtime.GOOS == "linux" {
stat := sys.(*syscall.Stat_t) stat := sys.(*syscall.Stat_t)
mqmUID, mqmGID, err := lookupMQM() mqmUID, mqmGID, err := command.LookupMQM()
if err != nil { if err != nil {
return err return err
} }

View File

@@ -78,7 +78,7 @@ func configureWebServer() error {
} }
return err return err
} }
uid, gid, err := lookupMQM() uid, gid, err := command.LookupMQM()
if err != nil { if err != nil {
return err return err
} }

View File

@@ -60,7 +60,7 @@ func Run(name string, arg ...string) (string, int, error) {
func RunAsMQM(name string, arg ...string) (string, int, error) { func RunAsMQM(name string, arg ...string) (string, int, error) {
cmd := exec.Command(name, arg...) cmd := exec.Command(name, arg...)
cmd.SysProcAttr = &syscall.SysProcAttr{} cmd.SysProcAttr = &syscall.SysProcAttr{}
uid, gid, err := lookupMQM() uid, gid, err := LookupMQM()
if err != nil { if err != nil {
return "", 0, err return "", 0, err
} }
@@ -68,8 +68,8 @@ func RunAsMQM(name string, arg ...string) (string, int, error) {
return RunCmd(cmd) return RunCmd(cmd)
} }
// TODO: Duplicated code // LookupMQM looks up the UID & GID of the mqm user
func lookupMQM() (int, int, error) { func LookupMQM() (int, int, error) {
mqm, err := user.Lookup("mqm") mqm, err := user.Lookup("mqm")
if err != nil { if err != nil {
return -1, -1, err return -1, -1, err