<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Jan 29, 2014 at 5:03 PM, Zane Bitter <span dir="ltr"><<a href="mailto:zbitter@redhat.com" target="_blank">zbitter@redhat.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im">On 29/01/14 19:40, Jay Pipes wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Wed, 2014-01-29 at 18:55 -0500, Zane Bitter wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I've noticed a few code reviews for new Heat resource types -<br>
particularly Neutron resource types - where folks are struggling to find<br>
the appropriate way to model the underlying API in Heat. This is a<br>
really hard problem, and is often non-obvious even to Heat experts, so<br>
here are a few tips that might help.<br>
<br>
Resources are nouns, they model Things. Ideally Things that have UUIDs.<br>
The main reason to have a resource is so you can reference its UUID (or<br>
some attribute) and pass it to another resource or to the user via an<br>
output.<br>
<br>
If two resources _have_ to be used together, they're really only one<br>
resource. Don't split them up - especially if the one whose UUID other<br>
resources depend on is the first to be created but not the only one<br>
actually required by the resource depending on it.<br>
</blockquote>
<br>
Right. The above is precisely why I raised concerns about the "image<br>
import/upload tasks" work ongoing in Glance.<br>
<br>
<a href="https://wiki.openstack.org/wiki/Glance-tasks-import#Initial_Import_Request" target="_blank">https://wiki.openstack.org/<u></u>wiki/Glance-tasks-import#<u></u>Initial_Import_Request</a><br>
</blockquote>
<br></div>
At least the dependencies there would be in the right order:<br>
<br>
  ImportTask <- Image <- Server<br>
<br>
but if you were to model this in Heat, there should just be an Image resource that does the importing internally.<br>
<br>
(I'm not touching the question of whether Heat should have a Glance Image resource at all, which I'm deeply ambivalent about.)<br></blockquote><div><br></div><div>Maybe I'm just missing the use case, but it seems like modeling anything Glance-y in Heat doesn't quite make sense. If at all, the dependency would run the other way (model heat-things in glance, just as we presently model nova-things in glance). So I think we're in agreement.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
cheers,<br>
Zane.<div class="HOEnZb"><div class="h5"><br>
<br>
______________________________<u></u>_________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.<u></u>org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/<u></u>cgi-bin/mailman/listinfo/<u></u>openstack-dev</a><br>
</div></div></blockquote></div><br></div></div>