<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>