func (self *manager) ResourceRequirementsWouldMatch(offer *mesosproto.Offer, taskRequest *managerInterface.Task) bool { for _, resource := range offer.GetResources() { switch { case *resource.Name == "cpus": if resource.Scalar.GetValue() < float64(taskRequest.Cpus) { return false } case *resource.Name == "mem": if resource.Scalar.GetValue() < float64(taskRequest.Mem) { return false } } } for _, attribute := range offer.GetAttributes() { switch { case *attribute.Name == "nodetype": if len(taskRequest.NodeType) > 0 && attribute.Text.GetValue() != taskRequest.NodeType { return false } case *attribute.Name == "nodename": if len(taskRequest.NodeName) > 0 && attribute.Text.GetValue() != taskRequest.NodeName { return false } } } return true }