HOT version 2015-10-15, remove Fn::Select

Bump the HOT version for the Liberty release, currently planned
for 2015-10-15 [1]

This is the same as 2015-04-30 other than the removal of the
last remaining CFN compatible function, Fn::Select, which should
now be replaced by path based attributes/parameters, e.g:

{get_attr: [aResource, anAttribute, <list index>]}
{get_param: [aListParam, <list index>]}

[1] https://wiki.openstack.org/wiki/Liberty_Release_Schedule

Change-Id: I10e5b12b84a6de01dd3f8a37a2d6cb644f319049
This commit is contained in:
Steven Hardy 2015-06-23 11:12:32 +01:00
parent ff30fed06b
commit 0d99ede046
4 changed files with 48 additions and 6 deletions

View File

@ -155,6 +155,24 @@ For example, Heat currently supports the following values for the
str_replace
Fn::Select
2015-10-15
The key with value *2015-10-15* indicates that the YAML document is a HOT
template and it may contain features added and/or removed up until the
Liberty release. This version removes the *Fn::Select* function, path based
get_attr/get_param references should be used instead.
::
get_attr
get_file
get_param
get_resource
list_join
repeat
digest
resource_facade
str_replace
.. _hot_spec_parameter_groups:
@ -1028,8 +1046,3 @@ In the example above, one can imagine that MySQL is being configured on a
compute instance and the root password is going to be set based on a user
provided parameter. The script for doing this is provided as userdata to the
compute instance, leveraging the ``str_replace`` function.
Fn::Select
----------
``Fn::Select`` is a function borrowed from CFN template. Please check the CFN
template guide for a description.

View File

@ -325,3 +325,30 @@ class HOTemplate20150430(HOTemplate20141016):
'Fn::ResourceFacade': hot_funcs.Removed,
'Ref': hot_funcs.Removed,
}
class HOTemplate20151015(HOTemplate20150430):
functions = {
'digest': hot_funcs.Digest,
'get_attr': hot_funcs.GetAtt,
'get_file': hot_funcs.GetFile,
'get_param': hot_funcs.GetParam,
'get_resource': cfn_funcs.ResourceRef,
'list_join': hot_funcs.Join,
'repeat': hot_funcs.Repeat,
'resource_facade': hot_funcs.ResourceFacade,
'str_replace': hot_funcs.Replace,
# functions removed from 20150430
'Fn::Select': hot_funcs.Removed,
# functions removed from 20130523
'Fn::GetAZs': hot_funcs.Removed,
'Fn::Join': hot_funcs.Removed,
'Fn::Split': hot_funcs.Removed,
'Fn::Replace': hot_funcs.Removed,
'Fn::Base64': hot_funcs.Removed,
'Fn::MemberListToMap': hot_funcs.Removed,
'Fn::ResourceFacade': hot_funcs.Removed,
'Ref': hot_funcs.Removed,
}

View File

@ -408,7 +408,8 @@ class TemplateTest(common.HeatTestCase):
}''')
init_ex = self.assertRaises(exception.InvalidTemplateVersion,
template.Template, invalid_hot_version_tmp)
valid_versions = ['2014-10-16', '2013-05-23', '2015-04-30']
valid_versions = ['2015-10-15', '2013-05-23', '2014-10-16',
'2015-04-30']
ex_error_msg = ('The template version is invalid: '
'"heat_template_version: 2012-12-12". '
'"heat_template_version" should be one of: %s'

View File

@ -96,6 +96,7 @@ heat.templates =
heat_template_version.2013-05-23 = heat.engine.hot.template:HOTemplate20130523
heat_template_version.2014-10-16 = heat.engine.hot.template:HOTemplate20141016
heat_template_version.2015-04-30 = heat.engine.hot.template:HOTemplate20150430
heat_template_version.2015-10-15 = heat.engine.hot.template:HOTemplate20151015
HeatTemplateFormatVersion.2012-12-12 = heat.engine.cfn.template:HeatTemplate
AWSTemplateFormatVersion.2010-09-09 = heat.engine.cfn.template:CfnTemplate