@Override public void rescindOffer(OfferID offerId) { offerCache.invalidate(offerId.getValue()); }
List<CachedOffer> cachedOffersFromHolder = offerHolder.getOffers().stream().map((o) -> offerIdToCachedOffer.get(o.getId().getValue())).collect(Collectors.toList()); List<CachedOffer> unusedCachedOffers = unusedOffers.stream().map((o) -> offerIdToCachedOffer.get(o.getId().getValue())).collect(Collectors.toList()); unusedCachedOffers.forEach((cachedOffer) -> { offerIdToCachedOffer.remove(cachedOffer.getOfferId());
@Override public void cacheOffer(long timestamp, Offer offer) { if (!useOfferCache.get()) { schedulerClient.decline(Collections.singletonList(offer.getId())); return; } LOG.debug("Caching offer {} for {}", offer.getId().getValue(), JavaUtils.durationFromMillis(configuration.getCacheOffersForMillis())); offerCache.put(offer.getId().getValue(), new CachedOffer(offer)); }
LOG.debug("Received offer ID {} with roles {} from {} ({}) for {} cpu(s), {} memory, {} ports, and {} disk", offer.getId().getValue(), rolesInfo, offer.getHostname(), offer.getAgentId().getValue(), MesosUtils.getNumCpus(offer), MesosUtils.getMemory(offer), MesosUtils.getNumPorts(offer), MesosUtils.getDisk(offer)); mesosSchedulerClient.decline(Collections.singletonList(offer.getId())); offersToCheck.remove(offer); LOG.debug("Will decline offer {}, slave {} is not currently in a state to launch tasks", offer.getId().getValue(), offer.getHostname()); if (cachedOffers.containsKey(o.getId().getValue())) { offerCache.returnOffer(cachedOffers.remove(o.getId().getValue())); } else { offerCache.cacheOffer(start, o); offersAcceptedFromSlave.removeAll(leftoverOffers); offersAcceptedFromSlave.stream() .filter((offer) -> cachedOffers.containsKey(offer.getId().getValue())) .map((o) -> cachedOffers.remove(o.getId().getValue())) .forEach(offerCache::useOffer); acceptedOffers.addAll(offersAcceptedFromSlave.stream().map(Offer::getId).collect(Collectors.toList())); } else { offerHolder.getOffers().forEach((o) -> { if (cachedOffers.containsKey(o.getId().getValue())) { offerCache.returnOffer(cachedOffers.remove(o.getId().getValue())); } else { offerCache.cacheOffer(start, o); .filter((o) -> !acceptedOffers.contains(o.getId()) && !cachedOffers.containsKey(o.getId().getValue())) .map(Offer::getId) .collect(Collectors.toList()));
List<CachedOffer> cachedOffersFromHolder = offerHolder.getOffers().stream().map((o) -> offerIdToCachedOffer.get(o.getId().getValue())).collect(Collectors.toList()); List<CachedOffer> unusedCachedOffers = unusedOffers.stream().map((o) -> offerIdToCachedOffer.get(o.getId().getValue())).collect(Collectors.toList()); unusedCachedOffers.forEach((cachedOffer) -> { offerIdToCachedOffer.remove(cachedOffer.getOfferId());
offer.getId().getValue(), offer.getHostname(), MesosUtils.getNumCpus(offer), MesosUtils.getMemory(offer), MesosUtils.getDisk(offer) ); currentResources = MesosUtils.subtractResources(currentResources, offer.getResourcesList());
@Override public void rescindOffer(OfferID offerId) { offerCache.invalidate(offerId.getValue()); }
public CachedOffer(Offer offer) { this.offerId = offer.getId().getValue(); this.offer = offer; this.offerState = OfferState.AVAILABLE; }
@Override public void cacheOffer(long timestamp, Offer offer) { if (!useOfferCache.get()) { schedulerClient.decline(Collections.singletonList(offer.getId())); return; } LOG.debug("Caching offer {} for {}", offer.getId().getValue(), JavaUtils.durationFromMillis(configuration.getCacheOffersForMillis())); offerCache.put(offer.getId().getValue(), new CachedOffer(offer)); }
LOG.debug("Received offer ID {} with roles {} from {} ({}) for {} cpu(s), {} memory, {} ports, and {} disk", offer.getId().getValue(), rolesInfo, offer.getHostname(), offer.getAgentId().getValue(), MesosUtils.getNumCpus(offer), MesosUtils.getMemory(offer), MesosUtils.getNumPorts(offer), MesosUtils.getDisk(offer)); mesosSchedulerClient.decline(Collections.singletonList(offer.getId())); offersToCheck.remove(offer); LOG.debug("Will decline offer {}, slave {} is not currently in a state to launch tasks", offer.getId().getValue(), offer.getHostname()); if (cachedOffers.containsKey(o.getId().getValue())) { offerCache.returnOffer(cachedOffers.remove(o.getId().getValue())); } else { offerCache.cacheOffer(start, o); offersAcceptedFromSlave.removeAll(leftoverOffers); offersAcceptedFromSlave.stream() .filter((offer) -> cachedOffers.containsKey(offer.getId().getValue())) .map((o) -> cachedOffers.remove(o.getId().getValue())) .forEach(offerCache::useOffer); acceptedOffers.addAll(offersAcceptedFromSlave.stream().map(Offer::getId).collect(Collectors.toList())); } else { offerHolder.getOffers().forEach((o) -> { if (cachedOffers.containsKey(o.getId().getValue())) { offerCache.returnOffer(cachedOffers.remove(o.getId().getValue())); } else { offerCache.cacheOffer(start, o); .filter((o) -> !acceptedOffers.contains(o.getId()) && !cachedOffers.containsKey(o.getId().getValue())) .map(Offer::getId) .collect(Collectors.toList()));
offer.getId().getValue(), offer.getHostname(), MesosUtils.getNumCpus(offer), MesosUtils.getMemory(offer), MesosUtils.getDisk(offer) ); currentResources = MesosUtils.subtractResources(currentResources, offer.getResourcesList());
public CachedOffer(Offer offer) { this.offerId = offer.getId().getValue(); this.offer = offer; this.offerState = OfferState.AVAILABLE; }