// BuildBasicResources build basic resources // including cpus, mem, disk, ports func BuildBasicResources(task *registry.Task) { if task.Build { return } if task.Cpus > 0 { task.Resources = append(task.Resources, &mesosproto.Resource{ Name: proto.String("cpus"), Type: mesosproto.Value_SCALAR.Enum(), Scalar: &mesosproto.Value_Scalar{Value: proto.Float64(task.Cpus)}, }) } if task.Mem > 0 { task.Resources = append(task.Resources, &mesosproto.Resource{ Name: proto.String("mem"), Type: mesosproto.Value_SCALAR.Enum(), Scalar: &mesosproto.Value_Scalar{Value: proto.Float64(task.Mem)}, }) } if task.Disk > 0 { task.Resources = append(task.Resources, &mesosproto.Resource{ Name: proto.String("disk"), Type: mesosproto.Value_SCALAR.Enum(), Scalar: &mesosproto.Value_Scalar{Value: proto.Float64(task.Disk)}, }) } if len(task.Ports) > 0 { ranges := &mesosproto.Value_Ranges{} for _, port := range task.Ports { if port.HostPort == 0 { continue } ranges.Range = append(ranges.Range, &mesosproto.Value_Range{ Begin: proto.Uint64(uint64(port.HostPort)), End: proto.Uint64(uint64(port.HostPort)), }) } task.Resources = append(task.Resources, &mesosproto.Resource{ Name: proto.String("ports"), Type: mesosproto.Value_RANGES.Enum(), Ranges: ranges, }) } task.Build = true }
func (core *Core) generateResource(task *registry.Task) { var resources = []*mesosproto.Resource{} resources = append(resources, &mesosproto.Resource{ Name: proto.String("cpus"), Type: mesosproto.Value_SCALAR.Enum(), Scalar: &mesosproto.Value_Scalar{Value: proto.Float64(task.Cpus)}, }) resources = append(resources, &mesosproto.Resource{ Name: proto.String("mem"), Type: mesosproto.Value_SCALAR.Enum(), Scalar: &mesosproto.Value_Scalar{Value: proto.Float64(task.Mem)}, }) resources = append(resources, &mesosproto.Resource{ Name: proto.String("disk"), Type: mesosproto.Value_SCALAR.Enum(), Scalar: &mesosproto.Value_Scalar{Value: proto.Float64(task.Disk)}, }) resources = append(resources, core.MergePorts(task.Ports)) task.Resources = resources }