dont fail on memory check if cpu and disk checks fail
parent
1d94fa911a
commit
b0afc85327
|
@ -764,18 +764,26 @@ func validateUser(drvName string) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// memoryLimits returns the amount of memory allocated to the system and hypervisor , the return value is in MB
|
// memoryLimits returns the amount of memory allocated to the system and hypervisor , the return value is in MB
|
||||||
func memoryLimits(drvName string) (int, int, []error) {
|
func memoryLimits(drvName string) (int, int, error) {
|
||||||
info, err := machine.CachedHostInfo()
|
info, cpuErr, memErr, diskErr := machine.CachedHostInfo()
|
||||||
if err != nil {
|
if cpuErr != nil {
|
||||||
return -1, -1, err
|
glog.Warningf("could not get system cpu info while verifying memory limits, which might be okay: %v", cpuErr)
|
||||||
}
|
}
|
||||||
|
if diskErr != nil {
|
||||||
|
glog.Warningf("could not get system disk info while verifying memory limits, which might be okay: %v", diskErr)
|
||||||
|
}
|
||||||
|
|
||||||
|
if memErr != nil {
|
||||||
|
return -1, -1, memErr
|
||||||
|
}
|
||||||
|
|
||||||
sysLimit := int(info.Memory)
|
sysLimit := int(info.Memory)
|
||||||
containerLimit := 0
|
containerLimit := 0
|
||||||
|
|
||||||
if driver.IsKIC(drvName) {
|
if driver.IsKIC(drvName) {
|
||||||
s, err := oci.CachedDaemonInfo(drvName)
|
s, err := oci.CachedDaemonInfo(drvName)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return -1, -1, []error{err}
|
return -1, -1, err
|
||||||
}
|
}
|
||||||
containerLimit = int(s.TotalMemory / 1024 / 1024)
|
containerLimit = int(s.TotalMemory / 1024 / 1024)
|
||||||
}
|
}
|
||||||
|
|
|
@ -220,9 +220,9 @@ func generateClusterConfig(cmd *cobra.Command, existing *config.ClusterConfig, k
|
||||||
cc = updateExistingConfigFromFlags(cmd, existing)
|
cc = updateExistingConfigFromFlags(cmd, existing)
|
||||||
} else {
|
} else {
|
||||||
glog.Info("no existing cluster config was found, will generate one from the flags ")
|
glog.Info("no existing cluster config was found, will generate one from the flags ")
|
||||||
sysLimit, containerLimit, errs := memoryLimits(drvName)
|
sysLimit, containerLimit, err := memoryLimits(drvName)
|
||||||
if errs != nil {
|
if err != nil {
|
||||||
glog.Warningf("Unable to query memory limits: %+v", errs)
|
glog.Warningf("Unable to query memory limits: %+v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
mem := suggestMemoryAllocation(sysLimit, containerLimit, viper.GetInt(nodes))
|
mem := suggestMemoryAllocation(sysLimit, containerLimit, viper.GetInt(nodes))
|
||||||
|
|
|
@ -22,7 +22,6 @@ import (
|
||||||
|
|
||||||
"github.com/docker/machine/libmachine/provision"
|
"github.com/docker/machine/libmachine/provision"
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
"github.com/pkg/errors"
|
|
||||||
"github.com/shirou/gopsutil/cpu"
|
"github.com/shirou/gopsutil/cpu"
|
||||||
"github.com/shirou/gopsutil/disk"
|
"github.com/shirou/gopsutil/disk"
|
||||||
"github.com/shirou/gopsutil/mem"
|
"github.com/shirou/gopsutil/mem"
|
||||||
|
@ -43,33 +42,27 @@ func megs(bytes uint64) int64 {
|
||||||
}
|
}
|
||||||
|
|
||||||
// CachedHostInfo returns system information such as memory,CPU, DiskSize
|
// CachedHostInfo returns system information such as memory,CPU, DiskSize
|
||||||
func CachedHostInfo() (*HostInfo, []error) {
|
func CachedHostInfo() (*HostInfo, error, error, error) {
|
||||||
var hostInfoErrs []error
|
var cpuErr, memErr, diskErr error
|
||||||
i, err := cachedCPUInfo()
|
i, cpuErr := cachedCPUInfo()
|
||||||
if err != nil {
|
if cpuErr != nil {
|
||||||
glog.Warningf("Unable to get CPU info: %v", err)
|
glog.Warningf("Unable to get CPU info: %v", cpuErr)
|
||||||
hostInfoErrs = append(hostInfoErrs, errors.Wrap(err, "cpuInfo"))
|
|
||||||
}
|
}
|
||||||
v, err := cachedSysMemLimit()
|
v, memErr := cachedSysMemLimit()
|
||||||
if err != nil {
|
if memErr != nil {
|
||||||
glog.Warningf("Unable to get mem info: %v", err)
|
glog.Warningf("Unable to get mem info: %v", memErr)
|
||||||
hostInfoErrs = append(hostInfoErrs, errors.Wrap(err, "memInfo"))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
d, err := cachedDiskInfo()
|
d, diskErr := cachedDiskInfo()
|
||||||
if err != nil {
|
if diskErr != nil {
|
||||||
glog.Warningf("Unable to get disk info: %v", err)
|
glog.Warningf("Unable to get disk info: %v", diskErr)
|
||||||
hostInfoErrs = append(hostInfoErrs, errors.Wrap(err, "diskInfo"))
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var info HostInfo
|
var info HostInfo
|
||||||
info.CPUs = len(i)
|
info.CPUs = len(i)
|
||||||
info.Memory = megs(v.Total)
|
info.Memory = megs(v.Total)
|
||||||
info.DiskSize = megs(d.Total)
|
info.DiskSize = megs(d.Total)
|
||||||
if len(hostInfoErrs) > 0 {
|
return &info, cpuErr, memErr, diskErr
|
||||||
return &info, hostInfoErrs
|
|
||||||
}
|
|
||||||
return &info, nil
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// showLocalOsRelease shows systemd information about the current linux distribution, on the local host
|
// showLocalOsRelease shows systemd information about the current linux distribution, on the local host
|
||||||
|
@ -123,19 +116,19 @@ func cachedSysMemLimit() (*mem.VirtualMemoryStat, error) {
|
||||||
}
|
}
|
||||||
|
|
||||||
var cachedDisk *disk.UsageStat
|
var cachedDisk *disk.UsageStat
|
||||||
var cachedDiskInfoeErr *error
|
var cachedDiskInfoErr *error
|
||||||
|
|
||||||
// cachedDiskInfo will return a cached disk usage info
|
// cachedDiskInfo will return a cached disk usage info
|
||||||
func cachedDiskInfo() (disk.UsageStat, error) {
|
func cachedDiskInfo() (disk.UsageStat, error) {
|
||||||
if cachedDisk == nil {
|
if cachedDisk == nil {
|
||||||
d, err := disk.Usage("/")
|
d, err := disk.Usage("/")
|
||||||
cachedDisk = d
|
cachedDisk = d
|
||||||
cachedDiskInfoeErr = &err
|
cachedDiskInfoErr = &err
|
||||||
}
|
}
|
||||||
if cachedDiskInfoeErr == nil {
|
if cachedDiskInfoErr == nil {
|
||||||
return *cachedDisk, nil
|
return *cachedDisk, nil
|
||||||
}
|
}
|
||||||
return *cachedDisk, *cachedDiskInfoeErr
|
return *cachedDisk, *cachedDiskInfoErr
|
||||||
}
|
}
|
||||||
|
|
||||||
var cachedCPU *[]cpu.InfoStat
|
var cachedCPU *[]cpu.InfoStat
|
||||||
|
|
|
@ -254,7 +254,7 @@ func acquireMachinesLock(name string) (mutex.Releaser, error) {
|
||||||
func showHostInfo(cfg config.ClusterConfig) {
|
func showHostInfo(cfg config.ClusterConfig) {
|
||||||
machineType := driver.MachineType(cfg.Driver)
|
machineType := driver.MachineType(cfg.Driver)
|
||||||
if driver.BareMetal(cfg.Driver) {
|
if driver.BareMetal(cfg.Driver) {
|
||||||
info, err := CachedHostInfo()
|
info, err := machine.CachedHostInfo()
|
||||||
if err == nil {
|
if err == nil {
|
||||||
register.Reg.SetStep(register.RunningLocalhost)
|
register.Reg.SetStep(register.RunningLocalhost)
|
||||||
out.T(out.StartingNone, "Running on localhost (CPUs={{.number_of_cpus}}, Memory={{.memory_size}}MB, Disk={{.disk_size}}MB) ...", out.V{"number_of_cpus": info.CPUs, "memory_size": info.Memory, "disk_size": info.DiskSize})
|
out.T(out.StartingNone, "Running on localhost (CPUs={{.number_of_cpus}}, Memory={{.memory_size}}MB, Disk={{.disk_size}}MB) ...", out.V{"number_of_cpus": info.CPUs, "memory_size": info.Memory, "disk_size": info.DiskSize})
|
||||||
|
|
Loading…
Reference in New Issue