<html dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body bgcolor="#FFFFFF" fpstyle="1" ocsi="0">
<div style="direction: ltr;font-family: Tahoma;color: #000000;font-size: 10pt;">
<div><span style="font-family: 'Times New Roman'; font-size: 16px;">Thanks for the feedback Andrey.</span></div>
<div><span style="font-family: 'Times New Roman'; font-size: 16px;"><br>
</span></div>
<span style="font-family: 'Times New Roman'; font-size: 16px;">>> 2. Got this case in irc, and decided to pass type and version together to avoid confusing.</span>
<div><font face="Times New Roman">I don't understand how allowing the user to only pass the version would confuse anyone. Could you elaborate?</font></div>
<div><font face="Times New Roman"><br>
</font></div>
<div><span style="font-family: 'Segoe UI', Helvetica, Arial, sans-serif;">>> 3. Names of types and maybe versions can be good, but in irc conversation rejected this case, i cant remember exactly reason.</span></div>
<div>Hmm. Does anyone remember the reason for this?</div>
<div><br style="font-family: 'Segoe UI', Helvetica, Arial, sans-serif;">
<span style="font-family: 'Segoe UI', Helvetica, Arial, sans-serif;">>> 4. Actually, "active" field in version marks it as default in type.</span></div>
<div><span style="font-family: 'Segoe UI', Helvetica, Arial, sans-serif;">>> </span><span style="font-family: 'Segoe UI', Helvetica, Arial, sans-serif;">Specify default version in config can be usefull if you have more then one active versions in default type.</span></div>
<div><font face="Segoe UI, Helvetica, Arial, sans-serif">If 'active' is allowed to be set for multiple rows of the 'datastore_versions' table then it isn't a good substitute for the functionality I'm seeking, which is to allow operators to specify a *single*
default version for each datastore_type in the database. I still think we should still add a 'default_version_id' field to the 'datastore_types' table.</font></div>
<div><font face="Times New Roman"><br>
</font></div>
<div><font face="Times New Roman">Thanks,</font></div>
<div><font face="Times New Roman"><br>
</font></div>
<div><font face="Times New Roman">Tim</font></div>
<div><font face="Times New Roman"><br>
</font>
<div style="font-family: Times New Roman; color: #000000; font-size: 16px">
<hr tabindex="-1">
<div id="divRpF283724" style="direction: ltr;"><font face="Tahoma" size="2" color="#000000"><b>From:</b> Andrey Shestakov [ashestakov@mirantis.com]<br>
<b>Sent:</b> Monday, October 21, 2013 7:15 AM<br>
<b>To:</b> OpenStack Development Mailing List<br>
<b>Subject:</b> Re: [openstack-dev] [Trove] How users should specify a datastore type when creating an instance<br>
</font><br>
</div>
<div></div>
<div>1. Good point<br>
2. Got this case in irc, and decided to pass type and version together to avoid confusing.<br>
3. Names of types and maybe versions can be good, but in irc conversation rejected this case, i cant remember exactly reason.<br>
4. Actually, "active" field in version marks it as default in type.<br>
Specify default version in config can be usefull if you have more then one active versions in default type.<br>
But how match active version in type depends on operator`s configuration. And what if "default version in config" will marked as inactive?<br>
<br>
<div class="moz-cite-prefix">On 10/18/2013 10:30 PM, Tim Simpson wrote:<br>
</div>
<blockquote type="cite"><style type="text/css" id="owaParaStyle"></style>
<div style="direction:ltr; font-family:Tahoma; color:#000000; font-size:10pt">
<div>Hello fellow Trovians,</div>
<div><br>
</div>
<div>There has been some good work recently to figure out a way to specify a specific datastore when using Trove. This is essential to supporting multiple datastores from the same install of Trove.</div>
<div><br>
</div>
<div>I have an issue with some elements of the proposed solution though, so I decided I'd start a thread here so we could talk about it.</div>
<div><br>
</div>
<div>As a quick refresher, here is the blue print for this work (there are some gists ammended to the end but I figured the mailing list would be an easier venue for discussion):</div>
<div><a class="moz-txt-link-freetext" href="https://wiki.openstack.org/wiki/Trove/trove-versions-types" target="_blank">https://wiki.openstack.org/wiki/Trove/trove-versions-types</a></div>
<div><br>
</div>
<div>One issue I have is with the way the instance create call will change to support different data stores. For example, here is the post call:</div>
<div><br>
</div>
<div>"""</div>
<div>{</div>
<div> "instance" : {</div>
<div> "flavorRef" : "2",</div>
<div> "name" : "as",</div>
<div> "datastore_type" : "e60153d4-8ac4-414a-ad58-fe2e0035704a",</div>
<div> "datastore_version" : "94ed1f9f-6c1a-4d6e-87e9-04ecff37b64b",</div>
<div> "volume" : { "size" : "1" }</div>
<div> }</div>
<div>}</div>
<div>"""</div>
<div><br>
</div>
<div>1. I think since we have two fields in the instance object we should make a new object for datastore and avoid the name prefixing, like this:</div>
<div><br>
</div>
<div>"""</div>
<div>{</div>
<div> "instance" : {</div>
<div> "flavorRef" : "2",</div>
<div> "name" : "as",</div>
<div> "datastore": {</div>
<div> "type" : "e60153d4-8ac4-414a-ad58-fe2e0035704a",</div>
<div> "version" : "94ed1f9f-6c1a-4d6e-87e9-04ecff37b64b"</div>
<div> }</div>
<div> "volume" : { "size" : "1" }</div>
<div> }</div>
<div>}</div>
<div>"""</div>
<div><br>
</div>
<div>2. I also think a datastore_version alone should be sufficient since the associated datastore type will be implied:</div>
<div><br>
</div>
<div>"""</div>
<div>{</div>
<div> "instance" : {</div>
<div> "flavorRef" : "2",</div>
<div> "name" : "as",</div>
<div> "datastore": {</div>
<div> "version" : "94ed1f9f-6c1a-4d6e-87e9-04ecff37b64b"</div>
<div> }</div>
<div> "volume" : { "size" : "1" }</div>
<div> }</div>
<div>}</div>
<div>"""</div>
<div><br>
</div>
<div>3. Additionally, while a datastore_type should have an ID in the Trove infastructure database, it should also be possible to pass just the name of the datastore type to the instance call, such as "mysql" or "mongo". Maybe we could allow this in addition
to the ID? I think this form should actually use the argument "type", and the id should then be passed as "type_id" instead.</div>
<div><br>
</div>
<div>"""</div>
<div>{</div>
<div> "instance" : {</div>
<div> "flavorRef" : "2",</div>
<div> "name" : "as",</div>
<div> "datastore": {</div>
<div> "type" : "mysql",</div>
<div> "version" : "94ed1f9f-6c1a-4d6e-87e9-04ecff37b64b"</div>
<div> } </div>
<div> "volume" : { "size" : "1" }</div>
<div> }</div>
<div>}</div>
<div><br>
</div>
<div>"""</div>
<div><br>
</div>
<div>4. Additionally, in the current pull request to implement this it is possible to avoid passing a version, but only if no more than one version of the datastore_type exists in the database. </div>
<div><br>
</div>
<div>I think instead the datastore_type row in the database should also have a "default_version_id" property, that an operator could update to the most recent version or whatever other criteria they wish to use, meaning the call could become this simple:</div>
<div><br>
</div>
<div>"""</div>
<div>{</div>
<div> "instance" : {</div>
<div> "flavorRef" : "2",</div>
<div> "name" : "as",</div>
<div> "datastore": {</div>
<div> "type" : "mysql"</div>
<div> } </div>
<div> "volume" : { "size" : "1" }</div>
<div> }</div>
<div>}</div>
<div>"""</div>
<div><br>
</div>
<div>Thoughts?</div>
<div><br>
</div>
<div>Thanks,</div>
<div><br>
</div>
<div>Tim</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader" target="_blank"></fieldset> <br>
<pre>_______________________________________________
OpenStack-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a>
<a class="moz-txt-link-freetext" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
</pre>
</blockquote>
<br>
</div>
</div>
</div>
</div>
</body>
</html>