<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;">
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
Hey Doug,</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
Thank you so much for putting this together. I have some questions/clarifications(inline) which would be useful to be addressed in the spec.</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family: Calibri; font-size: 11pt; color: black; text-align: left; border-width: 1pt medium medium; border-style: solid none none; padding: 3pt 0in 0in; border-top-color: rgb(181, 196, 223);">
<span style="font-weight:bold">From: </span>Doug Shelley <<a href="mailto:doug@tesora.com">doug@tesora.com</a>><br>
<span style="font-weight:bold">Reply-To: </span>"OpenStack Development Mailing List (not for usage questions)" <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Date: </span>Thursday, July 3, 2014 at 2:20 PM<br>
<span style="font-weight:bold">To: </span>"OpenStack Development Mailing List (not for usage questions) (<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>)" <<a href="mailto:openstack-dev@lists.openstack.org">openstack-dev@lists.openstack.org</a>><br>
<span style="font-weight:bold">Subject: </span>[openstack-dev] [trove] Discussion of capabilities feature<br>
</div>
<div style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<br>
</div>
<div xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:EN-US;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
<div lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">At yesterday's Trove team meeting [1] there was significant discussion around the Capabilities [2] feature. While the community previously approved a BP and some of the initial implementation,
 it is apparent now that there is no agreement in the community around the requirements, use cases or proposed implementation. </span><span style="font-size:10.0pt"><o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">I mentioned in the meeting that I thought it would make sense to adjust the current BP and spec to reflect the concerns and hopefully come up with something that we can get consensus
 on. Ahead of this, I thought it would to try to write up some of the key points and get some feedback here before updating the spec.<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">First, here are what I think the goals of the Capabilities feature are:<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">1. Provide other components with a mechanism for understanding which aspects of Trove are currently available and/or in use</span></p>
</div>
</div>
</div>
</span>
<div><font color="#ff0000"><o:p><font face="Tahoma,sans-serif"><span style="font-size: 10pt;">>> Good point about communicating to other components. We can highlight how this would help other </span><span style="font-size: 13px;">projects</span><span style="font-size: 10pt;"> like
 horizon dynamically modify their UI based on the api response.</span></font></o:p></font></div>
<div><font color="#ff0000"><o:p><font face="Tahoma,sans-serif"><span style="font-size: 10pt;"><br>
</span></font></o:p></font></div>
<div><font color="#ff0000" style="font-family: Calibri, sans-serif; font-size: 15px;"><span style="font-family: Tahoma, sans-serif; font-size: 10pt;"><o:p>[2] "</o:p></span><span style="background-color: rgb(255, 255, 255);"><font face="Arial Unicode MS,Arial,sans-serif" size="3"><span style="line-height: 20px;">This
 proposal includes the ability to setup different capabilities for different datastore versions. “ So capabilities is specific to </span></font></span></font><font color="#ff0000" face="Arial Unicode MS,Arial,sans-serif" size="3"><span style="line-height: 20px;">data
 stores/datastore versions and not for trove in general right?</span></font></div>
<div><font color="#ff0000" face="Arial Unicode MS,Arial,sans-serif" size="3"><span style="line-height: 20px;"><br>
</span></font></div>
<div><font color="#ff0000"><span style="font-family: Calibri, sans-serif; font-size: 14px;">Also it would be useful for us as a community to maybe lay some ground rules for what is a capability and what is not in the spec. For example, how to distinguish what
 goes in </span><a href="https://github.com/openstack/trove/blob/master/trove/common/cfg.py#L273" style="font-family: Calibri, sans-serif; font-size: 14px;">https://github.com/openstack/trove/blob/master/trove/common/cfg.py#L273</a><span style="font-family: Calibri, sans-serif; font-size: 14px;"> as
 a config value and what does not.</span></font></div>
<div><font color="#ff0000" face="Arial Unicode MS,Arial,sans-serif" size="3"><span style="line-height: 20px;"><br>
</span></font></div>
<span id="OLK_SRC_BODY_SECTION">
<div xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<div lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">2. Allow operators the ability to control some aspects of Trove at deployment time<o:p></o:p></span></p>
<p class="MsoNormal"><font color="#ff0000">>> If we are controlling the aspects at deploy time what advantages do having tables like capabilities and capabilities_overrides offer over having in the config file under the config groups for different data stores
 like [mysql][redis] etc? I think it would be useful to document these answers because they might keep resurfacing in the future.</font></p>
</div>
</div>
</div>
</span>
<div><font color="#ff0000">Also want to make sure we are not trying to solve the problem of config override during run time here because that is an entirely different problem not in scope here.</font></div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<div lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">Use Cases<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">1. Unimplemented feature - this is the case where one/some datastore managers provide support for some specific capability but others don't. A good example would be replication support
 as we are only planning to support the MySQL manager in the first version. As other datastore managers gain support for the capability, these would be enabled.<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">2. Unsupported feature - similar to #1 except this would be the case where the datastore manager inherently doesn't support the capability. For example, Redis doesn't have support
 for volumes.<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">3. Operator controllable feature - this would be a capability that can be controlled at deployment time at the option of the operator. For example, whether to provide access to the
 root user on instance creation.</span></p>
</div>
</div>
</div>
</span>
<div><font color="#ff0000">>> Are not 1 and 2 set at deploy time as well?</font></div>
<span id="OLK_SRC_BODY_SECTION">
<div xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<div lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">4. Downstream capabilities addition - basically the ability to use capabilities as an extension point. Allow downstream implementations to add capabilities that aren't present in
 upstream Trove. <o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">Requirements<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">1. There are a well known set of capabilities that are provided with upstream Trove. Each capability is either read-only (basically use cases 1 & 2) or read-write (use case 3). Use
 case #4 capabilities are not part of the "well known" set.</span></p>
</div>
</div>
</div>
</span><span id="OLK_SRC_BODY_SECTION">
<div xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<div lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">2. Each capability can be over-ridden at the datastore manager level, the datastore level or the datastore version level. The datastore manager level would be used for the read only
 capabilities and specified by a given version of Trove. Datastore/Datastore version overrides would be for Operator controllable capabilities that are read-write. </span></p>
</div>
</div>
</div>
</span>
<div><font color="#ff0000">>> Is there going to be a distinction at design level between read-write/read only capabilities? For example are operators going to be forbidden from changing certain capabilities?</font></div>
<div><font color="#ff0000"><br>
</font></div>
<span id="OLK_SRC_BODY_SECTION">
<div xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<div lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">3. The datastore/datastore version overrides are only present if created by the Operator at deployment time.</span></p>
</div>
</div>
</div>
</span>
<div><font color="#ff0000">>> Again if this is deployment time only, should we be having config files  for different data stores? And instead of having to populate databases by admins, this could be taken care of by config management tools in deployments? </font></div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<div lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">4. A clean Trove install should create the domain of known capabilities and the datastore manager overrides relevant to the installed version of Trove.<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">5. Upgrades - need to provide a mechanism to migrate from a version of Trove where:<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0); text-indent: 36pt;">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">a. A capability is being moved from historical config file into the capability mechanism<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0); text-indent: 36pt;">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">b. A previously non-existent capability is being introduced.<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0); text-indent: 36pt;">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">c. Capability adjustments have occurred in the newer version that affect the datastore manager level capabilities. This likely has some impact on old-version guest agents running
 against capability upgrades.</span></p>
</div>
</div>
</div>
</span><span id="OLK_SRC_BODY_SECTION">
<div xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<div lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0); text-indent: 36pt;">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">Any feedback is welcome. Hopefully, based on the feedback we can update the spec and move forward on adjusting the implementation.<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">Regards,<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">Doug<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p> </o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">[1] <a href="http://eavesdrop.openstack.org/irclogs/%23openstack-meeting-alt/%23openstack-meeting-alt.2014-07-02.log">http://eavesdrop.openstack.org/irclogs/%23openstack-meeting-alt/%23openstack-meeting-alt.2014-07-02.log</a> starting
 at 18:05<o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;">[2] <a href="https://wiki.openstack.org/wiki/Trove/trove-capabilities">https://wiki.openstack.org/wiki/Trove/trove-capabilities</a></span></p>
</div>
</div>
</div>
</span>
<div><br>
</div>
<div><br>
</div>
<div>Thanks,</div>
<div>Iccha</div>
<span id="OLK_SRC_BODY_SECTION">
<div xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<div lang="EN-CA" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: Tahoma, sans-serif; color: black;"><o:p></o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<span style="font-size: 10pt; font-family: 'Times New Roman', serif;"><o:p> </o:p></span></p>
<p class="MsoNormal" style="font-family: Calibri, sans-serif; font-size: 14px; color: rgb(0, 0, 0);">
<o:p> </o:p></p>
</div>
</div>
</div>
</span>
</body>
</html>