use of com.mesosphere.sdk.specification.ServiceSpec in project dcos-commons by mesosphere.
the class SchedulerBuilderTest method testRegionAwarenessEnabledWithoutSchedulerRegion.
@Test
public void testRegionAwarenessEnabledWithoutSchedulerRegion() throws PersisterException {
ServiceSpec updatedServiceSpec = DefaultScheduler.newBuilder(minimalServiceSpec, mockSchedulerConfig, new MemPersister()).withSingleRegionConstraint().build().getServiceSpec();
Optional<PlacementRule> rule = updatedServiceSpec.getPods().get(0).getPlacementRule();
// Pod updated with local region rule:
Assert.assertTrue(rule.isPresent());
Assert.assertTrue(rule.get() instanceof IsLocalRegionRule);
}
use of com.mesosphere.sdk.specification.ServiceSpec in project dcos-commons by mesosphere.
the class PodSpecsCannotShrinkTest method testAllowedPodRemoveIsValid.
@Test
public void testAllowedPodRemoveIsValid() throws InvalidRequirementException {
when(mockPodSpecB1.getAllowDecommission()).thenReturn(true);
ServiceSpec serviceSpec1 = getServiceSpec(mockPodSpecA1, mockPodSpecB1);
ServiceSpec serviceSpec2 = getServiceSpec("svc2", mockPodSpecA1);
Assert.assertEquals(0, VALIDATOR.validate(Optional.of(serviceSpec1), serviceSpec2).size());
Assert.assertEquals(0, VALIDATOR.validate(Optional.of(serviceSpec2), serviceSpec1).size());
Assert.assertEquals(0, VALIDATOR.validate(Optional.of(serviceSpec1), serviceSpec1).size());
Assert.assertEquals(0, VALIDATOR.validate(Optional.of(serviceSpec2), serviceSpec2).size());
}
use of com.mesosphere.sdk.specification.ServiceSpec in project dcos-commons by mesosphere.
the class ConfigurationUpdaterTest method testPodsUsersUnsetInPreviousServiceSpecButSetToRootInNewServiceSpec.
@Test
public void testPodsUsersUnsetInPreviousServiceSpecButSetToRootInNewServiceSpec() throws ConfigStoreException {
final ConfigurationUpdater<ServiceSpec> configurationUpdater = new DefaultConfigurationUpdater(mockStateStore, mockConfigStore, DefaultServiceSpec.getComparatorInstance(), DefaultConfigValidators.getValidators(SchedulerConfigTestUtils.getTestSchedulerConfig()));
when(mockConfigStore.getTargetConfig()).thenReturn(TARGET_ID);
DefaultServiceSpec.Builder serviceSpecWithUser = DefaultServiceSpec.newBuilder(ORIGINAL_SERVICE_SPECIFICATION).user(DcosConstants.DEFAULT_SERVICE_USER);
List<PodSpec> podsWithoutUsers = new ArrayList<>();
for (PodSpec podSpec : ORIGINAL_SERVICE_SPECIFICATION.getPods()) {
podsWithoutUsers.add(DefaultPodSpec.newBuilder(podSpec).user(null).build());
}
serviceSpecWithUser.pods(podsWithoutUsers);
when(mockConfigStore.fetch(TARGET_ID)).thenReturn(serviceSpecWithUser.build());
// set the pod users for the new service spec to "root" to match the default of the non-set user from
// previous service spec
List<PodSpec> podsWithUsers = new ArrayList<>();
for (PodSpec podSpec : ORIGINAL_SERVICE_SPECIFICATION_WITH_USER.getPods()) {
podsWithUsers.add(DefaultPodSpec.newBuilder(podSpec).user(DcosConstants.DEFAULT_SERVICE_USER).build());
}
ServiceSpec SERVICE_SPECIFICATION_WITH_USER = DefaultServiceSpec.newBuilder(ORIGINAL_SERVICE_SPECIFICATION_WITH_USER).pods(podsWithUsers).build();
ConfigurationUpdater.UpdateResult result = configurationUpdater.updateConfiguration(SERVICE_SPECIFICATION_WITH_USER);
Assert.assertEquals(TARGET_ID, result.getTargetId());
Assert.assertEquals(0, result.getErrors().size());
}
use of com.mesosphere.sdk.specification.ServiceSpec in project dcos-commons by mesosphere.
the class PreReservationCannotChangeTest method testSwappedPodsDoesPassesValidation.
@Test
public void testSwappedPodsDoesPassesValidation() {
Optional<ServiceSpec> serviceSpec1 = Optional.of(DefaultServiceSpec.newBuilder().name("svc1").role(TestConstants.ROLE).principal(TestConstants.PRINCIPAL).pods(Arrays.asList(mockPodSpec1, mockPodSpec2)).build());
final ServiceSpec serviceSpec2 = DefaultServiceSpec.newBuilder().name("svc1").role(TestConstants.ROLE).principal(TestConstants.PRINCIPAL).pods(Arrays.asList(mockPodSpec2, mockPodSpec1)).build();
assertThat(VALIDATOR.validate(serviceSpec1, serviceSpec2), is(empty()));
}
use of com.mesosphere.sdk.specification.ServiceSpec in project dcos-commons by mesosphere.
the class PreReservationCannotChangeTest method testSecondPodChangesReservedRoleFailsValidation.
@Test
public void testSecondPodChangesReservedRoleFailsValidation() {
Optional<ServiceSpec> serviceSpec1 = Optional.of(DefaultServiceSpec.newBuilder().name("svc1").role(TestConstants.ROLE).principal(TestConstants.PRINCIPAL).pods(Arrays.asList(mockPodSpec1, mockPodSpec2)).build());
final ServiceSpec serviceSpec2 = DefaultServiceSpec.newBuilder().name("svc1").role(TestConstants.ROLE).principal(TestConstants.PRINCIPAL).pods(Arrays.asList(mockPodSpec1, mockPodSpec2WithDifferentRole)).build();
assertThat(VALIDATOR.validate(serviceSpec1, serviceSpec2), hasSize(1));
}
Aggregations