Macros within a macro function validate incorrectly

Description

When a macro is used within another macro function, the validation endpoint fails with some macro parsing error. This happens at the CDAP platform level, before the plugin ever gets called.

To reproduce, try entering ${logicalStartTime(${date_format})} into any macro field.

The correct behavior is that it should recognize there is a macro and set the value to null, just as if there was no macro function. The plugin can then be called and behave accordingly by checking if the field contains a macro.

This bug is exacerbated in situations where the user cannot make changes and move forward. For example, if you do this in a post-action, the validation will fail and the UI will not let you click next and save the configuration. At that point, the pipeline can only be deployed using the REST API.

Release Notes

None

Activity

Show:
Yaojie Feng
May 5, 2021, 8:52 PM

I will take this up and fix it since this is a blocker for connection management

Albert Shau
April 26, 2021, 4:06 PM

There are 2 possible workarounds.

  1. Use the REST API to deploy the pipeline

  2. Replace ${logicalStartTime(${date_format})} with another macro that evaluates to it. For example, instead of ${logicalStartTime(${date_format})}, replace it with ${timestr} where the timestr argument evaluates to ${logicalStartTime(${date_format})}.

Fixed
Your pinned fields
Click on the next to a field label to start pinning.

Assignee

Yaojie Feng

Reporter

Albert Shau

Labels