func matchLrpAuction(offerAggregates [][]*mesos.Offer, lrpAuction *auctiontypes.LRPAuction) (int, []*mesos.Offer) { lrpAuction.Attempts++ for i, offers := range offerAggregates { if getOffersMem(offers) > float64(lrpAuction.MemoryMB) && getOffersCpu(offers) > taskCpuAllocation && getOffersDisk(offers) > float64(lrpAuction.DiskMB) { lrpAuction.Winner = offers[0].SlaveId.GetValue() lrpAuction.WaitDuration = time.Now().Sub(lrpAuction.QueueTime) offers[0].Resources = append(offers[0].Resources, util.NewScalarResource("mem", float64(-lrpAuction.MemoryMB)), util.NewScalarResource("cpu", -taskCpuAllocation), util.NewScalarResource("disk", float64(-lrpAuction.DiskMB))) return i, offers } } lrpAuction.PlacementError = rep.ErrorInsufficientResources.Error() return -1, nil }