Removed the YAML config parsing from here as it is now in warewulfconf
This commit is contained in:
@@ -4,99 +4,42 @@ import (
|
||||
"fmt"
|
||||
"github.com/hpcng/warewulf/internal/pkg/util"
|
||||
"github.com/hpcng/warewulf/internal/pkg/wwlog"
|
||||
"github.com/kelseyhightower/envconfig"
|
||||
"gopkg.in/yaml.v2"
|
||||
"io/ioutil"
|
||||
"os"
|
||||
"path"
|
||||
)
|
||||
|
||||
const (
|
||||
LocalStateDir = "/var/warewulf"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
Port int `yaml:"warewulfd port", envconfig:"WAREWULFD_PORT"`
|
||||
Ipaddr string `yaml:"warewulfd ipaddr", envconfig:"WAREWULFD_IPADDR"`
|
||||
InsecureRuntime bool `yaml:"insecure runtime"`
|
||||
Debug bool `yaml:"debug"`
|
||||
SysConfDir string `yaml:"system config dir"`
|
||||
LocalStateDir string `yaml:"local state dir"`
|
||||
Editor string `yaml:"default editor", envconfig:"EDITOR"`
|
||||
func NodeConfig() string {
|
||||
return fmt.Sprintf("%s/nodes.conf", LocalStateDir)
|
||||
}
|
||||
|
||||
var c Config
|
||||
|
||||
func init() {
|
||||
fd, err := ioutil.ReadFile("/etc/warewulf/warewulf.conf")
|
||||
if err != nil {
|
||||
wwlog.Printf(wwlog.ERROR, "Could not read config file: %s\n", err)
|
||||
os.Exit(255)
|
||||
}
|
||||
|
||||
err = yaml.Unmarshal(fd, &c)
|
||||
if err != nil {
|
||||
wwlog.Printf(wwlog.ERROR, "Could not unmarshal config file: %s\n", err)
|
||||
os.Exit(255)
|
||||
}
|
||||
|
||||
err = envconfig.Process("", &c)
|
||||
if err != nil {
|
||||
wwlog.Printf(wwlog.ERROR, "Could not obtain environment configuration: %s\n", err)
|
||||
os.Exit(255)
|
||||
}
|
||||
|
||||
if c.Ipaddr == "" {
|
||||
fmt.Printf("ERROR: 'warewulf ipaddr' has not been set in /etc/warewulf/warewulf.conf\n")
|
||||
}
|
||||
|
||||
if c.SysConfDir == "" {
|
||||
c.SysConfDir = "/etc/warewulf"
|
||||
}
|
||||
if c.LocalStateDir == "" {
|
||||
c.LocalStateDir = "/var/warewulf"
|
||||
}
|
||||
if c.Editor == "" {
|
||||
c.Editor = "vi"
|
||||
}
|
||||
|
||||
util.ValidateOrDie("warewulfd ipaddr", c.Ipaddr, "^[0-9]+.[0-9]+.[0-9]+.[0-9]+$")
|
||||
util.ValidateOrDie("system config dir", c.SysConfDir, "^[a-zA-Z0-9-._:/]+$")
|
||||
util.ValidateOrDie("local state dir", c.LocalStateDir, "^[a-zA-Z0-9-._:/]+$")
|
||||
util.ValidateOrDie("default editor", c.LocalStateDir, "^[a-zA-Z0-9-._:/]+$")
|
||||
|
||||
func OverlayDir() string {
|
||||
return fmt.Sprintf("%s/overlays/", LocalStateDir)
|
||||
}
|
||||
|
||||
func New() (Config) {
|
||||
return c
|
||||
func SystemOverlayDir() string {
|
||||
return path.Join(OverlayDir(), "/system")
|
||||
}
|
||||
|
||||
func (self *Config) NodeConfig() string {
|
||||
return fmt.Sprintf("%s/nodes.conf", self.LocalStateDir)
|
||||
func RuntimeOverlayDir() string {
|
||||
return path.Join(OverlayDir(), "/runtime")
|
||||
}
|
||||
|
||||
func (self *Config) OverlayDir() string {
|
||||
return fmt.Sprintf("%s/overlays/", self.LocalStateDir)
|
||||
func VnfsImageParentDir() string {
|
||||
return fmt.Sprintf("%s/provision/vnfs/", LocalStateDir)
|
||||
}
|
||||
|
||||
func (self *Config) SystemOverlayDir() string {
|
||||
return path.Join(self.OverlayDir(), "/system")
|
||||
func VnfsChrootParentDir() string {
|
||||
return fmt.Sprintf("%s/chroot/", LocalStateDir)
|
||||
}
|
||||
|
||||
func (self *Config) RuntimeOverlayDir() string {
|
||||
return path.Join(self.OverlayDir(), "/runtime")
|
||||
func KernelParentDir() string {
|
||||
return fmt.Sprintf("%s/provision/kernel/", LocalStateDir)
|
||||
}
|
||||
|
||||
func (self *Config) VnfsImageParentDir() string {
|
||||
return fmt.Sprintf("%s/provision/vnfs/", self.LocalStateDir)
|
||||
}
|
||||
|
||||
func (self *Config) VnfsChrootParentDir() string {
|
||||
return fmt.Sprintf("%s/chroot/", self.LocalStateDir)
|
||||
}
|
||||
|
||||
func (self *Config) KernelParentDir() string {
|
||||
return fmt.Sprintf("%s/provision/kernel/", self.LocalStateDir)
|
||||
}
|
||||
|
||||
func (self *Config) SystemOverlaySource(overlayName string) string {
|
||||
func SystemOverlaySource(overlayName string) string {
|
||||
if overlayName == "" {
|
||||
wwlog.Printf(wwlog.ERROR, "System overlay name is not defined\n")
|
||||
return ""
|
||||
@@ -107,11 +50,10 @@ func (self *Config) SystemOverlaySource(overlayName string) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
return path.Join(self.SystemOverlayDir(), overlayName)
|
||||
return path.Join(SystemOverlayDir(), overlayName)
|
||||
}
|
||||
|
||||
|
||||
func (self *Config) RuntimeOverlaySource(overlayName string) string {
|
||||
func RuntimeOverlaySource(overlayName string) string {
|
||||
if overlayName == "" {
|
||||
wwlog.Printf(wwlog.ERROR, "Runtime overlay name is not defined\n")
|
||||
return ""
|
||||
@@ -122,10 +64,10 @@ func (self *Config) RuntimeOverlaySource(overlayName string) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
return path.Join(self.RuntimeOverlayDir(), overlayName)
|
||||
return path.Join(RuntimeOverlayDir(), overlayName)
|
||||
}
|
||||
|
||||
func (self *Config) KernelImage(kernelVersion string) string {
|
||||
func KernelImage(kernelVersion string) string {
|
||||
if kernelVersion == "" {
|
||||
wwlog.Printf(wwlog.ERROR, "Kernel Version is not defined\n")
|
||||
return ""
|
||||
@@ -136,10 +78,10 @@ func (self *Config) KernelImage(kernelVersion string) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
return path.Join(self.KernelParentDir(), kernelVersion, "vmlinuz")
|
||||
return path.Join(KernelParentDir(), kernelVersion, "vmlinuz")
|
||||
}
|
||||
|
||||
func (self *Config) KmodsImage(kernelVersion string) string {
|
||||
func KmodsImage(kernelVersion string) string {
|
||||
if kernelVersion == "" {
|
||||
wwlog.Printf(wwlog.ERROR, "Kernel Version is not defined\n")
|
||||
return ""
|
||||
@@ -150,10 +92,10 @@ func (self *Config) KmodsImage(kernelVersion string) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
return path.Join(self.KernelParentDir(), kernelVersion, "kmods.img")
|
||||
return path.Join(KernelParentDir(), kernelVersion, "kmods.img")
|
||||
}
|
||||
|
||||
func (self *Config) SystemOverlayImage(nodeName string) string {
|
||||
func SystemOverlayImage(nodeName string) string {
|
||||
if nodeName == "" {
|
||||
wwlog.Printf(wwlog.ERROR, "Node name is not defined\n")
|
||||
return ""
|
||||
@@ -164,10 +106,10 @@ func (self *Config) SystemOverlayImage(nodeName string) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s/provision/overlays/system/%s.img", self.LocalStateDir, nodeName)
|
||||
return fmt.Sprintf("%s/provision/overlays/system/%s.img", LocalStateDir, nodeName)
|
||||
}
|
||||
|
||||
func (self *Config) RuntimeOverlayImage(nodeName string) string {
|
||||
func RuntimeOverlayImage(nodeName string) string {
|
||||
if nodeName == "" {
|
||||
wwlog.Printf(wwlog.ERROR, "Node name is not defined\n")
|
||||
return ""
|
||||
@@ -178,10 +120,10 @@ func (self *Config) RuntimeOverlayImage(nodeName string) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s/provision/overlays/runtime/%s.img", self.LocalStateDir, nodeName)
|
||||
return fmt.Sprintf("%s/provision/overlays/runtime/%s.img", LocalStateDir, nodeName)
|
||||
}
|
||||
|
||||
func (self *Config) VnfsImageDir(uri string) string {
|
||||
func VnfsImageDir(uri string) string {
|
||||
if uri == "" {
|
||||
wwlog.Printf(wwlog.ERROR, "VNFS URI is not defined\n")
|
||||
return ""
|
||||
@@ -192,14 +134,14 @@ func (self *Config) VnfsImageDir(uri string) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
return path.Join(self.VnfsImageParentDir(), uri)
|
||||
return path.Join(VnfsImageParentDir(), uri)
|
||||
}
|
||||
|
||||
func (self *Config) VnfsImage(uri string) string {
|
||||
return path.Join(self.VnfsImageDir(uri), "image")
|
||||
func VnfsImage(uri string) string {
|
||||
return path.Join(VnfsImageDir(uri), "image")
|
||||
}
|
||||
|
||||
func (self *Config) VnfsChroot(uri string) string {
|
||||
func VnfsChroot(uri string) string {
|
||||
if uri == "" {
|
||||
wwlog.Printf(wwlog.ERROR, "VNFS name is not defined\n")
|
||||
return ""
|
||||
@@ -210,5 +152,5 @@ func (self *Config) VnfsChroot(uri string) string {
|
||||
return ""
|
||||
}
|
||||
|
||||
return path.Join(self.VnfsChrootParentDir(), uri)
|
||||
return path.Join(VnfsChrootParentDir(), uri)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user