<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
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
cite="mid:34CF117D3A5D6841B2C08C30997DA520C015E317@ORD1EXD02.RACKSPACE.CORP"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<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">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"></fieldset>
<br>
<pre wrap="">_______________________________________________
OpenStack-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:OpenStack-dev@lists.openstack.org">OpenStack-dev@lists.openstack.org</a>
<a class="moz-txt-link-freetext" href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a>
</pre>
</blockquote>
<br>
</body>
</html>