diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationDefinitionPBImpl.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationDefinitionPBImpl.java index 49aef11..450f400 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationDefinitionPBImpl.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/api/records/impl/pb/ReservationDefinitionPBImpl.java @@ -226,6 +226,11 @@ public String getRecurrenceExpression() { @Override public void setRecurrenceExpression(String recurrenceExpression) { + maybeInitBuilder(); + if (recurrenceExpression == null) { + builder.clearRecurrenceExpression(); + return; + } builder.setRecurrenceExpression(recurrenceExpression); } diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java index e6a0cae..77231ee 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/RMWebServices.java @@ -2018,9 +2018,10 @@ private ReservationSubmissionRequest createReservationSubmissionRequest( list.add(rr); } ReservationRequests reqs = ReservationRequests.newInstance(list, resInt); - ReservationDefinition rDef = - ReservationDefinition.newInstance(resInfo.getArrival(), - resInfo.getDeadline(), reqs, resInfo.getReservationName()); + ReservationDefinition rDef = ReservationDefinition + .newInstance(resInfo.getArrival(), resInfo.getDeadline(), reqs, + resInfo.getReservationName(), resInfo.getRecurrenceExpression(), + Priority.newInstance(resInfo.getPriority())); ReservationId reservationId = ReservationId.parseReservationId(resContext.getReservationId()); @@ -2119,9 +2120,10 @@ private ReservationUpdateRequest createReservationUpdateRequest( list.add(rr); } ReservationRequests reqs = ReservationRequests.newInstance(list, resInt); - ReservationDefinition rDef = - ReservationDefinition.newInstance(resInfo.getArrival(), - resInfo.getDeadline(), reqs, resInfo.getReservationName()); + ReservationDefinition rDef = ReservationDefinition + .newInstance(resInfo.getArrival(), resInfo.getDeadline(), reqs, + resInfo.getReservationName(), resInfo.getRecurrenceExpression(), + Priority.newInstance(resInfo.getPriority())); ReservationUpdateRequest request = ReservationUpdateRequest.newInstance( rDef, ReservationId.parseReservationId(resContext.getReservationId())); diff --git hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ReservationDefinitionInfo.java hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ReservationDefinitionInfo.java index 42a07af..91d5e60 100644 --- hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ReservationDefinitionInfo.java +++ hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/webapp/dao/ReservationDefinitionInfo.java @@ -47,6 +47,9 @@ @XmlElement(name = "priority") private int priority; + @XmlElement(name = "recurrence-expression") + private String recurrenceExpression; + public ReservationDefinitionInfo() { } @@ -57,6 +60,7 @@ public ReservationDefinitionInfo(ReservationDefinition definition) { reservationName = definition.getReservationName(); reservationRequests = new ReservationRequestsInfo(definition .getReservationRequests()); + recurrenceExpression = definition.getRecurrenceExpression(); } public long getArrival() { @@ -100,4 +104,12 @@ public void setPriority(int priority) { this.priority = priority; } + public String getRecurrenceExpression() { + return recurrenceExpression; + } + + public void setRecurrenceExpression(String recurrenceExpression) { + this.recurrenceExpression = recurrenceExpression; + } + }