<div dir="ltr"><div>+1 to Robert's suggestion</div><div><br></div>I think it makes sense to keep all data store templates that are used in the same location. ie. templates/{data-store}/*.template<div>As trove expands its data stores then we have all the templates next to each other. I think it would make it easier to remove/add support for new data stores this way.</div>
<div><br></div><div>Denis</div><div>I think we could see in the not so distant future where the heat templates *could* be dynamic in nature. (clusters and such)</div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">
On Tue, Oct 29, 2013 at 10:15 AM, Denis Makogon <span dir="ltr"><<a href="mailto:dmakogon@mirantis.com" target="_blank">dmakogon@mirantis.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div dir="ltr"><div><div><div><div><div>Robert,  i also have thoughts about templates.<br><br></div>Your suggestion is rather complex. Let me explain why is it so:<br></div><div>     With new datastore support you should update PackageLoader and FilesystemLoader with new filesystem path and package path. I would prefe more easy configuration and store it in next way:<br>

</div>     - templates/configuration/{datastore}.config.template;<br></div>     - templates/heat/{datastore}.heat.template.<br><br></div><div>Heat templates would be static until in trove become super-complex in instance configuration like Savanna (Hadoop on OpenStack).<br>

</div><div><br></div>What about jinja - ok , i agree to use it, but (!!!) we would not use it for heat template rendering, because templates are static. Trove is not so complex in instance configuration that is why it doesn't need to genereate/modify heat templates on-the-go.<br>

<br></div>Please take a look at this one <a href="https://review.openstack.org/#/c/54315/" target="_blank">https://review.openstack.org/#/c/54315/</a><br></div><div class="gmail_extra"><br><br><div class="gmail_quote">2013/10/29 Robert Myers <span dir="ltr"><<a href="mailto:myer0052@gmail.com" target="_blank">myer0052@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr">I'm pulling this conversation out of the gerrit review as I think it needs more discussion.<div>
<br>
</div><div><a href="https://review.openstack.org/#/c/53499/" target="_blank">https://review.openstack.org/#/c/53499/</a><br>
</div><div><br></div><div>I want to discuss the design decision to not use Jinja templates for the heat templates. My arguments for using Jinja for heat as well are:</div><div><br></div><div>1. We have to rewrite all the template loading logic. The current implementation is pretty simple but in order to make in production worthy it will need to handle many more edge cases as we use develop this feature. The main argument I have heard against using the existing ENV is that the path is hard coded. (This can and should be turned into a config flag)</div>


<div>2. We are already using Jinja templates for config files so it will be less confusing for a new person starting up. Why do these custom templates go here but these over here? Having one place to override defaults makes sense.</div>


<div>3. Looking at the current heat templates I could easily see some areas that could take advantage of being a real Jinja template, an admin could create a base template and extend that for each different service and just change a few values in each.</div>


<div>4. The default templates could be package with trove (using the Jijna PackageLoader) so the initial setup out of the box will work.</div><div><br></div><div>If we go this route it would also be a good time to discuss the origination of the templates. Currently the templates are just in </div>


<div><br></div><div>- trove/templates/{data_store}.config.template</div><div>- trove/templates/{data_store}.heat.template</div><div><br></div><div><br></div><div>I suggest that we move this into a folder structure like so:</div>


<div><br></div><div>- trove/template/{data_store}/config.template</div><div>- trove/template/{data_store}/heat.template</div><div>- trove/template/{data_store}/the_next.template</div><div> </div><div>Thanks!</div><span><font color="#888888"><div>

Robert</div>
</font></span></div>
<br></div></div>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>
<br>_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
<br></blockquote></div><br></div>