@Test public void testMultipleRequiredAttributes() { Map<String, String> requiredAttributes = new HashMap<>(); requiredAttributes.put("requiredKey1", "requiredValue1"); requiredAttributes.put("requiredKey2", "requiredValue2"); initRequest(); initFirstDeploy(); saveAndSchedule(request.toBuilder().setInstances(Optional.of(1)).setRequiredSlaveAttributes(Optional.of(requiredAttributes))); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave1", "host1", Optional.<String>absent(), ImmutableMap.of("requiredKey1", "requiredValue1")))); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave2", "host2", Optional.<String>absent(), ImmutableMap.of("requiredKey1", "requiredValue1", "someotherkey", "someothervalue")))); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 0); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave2", "host2", Optional.<String>absent(), requiredAttributes))); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 1); }
@Test public void testRequiredSlaveAttributesForRequest() { Map<String, String> requiredAttributes = new HashMap<>(); requiredAttributes.put("requiredKey", "requiredValue1"); initRequest(); initFirstDeploy(); saveAndSchedule(request.toBuilder().setInstances(Optional.of(1)).setRequiredSlaveAttributes(Optional.of(requiredAttributes))); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave1", "host1", Optional.<String>absent(), ImmutableMap.of("requiredKey", "notTheRightValue")))); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave2", "host2", Optional.<String>absent(), ImmutableMap.of("notTheRightKey", "requiredValue1")))); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 0); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave2", "host2", Optional.<String>absent(), requiredAttributes))); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 1); }
@Test public void testReservedSlaveWithMatchinRequestAttribute() { Map<String, List<String>> reservedAttributes = new HashMap<>(); reservedAttributes.put("reservedKey", Arrays.asList("reservedValue1")); configuration.setReserveSlavesWithAttributes(reservedAttributes); Map<String, String> reservedAttributesMap = ImmutableMap.of("reservedKey", "reservedValue1"); initRequest(); initFirstDeploy(); saveAndSchedule(request.toBuilder().setInstances(Optional.of(1))); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave1", "host1", Optional.<String>absent(), reservedAttributesMap))); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 0); saveAndSchedule(request.toBuilder().setInstances(Optional.of(1)).setRequiredSlaveAttributes(Optional.of(reservedAttributesMap))); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave1", "host1", Optional.<String>absent(), ImmutableMap.of("reservedKey", "reservedValue1")))); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 1); }
.setWaitAtLeastMillisAfterTaskFinishesForReschedule(waitAtLeastMillisAfterTaskFinishesForReschedule) .setSlavePlacement(slavePlacement) .setRequiredSlaveAttributes(requiredSlaveAttributes) .setAllowedSlaveAttributes(allowedSlaveAttributes) .setSlaveAttributeMinimums(slaveAttributeMinimums)
@Test public void testRequiredSlaveAttributesForRequest() { Map<String, String> requiredAttributes = new HashMap<>(); requiredAttributes.put("requiredKey", "requiredValue1"); initRequest(); initFirstDeploy(); saveAndSchedule(request.toBuilder().setInstances(Optional.of(1)).setRequiredSlaveAttributes(Optional.of(requiredAttributes))); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave1", "host1", Optional.<String>absent(), ImmutableMap.of("requiredKey", "notTheRightValue")))); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave2", "host2", Optional.<String>absent(), ImmutableMap.of("notTheRightKey", "requiredValue1")))); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 0); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave2", "host2", Optional.<String>absent(), requiredAttributes))); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 1); }
@Test public void testMultipleRequiredAttributes() { Map<String, String> requiredAttributes = new HashMap<>(); requiredAttributes.put("requiredKey1", "requiredValue1"); requiredAttributes.put("requiredKey2", "requiredValue2"); initRequest(); initFirstDeploy(); saveAndSchedule(request.toBuilder().setInstances(Optional.of(1)).setRequiredSlaveAttributes(Optional.of(requiredAttributes))); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave1", "host1", Optional.<String>absent(), ImmutableMap.of("requiredKey1", "requiredValue1")))); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave2", "host2", Optional.<String>absent(), ImmutableMap.of("requiredKey1", "requiredValue1", "someotherkey", "someothervalue")))); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 0); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave2", "host2", Optional.<String>absent(), requiredAttributes))); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 1); }
@Test public void testReservedSlaveWithMatchinRequestAttribute() { Map<String, List<String>> reservedAttributes = new HashMap<>(); reservedAttributes.put("reservedKey", Arrays.asList("reservedValue1")); configuration.setReserveSlavesWithAttributes(reservedAttributes); Map<String, String> reservedAttributesMap = ImmutableMap.of("reservedKey", "reservedValue1"); initRequest(); initFirstDeploy(); saveAndSchedule(request.toBuilder().setInstances(Optional.of(1))); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave1", "host1", Optional.<String>absent(), reservedAttributesMap))); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 0); saveAndSchedule(request.toBuilder().setInstances(Optional.of(1)).setRequiredSlaveAttributes(Optional.of(reservedAttributesMap))); sms.resourceOffers(Arrays.asList(createOffer(20, 20000, 50000, "slave1", "host1", Optional.<String>absent(), ImmutableMap.of("reservedKey", "reservedValue1")))); Assert.assertTrue(taskManager.getActiveTaskIds().size() == 1); }