Fix handling of cos_object_prefix pipeline property
#2972
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Prior to this PR, pipelines with a
cos_object_prefixdefined will fail to run onmainand the 3.12 release.What changes were proposed in this pull request?
This PR does a handful of related things. First, the
pipeline_parametersproperty on thepipeline_definition.pyPipelineobject is removed - it is no longer necessary now thatcos_object_prefixis stored in thepipeline_defaultsstanza of the pipeline JSON. (Prior to the changes in #2780,cos_object_prefixexisted as a sibling to thepipeline_defaultsstanza). ThePIPELINE_META_PROPERTIESconstant is also no longer needed and is removed. A handful of helper methods are added tocomponent_parameter.pyand, as a result, theconvert_elyra_owned_propertiesmethods are simplified.The key-value pairs in the
pipeline_defaultsstanza are passed to thepipeline.pyPipelineobject and accessed by the runtime processors in the same way as before, but now this property is namedpipeline_propertiesrather thanpipeline_parameters(in order to prepare for an implementation of #2936).Of note here is that no pipeline migration is necessary right now. In order to avoid a migration so soon in 3.13 (3.12 just required migration), a workaround is added to the backend that supports
cos_object_prefixboth as a child of thepipeline_defaultsand as a sibling. Seepipeline_definition:191:197.How was this pull request tested?
cos_object_prefixfunctionality; existing case that uses the same sample pipeline was also updated accordinglytest_create_yaml_complex_pipeline) to covercos_object_prefixand other functionality; mimics thecreate_test_filetest intest_airflow_processor.pycos_object_prefixdefined in thepipeline_defaultsstanza of the pipeline jsoncos_object_prefixdefined in theapp_datastanza of the pipeline jsonDeveloper's Certificate of Origin 1.1