<html 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"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 12 (filtered medium)"><!--[if !mso]><style id=owaParaStyle>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@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;}
@font-face
        {font-family:Consolas;
        panose-1:2 11 6 9 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
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.MsoPlainText, li.MsoPlainText, div.MsoPlainText
        {mso-style-priority:99;
        mso-style-link:"Plain Text Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.5pt;
        font-family:"Calibri","sans-serif";}
pre
        {mso-style-priority:99;
        mso-style-link:"HTML Preformatted Char";
        margin:0in;
        margin-bottom:.0001pt;
        font-size:10.0pt;
        font-family:"Courier New";}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0in;
        margin-right:0in;
        margin-bottom:0in;
        margin-left:.5in;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:Consolas;}
p.msochpdefault, li.msochpdefault, div.msochpdefault
        {mso-style-name:msochpdefault;
        mso-margin-top-alt:auto;
        margin-right:0in;
        mso-margin-bottom-alt:auto;
        margin-left:0in;
        font-size:10.0pt;
        font-family:"Times New Roman","serif";}
span.emailstyle17
        {mso-style-name:emailstyle17;
        font-family:"Calibri","sans-serif";
        color:black;}
span.plaintextchar0
        {mso-style-name:plaintextchar;
        font-family:"Calibri","sans-serif";}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:Consolas;}
span.EmailStyle25
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:black;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
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]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:black'>Hi Sandy, the easy one first… the OpenStack API is versioned, and so is backward compatible. The client will negotiate the highest version it knows about, the API returns will be consistent with that version.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:black'>As for the Easy API…. The on-going discussion is excellent and I believe we are flushing out some core issues. That being said, to date the plan is that there is a canonical OpenStack Compute API, and it is the one derived from the Rackspace Cloud Servers API. <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:black'>I would like to have Jorge and others join the conversation so that everyone can see what the proposed OpenStack Compute v1.1 extension mechanisms are. As this spec is being finalized perhaps there is an opportunity to merge concepts, if it makes sense. It doesn’t make sense to have divergent efforts at this point IMO, I would like to have full traction on a complete and functional OpenStack API.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:black'><o:p> </o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:black'>John<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:black'><o:p> </o:p></span></p><div><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Sandy Walsh [mailto:sandy.walsh@rackspace.com] <br><b>Sent:</b> Thursday, December 30, 2010 3:27 PM<br><b>To:</b> John Purrier; openstack@lists.launchpad.net<br><b>Subject:</b> RE: [Openstack] [RFC] OpenStack API<o:p></o:p></span></p></div></div><p class=MsoNormal><o:p> </o:p></p><div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>Thanks John. That's a good summary of the plan. I still have a few questions, if you could indulge me ...<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>Seems like there are two issues being debated, one customer-facing, one Nova-developer-facing:<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>Customer-facing:<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>Will OS 1.1 remain backward compatible with 1.0? In other words, is 1.1 truly a point release or a major version increase? A point release says to me it is backwards compatible. <o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>Developer-facing:<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>The EasyAPI discussion (client-side tools *and* server-side implementation). The assumption here is that EasyAPI could/would be the OS 1.1 implementation. The answer to the customer-facing question will affect this debate. <o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>Separately, there was also a discussion of the "hackability" of the OS API. I think we've seen that with the addition of pause/suspend/diagnostics and admin-only functionality that the current OS API is easily extensible. Are further discussions simply around implementation details? Are we debating a more data-driven implementation vs. a more explicit implementation? Are we debating replacing the current OS 1.0 implementation with EasyAPI? If so, would that be a practical use of resources given the current workload?<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>Sorry for the million questions, but I think we're getting close to the crux of the matter.<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>-S<o:p></o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'><o:p> </o:p></span></p></div><div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'><o:p> </o:p></span></p></div><p class=MsoNormal><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'><o:p> </o:p></span></p><div><div class=MsoNormal align=center style='text-align:center'><span style='color:black'><hr size=2 width="100%" align=center></span></div><div id=divRpF846618><p class=MsoNormal style='margin-bottom:12.0pt'><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'>From:</span></b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif";color:black'> openstack-bounces+sandy.walsh=rackspace.com@lists.launchpad.net [openstack-bounces+sandy.walsh=rackspace.com@lists.launchpad.net] on behalf of John Purrier [john@openstack.org]<br><b>Sent:</b> Thursday, December 30, 2010 3:59 PM<br><b>To:</b> openstack@lists.launchpad.net<br><b>Subject:</b> [Openstack] [RFC] OpenStack API</span><span style='color:black'><o:p></o:p></span></p></div><div><div><p class=MsoPlainText><span style='color:black'>The timing of this is interesting, as it comes when there is a lot of discussion about EasyAPI… I would like to encourage discussions about the EasyAPI extensibility mechanisms versus the OpenStack API v1.1 extension mechanism. Jorge, you will need to let folks see the proposed updates to the OpenStack API for version 1.1.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'>It is clearly important to establish a viable OpenStack Compute API by the Bexar timeframe. We started the implementation in Austin based on the Rackspace Cloud Servers 1.0 API, now we need to finish the work. The Austin work is half finished since we could not create and promote the OpenStack namespace and still required eucatools to set up and manage a cluster. Presented for comment is an approach for handling the OpenStack API for Bexar and Cactus. Additionally, this sets a path for the handoff of the API specification from Rackspace to OpenStack and the Rackspace Cloud transition to the OpenStack API.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'>Where we are at:<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in'><span style='color:black'>a.</span><span style='font-size:7.0pt;font-family:"Times New Roman","serif";color:black'>       </span><span style='color:black'>The implementation of the OpenStack API framework is complete, with the ability to return a “not implemented” indicator if the function is not available. This may occur due to differences in hypervisor support or due to work in progress.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in'><span style='color:black'>b.</span><span style='font-size:7.0pt;font-family:"Times New Roman","serif";color:black'>       </span><span style='color:black'>The current OpenStack API is version 1.0, this matches the version of the Rackspace Cloud Servers API in production in the cloud.<o:p></o:p></span></p><p class=MsoListParagraph><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in'><span style='color:black'>c.</span><span style='font-size:7.0pt;font-family:"Times New Roman","serif";color:black'>       </span><span style='color:black'>Work needs to be done to setup and publish an OpenStack namespace. Additionally, the source will need to be updated to return the correct namespace URL. <o:p></o:p></span></p><p class=MsoListParagraph><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in'><span style='color:black'>d.</span><span style='font-size:7.0pt;font-family:"Times New Roman","serif";color:black'>       </span><span style='color:black'>Work is in progress to implement a set of tools (think eucatools functionality) to allow Nova to be set up and administered through the OpenStack API. Need to verify that this functionality will hit in Bexar.<o:p></o:p></span></p><p class=MsoListParagraph><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'>The proposed plan:<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in'><span style='color:black'>1.</span><span style='font-size:7.0pt;font-family:"Times New Roman","serif";color:black'>       </span><span style='color:black'>Bexar will present a version 1.0 OpenStack API based on the 1.0 Rackspace Cloud Servers API. The OpenStack namespace will be set up and published, and tools will be available that manipulate Nova via the OpenStack API. Any functionality that is not yet implemented will be documented in the developer’s guide.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in'><span style='color:black'>2.</span><span style='font-size:7.0pt;font-family:"Times New Roman","serif";color:black'>       </span><span style='color:black'>Rackspace will work to finalize the 1.1 Cloud Servers API spec. Currently, this is thought of as the next version of the Rackspace Cloud Servers API, but this should change to be considered the OpenStack 1.1 Compute API. If possible, this work to complete the spec should be complete by mid-January or so. This spec should assume an OpenStack namespace.<o:p></o:p></span></p><p class=MsoListParagraph><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in'><span style='color:black'>3.</span><span style='font-size:7.0pt;font-family:"Times New Roman","serif";color:black'>       </span><span style='color:black'>With the publication of the 1.1 OpenStack Compute API spec, OpenStack should publish/highlight the provisions for API extensions. This will be the supported mechanism for projects to extend the official OpenStack API (without requiring version changes). Projects that are pushing to update/extend the OpenStack API will be directed to do it via the official extension mechanism and target the version 1.1 API. The version 1.0 OpenStack API will not be changed or extended.<o:p></o:p></span></p><p class=MsoListParagraph><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in'><span style='color:black'>4.</span><span style='font-size:7.0pt;font-family:"Times New Roman","serif";color:black'>       </span><span style='color:black'>OpenStack will publish roadmap information stating that the 1.1 API will be available in April, via the Cactus release.<o:p></o:p></span></p><p class=MsoListParagraph><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in'><span style='color:black'>5.</span><span style='font-size:7.0pt;font-family:"Times New Roman","serif";color:black'>       </span><span style='color:black'>Rackspace will implement the 1.1 OpenStack API spec and deploy support for it on the current Slicehost codebase. Support will be continued for the 1.0 Rackspace API through version checking. At the point of deployment the Rackspace Cloud can claim OpenStack compatibility; timing is controlled by Rackspace product. Any client development against the Cloud Servers infrastructure that is 1.1 compatible will be able to run unchanged once Rackspace transitions from the Slicehost codebase to the Nova codebase.<o:p></o:p></span></p><p class=MsoListParagraph><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText style='margin-left:.5in;text-indent:-.25in'><span style='color:black'>6.</span><span style='font-size:7.0pt;font-family:"Times New Roman","serif";color:black'>       </span><span style='color:black'>Once the version 1.1 specification is complete, the “ownership” of the spec will be transferred to OpenStack. Practically, Rackspace will continue to drive innovation through versioning and extensions, but the official spec will be under the direction of the OpenStack project and future contributions from Rackspace and others will follow the standard, open processes. Rackspace and the community will be able to leverage the published OpenStack developer’s guides and other documentation for having developers interact with their OpenStack Nova deployments.<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'>Comments? <o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'>Rick/Thierry, if we have work items for Bexar that are not covered in order to complete this plan let’s highlight them ASAP. Also, can we verify that the management tools are in progress?<o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'> <o:p></o:p></span></p><p class=MsoPlainText><span style='color:black'>John<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:black'> </span><span style='color:black'><o:p></o:p></span></p></div></div></div></div><pre><o:p> </o:p></pre><pre>Confidentiality Notice: This e-mail message (including any attached or<o:p></o:p></pre><pre>embedded documents) is intended for the exclusive and confidential use of the<o:p></o:p></pre><pre>individual or entity to which this message is addressed, and unless otherwise<o:p></o:p></pre><pre>expressly indicated, is confidential and privileged information of Rackspace. <o:p></o:p></pre><pre>Any dissemination, distribution or copying of the enclosed material is prohibited.<o:p></o:p></pre><pre>If you receive this transmission in error, please notify us immediately by e-mail<o:p></o:p></pre><pre>at abuse@rackspace.com, and delete the original message. <o:p></o:p></pre><pre>Your cooperation is appreciated.<o:p></o:p></pre></div></body></html>