public static Value getZero(Value.Type type) { switch (type) { case SCALAR: Value.Scalar scalar = Value.Scalar.newBuilder().setValue(0).build(); return Value.newBuilder().setType(type).setScalar(scalar).build(); case RANGES: Value.Ranges ranges = Value.Ranges.newBuilder().addAllRange(Collections.emptyList()).build(); return Value.newBuilder().setType(type).setRanges(ranges).build(); default: throw new IllegalArgumentException( String.format("Unsupported type %s for zero value", type)); } } }
Protos.Value.Scalar.newBuilder() .setValue(0.0) .build() Protos.Value.Scalar.newBuilder() .setValue(resource.getIntegerValue().doubleValue() / 1024.0) // CPU is a normalized int, divide by 1024 to get to what Mesos expects .build() Protos.Value.Scalar.newBuilder() .setValue(resource.getIntegerValue().doubleValue()) .build()
.setScalar( Value.Scalar.newBuilder() .setValue(cpus).build()).build()); cpusNeeded -= cpus; } else if (r.getName().equals("mem") && memNeeded > 0) { .setScalar( Value.Scalar.newBuilder() .setValue(mem).build()).build()); memNeeded -= mem; } else if (r.getName().equals("disk") && diskNeeded > 0) { .setScalar( Value.Scalar.newBuilder() .setValue(disk).build()).build());
@SuppressWarnings("unchecked") @Override public boolean matches(Object o) { Collection<Protos.Request> requests = (Collection<Protos.Request>) o; Protos.Resource cpuResource = Protos.Resource.newBuilder() .setName(Resources.RESOURCE_CPUS) .setType(Protos.Value.Type.SCALAR) .setScalar(Protos.Value.Scalar.newBuilder().setValue(cpus).build()) .setRole(frameworkRole) .build(); Protos.Resource memResource = Protos.Resource.newBuilder() .setName(Resources.RESOURCE_MEM) .setType(Protos.Value.Type.SCALAR) .setScalar(Protos.Value.Scalar.newBuilder().setValue(mem).build()) .setRole(frameworkRole) .build(); Protos.Resource diskResource = Protos.Resource.newBuilder() .setName(Resources.RESOURCE_DISK) .setType(Protos.Value.Type.SCALAR) .setScalar(Protos.Value.Scalar.newBuilder().setValue(disk).build()) .setRole(frameworkRole) .build(); Protos.Request request = Protos.Request.newBuilder() .addResources(cpuResource) .addResources(memResource) .addResources(diskResource) .build(); return requests.contains(request); }
private static Value.Scalar add(Value.Scalar scal1, Value.Scalar scal2) { double value = scal1.getValue() + scal2.getValue(); return Value.Scalar.newBuilder().setValue(value).build(); }
private static Value.Scalar subtract(Value.Scalar scal1, Value.Scalar scal2) { double value = scal1.getValue() - scal2.getValue(); return Value.Scalar.newBuilder().setValue(value).build(); }