AbsaOSS / atum-service

Apache License 2.0
5 stars 1 forks source link

A custom/unknonw measure fails when read from server #170

Closed benedeki closed 5 months ago

benedeki commented 6 months ago

Describe the bug

When custom/unknown measure is added a later request of measure is requested from Atum server if fails with exception.

To Reproduce

Steps to reproduce the behavior OR commands run:

  1. Add a UnknownMeasure to an AtumPartitioing
  2. Request the AtumContext
  3. Exception is thrown

Responsible code

  private def createMeasure(measure: MeasureDTO): za.co.absa.atum.agent.model.AtumMeasure = {
    val measuredColumns = measure.measuredColumns

    measure.measureName match {
      case RecordCount.measureName            => RecordCount()
      case DistinctRecordCount.measureName    => DistinctRecordCount(measuredColumns)
      case SumOfValuesOfColumn.measureName    => SumOfValuesOfColumn(measuredColumns.head)
      case AbsSumOfValuesOfColumn.measureName => AbsSumOfValuesOfColumn(measuredColumns.head)
      case SumOfHashesOfColumn.measureName    => SumOfHashesOfColumn(measuredColumns.head)
      case unsupportedMeasure =>
        throw MeasureException(
          s"Measure not supported: $unsupportedMeasure. Supported measures are: ${AtumMeasure.supportedMeasureNames}"
        )
    }
  }

Expected behavior

Instance of UnknownMeasure is created. And it won't be evaluated on createCheckpoint call.