Hi all, I'm looking for some help and additional input on this bug:
https://bugs.launchpad.net/heat/+bug/1559807 Basically, we have multiple issues due to the fact that we consider get_attr to resolve to None at any point before a resource is actually instantiated. It's due to this: https://github.com/openstack/heat/blob/master/heat/engine/hot/functions.py#L163 This then causes problems during validation of several intrinsic functions, because if they reference get_attr, they have to contain hacks and special-cases to work around the validate-time None value (or, as reported in the bug, fail to validate when all would be fine at runtime). https://github.com/openstack/heat/blob/master/heat/engine/resource.py#L1333 I started digging into fixes, and there are probably a few possible approaches, e.g setting stack.Stack.strict_validate always to False, or reworking the intrinsic function validation to always work with the temporary None value. However, it's a more widespread issue than just validation - this affects any action which happens before the actual stack gets created, so things like preview updates are also broken, e.g consider this: resources: random: type: OS::Heat::RandomString config: type: OS::Heat::StructuredConfig properties: group: script config: foo: {get_attr: [random, value]} deployment: type: OS::Heat::StructuredDeployment properties: config: get_resource: config server: "dummy" On update, nothing is replaced, but if you do e.g: heat stack-update -x --dry-run You see this: | replaced | config | OS::Heat::StructuredConfig | Which occurs due to the false comparison between the current value of "random" and the None value we get from get_attr in the temporary stack used for preview comparison: https://github.com/openstack/heat/blob/master/heat/engine/resource.py#L528 after_props.get(key) returns None, which makes us falsely declare the "config" resource gets replaced :( I'm looking for ideas on how we solve this - it's clearly a major issue which completely invalidates the results of validate and preview operations in many cases. Steve __________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: [email protected]?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
