Map<String, List<Protos.Resource>> rangesResourceMap = new HashMap<>(); for (Protos.Resource resource : offer.getResourcesList()) { switch (resource.getType()) { case SCALAR: resources.add(resource); break; default: logger.debug("Unknown resource type " + resource.getType() + " for resource " + resource.getName() + " in offer, hostname=" + hostname + ", offerId=" + offer.getId());
if (resource.getType().equals(Protos.Value.Type.SCALAR)) cpus = resource.getScalar().getValue(); else log.log(Level.FINE, "Cpus resource was not a scalar: {0}" + resource.getType()); if (resource.getType().equals(Protos.Value.Type.SCALAR)) mem = resource.getScalar().getValue(); else log.log(Level.FINE, "Mem resource was not a scalar: {0}", resource.getType()); if (resource.getType().equals(Protos.Value.Type.SCALAR)) disk = resource.getScalar().getValue(); else log.log(Level.FINE, "Disk resource was not a scalar: {0}", resource.getType());
if (resource.getType().equals(Value.Type.SCALAR)) { cpus = resource.getScalar().getValue(); } else { LOGGER.log(Level.SEVERE, "Cpus resource was not a scalar: {0}", resource.getType().toString()); if (resource.getType().equals(Value.Type.SCALAR)) { mem = resource.getScalar().getValue(); } else { LOGGER.log(Level.SEVERE, "Mem resource was not a scalar: {0}", resource.getType().toString());
&& resource.getType() == Value.Type.SCALAR) { cpus = resource.getScalar().getValue(); cpuRole = resource.getRole(); } else if (resource.getName().equals("mem") && resource.getType() == Value.Type.SCALAR) { mem = resource.getScalar().getValue(); memRole = resource.getRole(); } else if (resource.getName().equals("disk") && resource.getType() == Value.Type.SCALAR) { disk = resource.getScalar().getValue(); diskRole = resource.getRole(); } else if (resource.getName().equals("ports") && resource.getType() == Value.Type.RANGES) { portsRole = resource.getRole(); for (Value.Range range : resource.getRanges().getRangeList()) {
if (resource.getType().equals(Value.Type.SCALAR)) { cpus = resource.getScalar().getValue(); } else { LOGGER.severe("Cpus resource was not a scalar: " + resource.getType().toString()); if (resource.getType().equals(Value.Type.SCALAR)) { mem = resource.getScalar().getValue(); } else { LOGGER.severe("Mem resource was not a scalar: " + resource.getType().toString()); if (resource.getType().equals(Value.Type.RANGES)) { ports = resource.getRanges().getRangeList(); } else { LOGGER.severe("Ports resource was not a range: " + resource.getType().toString());
Assert.assertEquals(Protos.Value.Type.SCALAR, cpusResource.getType()); Assert.assertEquals(testCpus, cpusResource.getScalar().getValue(), 0.0); Assert.assertEquals(testRole, cpusResource.getRole()); Assert.assertEquals(Protos.Value.Type.SCALAR, memResource.getType()); Assert.assertEquals(testMem, memResource.getScalar().getValue(), 0.0); Assert.assertEquals(testRole, memResource.getRole()); Assert.assertEquals(Protos.Value.Type.SCALAR, diskResource.getType()); Assert.assertEquals(testDisk, diskResource.getScalar().getValue(), 0.0); Assert.assertEquals(testRole, diskResource.getRole()); Assert.assertEquals(Protos.Value.Type.RANGES, portsResource.getType()); Assert.assertTrue(portsResource.getRanges().getRangeList().get(0).getBegin() >= testPortBegin); Assert.assertTrue(portsResource.getRanges().getRangeList().get(0).getEnd() >= testPortBegin);
private void parseOffer(Offer offer) { // Pull out the cpus, memory, disk, and 2 ports from the offer. for (Resource resource : offer.getResourcesList()) { if (resource.getName().equals("cpus") && resource.getType() == Value.Type.SCALAR) { cpus = resource.getScalar().getValue(); cpuRole = resource.getRole(); } else if (resource.getName().equals("mem") && resource.getType() == Value.Type.SCALAR) { mem = resource.getScalar().getValue(); memRole = resource.getRole(); } else if (resource.getName().equals("disk") && resource.getType() == Value.Type.SCALAR) { disk = resource.getScalar().getValue(); diskRole = resource.getRole(); } else if (resource.getName().equals("ports") && resource.getType() == Value.Type.RANGES) { portRole = resource.getRole(); ports = resource.getRanges().getRangeList(); } } }
public static Value getValue(Resource resource) { Type type = resource.getType(); Value.Builder builder = Value.newBuilder(); builder.setType(type); switch (type) { case SCALAR: return builder.setScalar(resource.getScalar()).build(); case RANGES: return builder.setRanges(resource.getRanges()).build(); case SET: return builder.setSet(resource.getSet()).build(); default: throw new IllegalArgumentException(String.format("Unsupported value type %s in resource %s", type, TextFormat.shortDebugString(resource))); } }
@Override public TaskProposal createProposal(OfferEvaluation offerEvaluation) { return new TaskProposal( offerEvaluation.getOffer(), taskInfoFactory.create( offerEvaluation.getTaskId(), offerEvaluation.getOffer(), offerEvaluation.getResources().stream().filter(resource -> resource.getType() != Protos.Value.Type.RANGES || !resource.getRanges().getRangeList().isEmpty()).collect(Collectors.toList()), new ExecutionParameters( offerEvaluation.getEnvironmentVariables(), offerEvaluation.getPortMappings(), offerEvaluation.getVolumeMappings() ) ) ); } }
public Value.Type getType() { return resource.getType(); }
@SuppressWarnings("deprecation") private static void validateScalarResourceRefined( Protos.Resource resource, Optional<String> resourceId, Optional<String> namespace) { Assert.assertEquals(Protos.Value.Type.SCALAR, resource.getType()); Assert.assertEquals(Constants.ANY_ROLE, resource.getRole()); Assert.assertFalse(resource.hasReservation()); Protos.Resource.ReservationInfo reservationInfo = resource.getReservations(resource.getReservationsCount() - 1); Assert.assertEquals(TestConstants.PRINCIPAL, reservationInfo.getPrincipal()); Assert.assertEquals(TestConstants.ROLE, reservationInfo.getRole()); validateLabels(reservationInfo, resourceId, namespace); }
@SuppressWarnings("deprecation") @Test public void testUnreservedResource() { ResourceBuilder resourceBuilder = ResourceBuilder.fromUnreservedValue("cpus", VALUE); Protos.Resource resource = resourceBuilder.build(); Assert.assertEquals("cpus", resource.getName()); Assert.assertEquals(Protos.Value.Type.SCALAR, resource.getType()); Assert.assertEquals(1.0, resource.getScalar().getValue(), 0.0); Assert.assertEquals(Constants.ANY_ROLE, resource.getRole()); Assert.assertFalse(resource.hasReservation()); Assert.assertEquals(0, resource.getReservationsCount()); }
@SuppressWarnings("deprecation") private static void validateScalarResourceLegacy(Protos.Resource resource, Optional<String> resourceId, Optional<String> namespace) { Assert.assertEquals(Protos.Value.Type.SCALAR, resource.getType()); Assert.assertEquals(TestConstants.ROLE, resource.getRole()); Assert.assertTrue(resource.hasReservation()); Assert.assertEquals(0, resource.getReservationsCount()); Protos.Resource.ReservationInfo reservationInfo = resource.getReservation(); Assert.assertEquals(TestConstants.PRINCIPAL, reservationInfo.getPrincipal()); Assert.assertFalse(reservationInfo.hasRole()); validateLabels(reservationInfo, resourceId, namespace); }