diff --git a/cmd/runmqdevserver/tls.go b/cmd/runmqdevserver/tls.go index e664409..974a319 100644 --- a/cmd/runmqdevserver/tls.go +++ b/cmd/runmqdevserver/tls.go @@ -20,6 +20,7 @@ import ( "os" "path/filepath" + "github.com/ibm-messaging/mq-container/internal/command" "github.com/ibm-messaging/mq-container/internal/keystore" "github.com/ibm-messaging/mq-container/internal/mqtemplate" ) @@ -62,9 +63,14 @@ func configureWebTLS(cms *keystore.KeyStore) error { } func configureTLS(qmName string, inputFile string, passPhrase string) error { + err := createDevTLSDir() + if err != nil { + return err + } + log.Debug("Configuring TLS") - _, err := os.Stat(inputFile) + _, err = os.Stat(inputFile) if err != nil { return err } @@ -130,3 +136,32 @@ func configureTLS(qmName string, inputFile string, passPhrase string) error { return nil } + +func createDevTLSDir() error { + // TODO: Use a persisted file (on the volume) instead? + dir := "/run/runmqdevserver/tls" + + _, err := os.Stat(dir) + if err != nil { + if os.IsNotExist(err) { + // #nosec G301 + err = os.MkdirAll(dir, 0770) + if err != nil { + return err + } + mqmUID, mqmGID, err := command.LookupMQM() + if err != nil { + log.Error(err) + return err + } + err = os.Chown(dir, mqmUID, mqmGID) + if err != nil { + log.Error(err) + return err + } + } else { + return err + } + } + return nil +} diff --git a/cmd/runmqserver/crtmqvol.go b/cmd/runmqserver/crtmqvol.go index 0c44869..a862d85 100644 --- a/cmd/runmqserver/crtmqvol.go +++ b/cmd/runmqserver/crtmqvol.go @@ -89,10 +89,10 @@ func createWebConsoleTLSDirStructure() error { return nil } +/* TODO: remove duplicated code */ func createDevTLSDir() error { // TODO: Use a persisted file (on the volume) instead? - par := "/run/runmqdevserver" - dir := filepath.Join(par, "tls") + dir := "/run/runmqdevserver/tls" _, err := os.Stat(dir) if err != nil { @@ -112,12 +112,6 @@ func createDevTLSDir() error { log.Error(err) return err } - err = os.Chown(par, mqmUID, mqmGID) - if err != nil { - log.Error(err) - return err - } - } else { return err }