func setResources(totCpu int64, totMem string, usedCpu int64, usedMem string) { totMemB, _ := utils.RAMInBytes(totMem) usedMemB, _ := utils.RAMInBytes(usedMem) resources.Memory.Total = totMemB resources.Memory.Used = usedMemB resources.CPU.Total = totCpu resources.CPU.Used = usedCpu }
func createMemory(memory string) int64 { memInBytes, err := utils.RAMInBytes(memory) if err != nil { log.Debugln("Creating Host config: Memory limit not specified") return 0 } return memInBytes }
func AvailableResourcesService(name string) float64 { var err error nodeCpu := resources.CPU.Total nodeUsedCpu := resources.CPU.Used nodeMem := resources.Memory.Total nodeUsedMem := resources.Memory.Used srv, _ := service.GetServiceByName(name) srvCpu := srv.Docker.CPUnumber log.WithFields(log.Fields{ "service": name, "cpus": srvCpu, }).Debugln("Service cpu resources") var srvMem int64 if srv.Docker.Memory != "" { srvMem, err = utils.RAMInBytes(srv.Docker.Memory) if err != nil { log.WithField("err", err).Warnln("Cannot convert service RAM in Bytes.") return 0.0 } } else { srvMem = 0 } if nodeCpu < int64(srvCpu) || nodeMem < int64(srvMem) { return 0.0 } if (nodeCpu-nodeUsedCpu) < int64(srvCpu) || (nodeMem-nodeUsedMem) < int64(srvMem) { return 0.0 } return 1.0 }