private Protos.Value.Ranges portRanges(final Resource portResource) { final Protos.Value.Ranges.Builder rangeBuilder = Protos.Value.Ranges.newBuilder(); final List<Integer> reservedPorts = new ArrayList<Integer>(); //Bottom end of any port range is 0 + 1. We add it manually to get things started. reservedPorts.add(0); for (final String port : portResource.getStringSetValue()) { reservedPorts.add(Integer.valueOf(port)); } // We need the list of reserved ports sorted to properly turn them into the Mesos expected port ranges. Collections.sort(reservedPorts); for (int i = 0; i < reservedPorts.size(); i++) { Integer realStart = reservedPorts.get(i) + 1; // Don't allow port usage past the maximum Integer realEnd = AWS_ECS_MAX_PORT; if (i + 1 < reservedPorts.size()) { realEnd = Math.min(reservedPorts.get(i + 1) - 1, realEnd); } if (realEnd >= realStart) { rangeBuilder.addRange( Protos.Value.Range.newBuilder() .setBegin(realStart.longValue()) .setEnd(realEnd.longValue()) .build() ); } } return rangeBuilder.build(); } }
private static List<Range> intervalsToRanges(List<Interval> intervals) { List<Range> ranges = new ArrayList<Range>(); for (Interval interval : intervals) { ranges.add(Range.newBuilder().setBegin(interval.a).setEnd(interval.b).build()); } return ranges; }
.newBuilder() .addRange( Value.Range.newBuilder().setBegin(ports.get(0)) .setEnd(ports.get(0))) .addRange( Value.Range.newBuilder().setBegin(ports.get(1)) .setEnd(ports.get(1))))) .setExecutor(
Value.Ranges .newBuilder() .addRange(Value.Range.newBuilder() .setBegin(httpAddress.getPort()) .setEnd(httpAddress.getPort())) .addRange(Value.Range.newBuilder() .setBegin(reportAddress.getPort()) .setEnd(reportAddress.getPort()))))
.newBuilder() .setBegin(portToUse) .setEnd(portToUse)
testPrincipal); Protos.Value.Range range = Protos.Value.Range.newBuilder().setBegin(testPortBegin).setEnd(testPortEnd).build(); Protos.Resource ports = ResourceUtils.getExpectedRanges( "ports",
public static Protos.Offer generateOffer( String frameworkId, double cpu, int memory, int disk, String slaveId, String offerUUID) { return Protos.Offer .newBuilder() .setId(Protos.OfferID.newBuilder().setValue(offerUUID)) .setFrameworkId(Protos.FrameworkID.newBuilder().setValue(frameworkId)) .setSlaveId(Protos.SlaveID.newBuilder().setValue(slaveId)) .setHostname("127.0.0.1") .addResources(ResourceUtils.getUnreservedScalar("cpus", cpu)) .addResources(ResourceUtils.getUnreservedScalar("mem", memory)) .addResources(ResourceUtils.getUnreservedScalar("disk", disk)) .addResources(ResourceUtils.getUnreservedRanges( "ports", Arrays.asList(Protos.Value.Range.newBuilder().setBegin(5000).setEnd(40000).build()))) .build(); }
private Resource createMesosRangeResource(ResourceType resourceType, RangeResourceEntry rangeResourceEntry) { Ranges.Builder rangesBuilder = Ranges.newBuilder(); Range rangeBuilder = Range.newBuilder() .setBegin(rangeResourceEntry.getBegin()) .setEnd(rangeResourceEntry.getEnd()).build(); rangesBuilder.addRange(rangeBuilder); Resource.Builder resourceBuilder = Resource.newBuilder() .setName(resourceType.toString()) .setType(Protos.Value.Type.RANGES) .setRanges(rangesBuilder.build()); if (rangeResourceEntry.getReservationType() != null && rangeResourceEntry.getReservationType().equals(ReservationType.STATIC)) { resourceBuilder.setRole(MesosCommon.getRole(mesosStormConf)); } return resourceBuilder.build(); }
Protos.Value.Range toRange() { return Protos.Value.Range.newBuilder().setBegin(offeredPort).setEnd(offeredPort).build(); }
private static Range getRange(int begin, int end) { Range.Builder builder = Range.newBuilder(); builder.setBegin(begin); builder.setEnd(end); return builder.build(); } }
private Protos.Value getPort(int port) { return Protos.Value.newBuilder() .setType(Protos.Value.Type.RANGES) .setRanges(Protos.Value.Ranges.newBuilder() .addRange(Protos.Value.Range.newBuilder() .setBegin(port) .setEnd(port))) .build(); }
/** * Construct a range value. */ public static Protos.Value.Range range(long begin, long end) { return Protos.Value.Range.newBuilder().setBegin(begin).setEnd(end).build(); }