Merge "HOT intrinisic function list_join like Fn::Join"
This commit is contained in:
commit
af3c236167
@ -726,6 +726,26 @@ The *resource ID* of the referenced resources as used in the current template is
|
|||||||
given as single parameter to the get_resource function.
|
given as single parameter to the get_resource function.
|
||||||
|
|
||||||
|
|
||||||
|
list_join
|
||||||
|
--------
|
||||||
|
The *list_join* function joins a list of strings with the given delimiter.
|
||||||
|
The syntax of the list_join function is as follows:
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
list_join:
|
||||||
|
- <delimiter>
|
||||||
|
- <list to join>
|
||||||
|
|
||||||
|
A sample use of this function with a simple list is shown below.
|
||||||
|
|
||||||
|
::
|
||||||
|
|
||||||
|
list_join: [', ', ['one', 'two', 'and three']]
|
||||||
|
|
||||||
|
This would resolve to "one, two, and three".
|
||||||
|
|
||||||
|
|
||||||
resource_facade
|
resource_facade
|
||||||
---------------
|
---------------
|
||||||
The *resource_facade* function allows a provider template to retrieve data
|
The *resource_facade* function allows a provider template to retrieve data
|
||||||
|
@ -202,6 +202,20 @@ class GetFile(function.Function):
|
|||||||
return f
|
return f
|
||||||
|
|
||||||
|
|
||||||
|
class Join(cfn_funcs.Join):
|
||||||
|
'''
|
||||||
|
A function for joining strings.
|
||||||
|
|
||||||
|
Takes the form::
|
||||||
|
|
||||||
|
{ "list_join" : [ "<delim>", [ "<string_1>", "<string_2>", ... ] }
|
||||||
|
|
||||||
|
And resolves to::
|
||||||
|
|
||||||
|
"<string_1><delim><string_2><delim>..."
|
||||||
|
'''
|
||||||
|
|
||||||
|
|
||||||
class ResourceFacade(cfn_funcs.ResourceFacade):
|
class ResourceFacade(cfn_funcs.ResourceFacade):
|
||||||
'''
|
'''
|
||||||
A function for obtaining data from the facade resource from within the
|
A function for obtaining data from the facade resource from within the
|
||||||
@ -235,6 +249,7 @@ def function_mapping(version_key, version):
|
|||||||
'get_attr': GetAtt,
|
'get_attr': GetAtt,
|
||||||
'Fn::Select': cfn_funcs.Select,
|
'Fn::Select': cfn_funcs.Select,
|
||||||
'Fn::Join': cfn_funcs.Join,
|
'Fn::Join': cfn_funcs.Join,
|
||||||
|
'list_join': Join,
|
||||||
'Fn::Split': cfn_funcs.Split,
|
'Fn::Split': cfn_funcs.Split,
|
||||||
'str_replace': Replace,
|
'str_replace': Replace,
|
||||||
'Fn::Replace': cfn_funcs.Replace,
|
'Fn::Replace': cfn_funcs.Replace,
|
||||||
|
@ -17,10 +17,10 @@ import six
|
|||||||
from heat.common import exception
|
from heat.common import exception
|
||||||
from heat.common import identifier
|
from heat.common import identifier
|
||||||
from heat.common import template_format
|
from heat.common import template_format
|
||||||
from heat.engine.cfn import functions as cfn_funcs
|
|
||||||
from heat.engine import constraints
|
from heat.engine import constraints
|
||||||
from heat.engine import environment
|
from heat.engine import environment
|
||||||
from heat.engine import function
|
from heat.engine import function
|
||||||
|
from heat.engine.hot import functions as hot_functions
|
||||||
from heat.engine.hot import parameters as hot_param
|
from heat.engine.hot import parameters as hot_param
|
||||||
from heat.engine.hot import template as hot_template
|
from heat.engine.hot import template as hot_template
|
||||||
from heat.engine import parameters
|
from heat.engine import parameters
|
||||||
@ -585,8 +585,8 @@ class HOTemplateTest(HeatTestCase):
|
|||||||
parent_resource.stack = parser.Stack(utils.dummy_context(),
|
parent_resource.stack = parser.Stack(utils.dummy_context(),
|
||||||
'toplevel_stack',
|
'toplevel_stack',
|
||||||
parser.Template(hot_tpl_empty))
|
parser.Template(hot_tpl_empty))
|
||||||
del_policy = cfn_funcs.Join(parent_resource.stack,
|
del_policy = hot_functions.Join(parent_resource.stack,
|
||||||
'Fn::Join', ['eta', ['R', 'in']])
|
'list_join', ['eta', ['R', 'in']])
|
||||||
parent_resource.t = rsrc_defn.ResourceDefinition(
|
parent_resource.t = rsrc_defn.ResourceDefinition(
|
||||||
'parent', 'SomeType',
|
'parent', 'SomeType',
|
||||||
deletion_policy=del_policy)
|
deletion_policy=del_policy)
|
||||||
|
Loading…
Reference in New Issue
Block a user