<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I'd actually be fine with this just failing in all cases where null isn't a valid input to the function. We want it to fail as early as possible though, and the currently handling for get_attr is going to get in the way of that. (We currently try to delay checking for None as long as possible, because get_attr may not start returning a non-None value until runtime.) Maybe that means we should tackle this after the placeholder stuff is implemented, so that we can enforce earlier detection of errors?<br></blockquote><br>I think we can let placeholder as a solution when null becomes an input to the function. We will have a placeholder as the input (instead of null), and check type with the placeholder to make sure we get to fail as soon as we can. If the type is correct, we will check the real value when we actually got one. With this part of spec in placeholder, I think we can avoid blind check (and parse) with null value (which is the main reason of bug [1]).<br>Worth mention that when dealing with null input value, parameter will parse it to the `default value` of that type (0 for number, '' for string),  which will allow as to pass the check, but miss a chance to find out the error of why the input value is null (it just accept `default value` as the input, but it might not be the what we design in the template). Also `default value` not always the correct input (for some number properties, 0 is not allowed). I think with placeholder, we will never need to replace null with `default value`.<br><br><div>+1 for gain enforce earlier detection of errors with placeholder. We can make it as part of placeholder spec, or the one right next.</div><div>Any feedbacks to the spec [2] are welcome.<br><br></div><div>[1] <a href="https://bugs.launchpad.net/heat/+bug/1559807">https://bugs.launchpad.net/heat/+bug/1559807</a><br></div><div>[2] <a href="https://review.openstack.org/#/c/392499/">https://review.openstack.org/#/c/392499/</a> </div></div><div class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><div dir="ltr"><font size="2" face="tahoma, sans-serif" color="#999999"></font></div></div></div></div></div></div></div></div>
</div></div>