Add validation for SoftwareConfig outputs
SoftwareConfig/StructuredConfig outputs aren't supported with config-download given that Heat doesn't know what the output values will since Ansible is applying all configuration after the stack is complete. This validation will report a warning whenever it finds use of outputs on these resource types. After config-download is the default and the Heat driven method is no longer supported, we can switch this warning to an error. Change-Id: I44d5ee3bab3d05ab0a59261d15ea915c75b35713
This commit is contained in:
parent
0bf8943f05
commit
a134b717dd
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
deprecations:
|
||||||
|
- The use of outputs with Heat SoftwareConfig or StructuredConfig resources
|
||||||
|
is now deprecated as they are no longer supported with config-download.
|
||||||
|
Resources that depend on outputs and their values should be changed to use
|
||||||
|
composable services with external_deploy_tasks or deploy_steps_tasks.
|
@ -170,6 +170,10 @@ DEPLOYMENT_RESOURCE_TYPES = [
|
|||||||
'OS::Heat::StructuredDeployment',
|
'OS::Heat::StructuredDeployment',
|
||||||
'OS::TripleO::SoftwareDeployment'
|
'OS::TripleO::SoftwareDeployment'
|
||||||
]
|
]
|
||||||
|
CONFIG_RESOURCE_TYPES = [
|
||||||
|
'OS::Heat::SoftwareConfig',
|
||||||
|
'OS::Heat::StructuredConfig'
|
||||||
|
]
|
||||||
|
|
||||||
VALID_ANSIBLE_UPGRADE_TAGS = [ 'common', 'validation', 'pre-upgrade' ]
|
VALID_ANSIBLE_UPGRADE_TAGS = [ 'common', 'validation', 'pre-upgrade' ]
|
||||||
|
|
||||||
@ -940,12 +944,17 @@ def validate(filename, param_map):
|
|||||||
resources = tpl.get('resources')
|
resources = tpl.get('resources')
|
||||||
if resources:
|
if resources:
|
||||||
for resource, data in resources.items():
|
for resource, data in resources.items():
|
||||||
if data['type'] not in DEPLOYMENT_RESOURCE_TYPES:
|
if data['type'] in DEPLOYMENT_RESOURCE_TYPES:
|
||||||
continue
|
if 'name' not in data['properties']:
|
||||||
if 'name' not in data['properties']:
|
print('ERROR: resource %s from %s missing name property.'
|
||||||
print('ERROR: resource %s from %s missing name property.'
|
% (resource, filename))
|
||||||
% (resource, filename))
|
return 1
|
||||||
return 1
|
|
||||||
|
elif data['type'] in CONFIG_RESOURCE_TYPES:
|
||||||
|
if 'outputs' in data['properties'] and args.quiet < 2:
|
||||||
|
print('Warning: resource %s from %s uses Heat outputs '
|
||||||
|
'which are not supported with config-download.'
|
||||||
|
% (resource, filename))
|
||||||
|
|
||||||
return retval
|
return retval
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user