<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    2. it can be confusing coz not clear to what type version belongs
    (possible add "type" field in version).<br>
    also if you have default type, then specified version recognizes as
    version of default type (no lookup in version.datastore_type_id)<br>
    but i think we can do lookup in version.datastore_type_id before
    pick default.<br>
    <br>
    4. if default version is need, then it should be specified in db,
    coz switching via versions can be frequent and restart service to
    reload config all times is not good.<br>
    <br>
    <div class="moz-cite-prefix">On 10/21/2013 05:12 PM, Tim Simpson
      wrote:<br>
    </div>
    <blockquote
cite="mid:34CF117D3A5D6841B2C08C30997DA520C015F48E@ORD1EXD02.RACKSPACE.CORP"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=ISO-8859-1">
      <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>
    </blockquote>
    <blockquote
cite="mid:34CF117D3A5D6841B2C08C30997DA520C015F48E@ORD1EXD02.RACKSPACE.CORP"
      type="cite">
      <div style="direction: ltr;font-family: Tahoma;color:
        #000000;font-size: 10pt;">
        <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
                color="#000000" face="Tahoma" size="2"><b>From:</b>
                Andrey Shestakov [<a class="moz-txt-link-abbreviated" href="mailto:ashestakov@mirantis.com">ashestakov@mirantis.com</a>]<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>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 moz-do-not-send="true"
                      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 moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a>
<a moz-do-not-send="true" 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>
      <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>