|
@@ -269,6 +269,59 @@ public class TestReservationInputValidator {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @Test
|
|
|
+ public void testSubmitReservationValidRecurrenceExpression() {
|
|
|
+ ReservationSubmissionRequest request =
|
|
|
+ createSimpleReservationSubmissionRequest(1, 1, 1, 5, 3, "600000");
|
|
|
+ plan = null;
|
|
|
+ try {
|
|
|
+ plan =
|
|
|
+ rrValidator.validateReservationSubmissionRequest(rSystem, request,
|
|
|
+ ReservationSystemTestUtil.getNewReservationId());
|
|
|
+ } catch (YarnException e) {
|
|
|
+ Assert.fail(e.getMessage());
|
|
|
+ }
|
|
|
+ Assert.assertNotNull(plan);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testSubmitReservationNegativeRecurrenceExpression() {
|
|
|
+ ReservationSubmissionRequest request =
|
|
|
+ createSimpleReservationSubmissionRequest(1, 1, 1, 5, 3, "-1234");
|
|
|
+ plan = null;
|
|
|
+ try {
|
|
|
+ plan =
|
|
|
+ rrValidator.validateReservationSubmissionRequest(rSystem, request,
|
|
|
+ ReservationSystemTestUtil.getNewReservationId());
|
|
|
+ Assert.fail();
|
|
|
+ } catch (YarnException e) {
|
|
|
+ Assert.assertNull(plan);
|
|
|
+ String message = e.getMessage();
|
|
|
+ Assert.assertTrue(message
|
|
|
+ .startsWith("Negative Period : "));
|
|
|
+ LOG.info(message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Test
|
|
|
+ public void testSubmitReservationInvalidRecurrenceExpression() {
|
|
|
+ ReservationSubmissionRequest request =
|
|
|
+ createSimpleReservationSubmissionRequest(1, 1, 1, 5, 3, "123abc");
|
|
|
+ plan = null;
|
|
|
+ try {
|
|
|
+ plan =
|
|
|
+ rrValidator.validateReservationSubmissionRequest(rSystem, request,
|
|
|
+ ReservationSystemTestUtil.getNewReservationId());
|
|
|
+ Assert.fail();
|
|
|
+ } catch (YarnException e) {
|
|
|
+ Assert.assertNull(plan);
|
|
|
+ String message = e.getMessage();
|
|
|
+ Assert.assertTrue(message
|
|
|
+ .startsWith("Invalid period "));
|
|
|
+ LOG.info(message);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
@Test
|
|
|
public void testUpdateReservationNormal() {
|
|
|
ReservationUpdateRequest request =
|
|
@@ -625,12 +678,20 @@ public class TestReservationInputValidator {
|
|
|
private ReservationSubmissionRequest createSimpleReservationSubmissionRequest(
|
|
|
int numRequests, int numContainers, long arrival, long deadline,
|
|
|
long duration) {
|
|
|
+ return createSimpleReservationSubmissionRequest(numRequests, numContainers,
|
|
|
+ arrival, deadline, duration, "0");
|
|
|
+ }
|
|
|
+
|
|
|
+ private ReservationSubmissionRequest createSimpleReservationSubmissionRequest(
|
|
|
+ int numRequests, int numContainers, long arrival, long deadline,
|
|
|
+ long duration, String recurrence) {
|
|
|
// create a request with a single atomic ask
|
|
|
ReservationSubmissionRequest request =
|
|
|
new ReservationSubmissionRequestPBImpl();
|
|
|
ReservationDefinition rDef = new ReservationDefinitionPBImpl();
|
|
|
rDef.setArrival(arrival);
|
|
|
rDef.setDeadline(deadline);
|
|
|
+ rDef.setRecurrenceExpression(recurrence);
|
|
|
if (numRequests > 0) {
|
|
|
ReservationRequests reqs = new ReservationRequestsPBImpl();
|
|
|
rDef.setReservationRequests(reqs);
|