throws IOException, ServletException
{
String methodName = "handleServletJsonFormatReservations";
duccLogger.trace(methodName, jobid, messages.fetch("enter"));
StringBuffer sb = new StringBuffer();
ReservationFactsList factsList = new ReservationFactsList();
int maxRecords = getReservationsMaxRecordsParameter(request);
RequestStateType requestStateType = getStateTypeParameter(request);
ArrayList<String> users = getReservationsUsers(request);
DuccData duccData = DuccData.getInstance();
ConcurrentSkipListMap<ReservationInfo,ReservationInfo> sortedReservations = duccData.getSortedReservations();
if(sortedReservations.size()> 0) {
Iterator<Entry<ReservationInfo, ReservationInfo>> iterator = sortedReservations.entrySet().iterator();
int counter = 0;
nextReservation:
while(iterator.hasNext()) {
ReservationInfo reservationInfo = iterator.next().getValue();
DuccWorkReservation reservation = reservationInfo.getReservation();
ReservationState reservationState = reservation.getReservationState();
switch(requestStateType) {
case All:
break;
case Active:
switch(reservationState) {
case Completed:
continue nextReservation;
default:
break;
}
break;
case Inactive:
switch(reservationState) {
case Completed:
break;
default:
continue nextReservation;
}
break;
}
String reservationUser = reservation.getStandardInfo().getUser().trim();
if(isIncludeUser(users,reservationUser)) {
if(maxRecords > 0) {
if (counter++ < maxRecords) {
String id = reservation.getId();
String start = getTimeStamp(request,reservation.getDuccId(), reservation.getStandardInfo().getDateOfSubmission());;
String end = getTimeStamp(request,reservation.getDuccId(), reservation.getStandardInfo().getDateOfCompletion());
String user = reservation.getStandardInfo().getUser();
String rclass = reservation.getSchedulingInfo().getSchedulingClass();
String state = reservation.getReservationState().toString();
String reason = reservation.getCompletionType().toString();
String allocation = reservation.getSchedulingInfo().getInstancesCount();
List<NodePidList> userProcesses = new ArrayList<NodePidList>();
List<String> list = new ArrayList<String>();
if(!reservation.isCompleted()) {
userProcesses = DuccMachinesData.getInstance().getUserProcesses(reservation.getUniqueNodes(),user);
list = reservation.getNodes();
}
String size = getProcessMemorySize(reservation.getDuccId(),"Reservation",reservation.getSchedulingInfo().getShareMemorySize(),reservation.getSchedulingInfo().getShareMemoryUnits());
String description = reservation.getStandardInfo().getDescription();
ReservationFacts facts = new ReservationFacts(id,start,end,user,rclass,state,reason,allocation,userProcesses,size,list,description);
factsList.add(facts);
}
}
}
}
}