64f9af07f3
To allow filenames referenced by the application specific yaml tags to contain template job variables, use a lazy loading object that provides a format method that can be called by the deep_format function. Instead of processing the file, when a KeyError occurs on attempting to call format on the filename after the yaml tag, create a LazyLoader instance to wrap the data and provide a format method that can be called at a later stage. In order to call the correct method on the original Loader class, LazyLoader needs to be given the custom tag class, a reference to the loader and the node object. Using the tag class it can call the from_yaml() method with the loader and node object to return the file contents. Since the result from the LazyLoader instance is triggered by calling the format method, there is no need to escape the brackets used by pythons format method since the output will not be passed through it. In order to ensure this behaviour, nodes passed to the method handling the '!include-raw-escape:' tag class, which need to use the LazyLoader approach will convert to the '!include-raw:' tag class to the LazyLoader initialization instead. Due to a bug in sphinx with use of 'note' admonitions and manpage generation, need to update to a version >= 1.2.1. Change-Id: I187eb83ba54740c2c1b627bc99c2d9769687fbc7 Story: 2000522
2 lines
18 B
PHP
2 lines
18 B
PHP
- timeout-wrapper
|