コード例 #1
0
 private static Parameter createOrderParameter(ServiceFieldRestRep field, String value) {
   Parameter parameter = new Parameter();
   parameter.setLabel(field.getName());
   if (value != null) {
     parameter.setValue(value.trim());
   } else {
     parameter.setValue(value); // NOSONAR
     // ("Suppressing Sonar violation of Load of known null value. Value can be null and it needs
     // to be set when null")
   }
   parameter.setUserInput(true);
   if (StringUtils.equals(field.getType(), ServiceField.TYPE_PASSWORD)) {
     parameter.setEncrypted(true);
   }
   return parameter;
 }
コード例 #2
0
  protected static ScheduledEventCreateParam createScheduledOrder(OrderCreateParam orderParam) {
    if (!isSchedulerEnabled()) {
      return null;
    }
    ScheduleInfo scheduleInfo = new ScheduleInfo();
    String cycleFrequency = params.get("scheduler.cycleFrequency");
    if (cycleFrequency != null) {
      scheduleInfo.setCycleFrequency(Integer.parseInt(cycleFrequency));
    } else {
      scheduleInfo.setCycleFrequency(1);
    }

    String cycleType = params.get("scheduler.cycleType");
    if (cycleType != null) {
      ScheduleCycleType cycleTypeEnum = ScheduleCycleType.valueOf(cycleType);
      scheduleInfo.setCycleType(cycleTypeEnum);
      List<String> sectionsInCycleList = Lists.newArrayList();
      if (cycleTypeEnum == ScheduleCycleType.WEEKLY) {
        String sectionsInCycle = params.get("scheduler.dayOfWeek");
        sectionsInCycleList.add(sectionsInCycle);
      } else if (cycleTypeEnum == ScheduleCycleType.MONTHLY) {
        String sectionsInCycle = params.get("scheduler.dayOfMonth");
        sectionsInCycleList.add(sectionsInCycle);
      }
      scheduleInfo.setSectionsInCycle(sectionsInCycleList);
    } else {
      scheduleInfo.setCycleType(ScheduleCycleType.DAILY);
    }

    String currentTimezoneOffsetInMins = params.get("scheduler.currentTimezoneOffsetInMins");
    Integer timezoneOffset = Integer.parseInt(currentTimezoneOffsetInMins);

    String startDate = params.get("scheduler.startDate");
    String startTime = params.get("scheduler.startTime");

    String isoDateTimeStr = String.format("%sT%s", startDate, startTime);
    DateTime startDateTime =
        DateTime.parse(
            isoDateTimeStr,
            ISODateTimeFormat.localDateOptionalTimeParser()
                .withZone(TimeUtils.getLocalTimeZone(timezoneOffset)));
    startDateTime = startDateTime.withZone(DateTimeZone.UTC);
    scheduleInfo.setHourOfDay(startDateTime.getHourOfDay());
    scheduleInfo.setMinuteOfHour(startDateTime.getMinuteOfHour());
    scheduleInfo.setStartDate(
        String.format(
            "%d-%02d-%02d",
            startDateTime.getYear(),
            startDateTime.getMonthOfYear(),
            startDateTime.getDayOfMonth()));

    String recurrence = params.get("scheduler.recurrence");
    int recurrenceNum = 1;
    if (recurrence != null) {
      recurrenceNum = Integer.parseInt(recurrence);
      if (recurrenceNum == -1) {
        String range = params.get("scheduler.rangeOfRecurrence");
        recurrenceNum = Integer.parseInt(range);
      }
    }
    scheduleInfo.setReoccurrence(recurrenceNum);

    /*
     * if reoccurence number large than 1, we must make sure the name contains patten {datetime},
     * with the pattern in the name, vipr know how to generate dynamic name for each snaphot/fullcopy.
     */
    if (recurrenceNum != 1) {
      List<Parameter> parameters = orderParam.getParameters();
      CatalogServiceRestRep service =
          CatalogServiceUtils.getCatalogService(orderParam.getCatalogService());
      Logger.info("creating order with parameter for: " + service.getBaseService());
      String nameToValidate = SCHEDULED_SERVICE.get(service.getBaseService());
      for (Parameter parameter : parameters) {
        if (parameter.getLabel().equals(nameToValidate)
            && !parameter.getValue().contains("{datetime}")) {
          Validation.addError(
              nameToValidate,
              "need to add patten '{datetime}' in the name for reoccuring scheduled operation");
        }
        Logger.info(
            parameter.getLabel()
                + " = "
                + parameter.getValue()
                + ", "
                + parameter.getFriendlyLabel()
                + " = "
                + parameter.getFriendlyValue());
      }
    }

    String maxNumOfCopies = params.get("scheduler.maxNumOfCopies");
    if (maxNumOfCopies != null) {
      orderParam.setAdditionalScheduleInfo(maxNumOfCopies);
    }

    scheduleInfo.setDurationLength(3600);
    ScheduledEventCreateParam eventParam = new ScheduledEventCreateParam();
    eventParam.setOrderCreateParam(orderParam);
    eventParam.setScheduleInfo(scheduleInfo);

    return eventParam;
  }