private void validate()

in validator/src/main/java/com/amazon/aoc/App.java [151:183]


  private void validate(Context context, List<ValidationConfig> validationConfigList)
          throws Exception {
    CloudWatchService cloudWatchService = new CloudWatchService(region);
    Dimension dimension = new Dimension().withName(TEST_CASE_DIM_KEY).withValue(this.testcase);
    int maxValidationCycles = 1;
    ValidatorFactory validatorFactory = new ValidatorFactory(context);
    if (this.isCanary) {
      maxValidationCycles = 20;
    }
    for (int cycle = 0; cycle < maxValidationCycles; cycle++) {
      for (ValidationConfig validationConfigItem : validationConfigList) {
        try {
          validatorFactory.launchValidator(validationConfigItem).validate();
        } catch (Exception e) {
          if (this.isCanary) {
            //emit metric
            cloudWatchService.putMetricData(CANARY_NAMESPACE, CANARY_METRIC_NAME, 0.0, dimension);
          }
          throw e;
        }
      }
      if (maxValidationCycles - cycle - 1 > 0) {
        log.info("Completed {} validation cycle for current canary test. "
                        + "Still need to validate {} cycles. Sleep 1 minute then proceed.",
                cycle + 1, maxValidationCycles - cycle - 1);
        TimeUnit.MINUTES.sleep(1);
      }
    }
    if (this.isCanary) {
      //emit metric
      cloudWatchService.putMetricData(CANARY_NAMESPACE, CANARY_METRIC_NAME, 1.0, dimension);
    }
  }