<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; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>Jesse,</div>
<div><br>
</div>
<div>I agree that some implementations can want to have a single endpoint. I think this is doable with a simple proxy that can pass requests back to each service apis. This can also be accomplished by having configuration variables in your bindings to talk
 to something that looks like the following:</div>
<div><br>
</div>
<div>compute=api.compute.example.com</div>
<div>volume=api.volume.example.com</div>
<div>image=api.image.example.com</div>
<div>network=api.network.example.com</div>
<div><br>
</div>
<div>Or for behind the proxies:</div>
<div><br>
</div>
<div>
<div>compute=api.example.com</div>
<div>volume=api.example.com</div>
<div>image=api.example.com</div>
<div>network=api.example.com</div>
</div>
<div><br>
</div>
<div>Maybe this is something the auth services return?</div>
<div><br>
</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Jesse Andrews <<a href="mailto:anotherjesse@gmail.com">anotherjesse@gmail.com</a>><br>
<span style="font-weight:bold">Date: </span>Mon, 28 Feb 2011 19:53:01 -0800<br>
<span style="font-weight:bold">To: </span>Erik Carlin <<a href="mailto:erik.carlin@rackspace.com">erik.carlin@rackspace.com</a>><br>
<span style="font-weight:bold">Cc: </span>"<a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a>" <<a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [Openstack] OpenStack Compute API for Cactus (critical!)<br>
</div>
<div><br>
</div>
<blockquote id="MAC_OUTLOOK_ATTRIBUTION_BLOCKQUOTE" style="BORDER-LEFT: #b5c4df 5 solid; PADDING:0 0 0 5; MARGIN:0 0 0 5;">
<div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<div>I'm also confused because nova (compute/block/network) is in 1 repository doesn't mean it isn't 3 different services.</div>
<div><br>
</div>
<div>We've talked about moving the services inside nova to not reaching inside of each other via RPC calls and instead making HTTP calls.  But they are mostly already designed in a way that allows them to operate independantly.</div>
<div><br>
</div>
<div>And I would also say that while rackspace may deploy with 3 endpoints, openstack might want to deploy multiple services behind a single endpoint.</div>
<div><br>
</div>
<div>Jesse</div>
<br>
<div>
<div>On Feb 28, 2011, at 3:52 PM, Erik Carlin wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite">
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>I was talking with Will Reese about this more.  If we are eventually going to decompose into independent services with separate endpoints, he thought we should do that now.  I like that idea better.  For cactus, we still have a single nova service "black
 box" but we put multiple OpenStack API endpoints on the front side, one for each future service.  In other words, use separate endpoints instead of extensions in a single endpoint to expose the current capabilities.  That way, it sets us on the right path
 and consumers don't have to refactor to support between cactus and diable.  In diablo, we decompose into separate services and the endpoints move with them.  It's a bit hard to visualize so I put together the attached pdf.  I'm assuming glance is a separate
 service and endpoint for cactus (still need to figure out per my message below) and swift already is.</div>
<div><br>
</div>
<div>Erik </div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Erik Carlin <<a href="mailto:erik.carlin@rackspace.com">erik.carlin@rackspace.com</a>><br>
<span style="font-weight:bold">Date: </span>Mon, 28 Feb 2011 17:07:22 -0600<br>
<span style="font-weight:bold">To: </span>John Purrier <<a href="mailto:john@openstack.org">john@openstack.org</a>>, <<a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a>><br>
<span style="font-weight:bold">Subject: </span>Re: [Openstack] OpenStack Compute API for Cactus (critical!)<br>
</div>
<div><br>
</div>
<div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>That all sounds good.  My only question is around images.  Is glance ready to be an independent service (and thus have a separate API) in Cactus?</div>
<div><br>
</div>
<div>Erik</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>John Purrier <<a href="mailto:john@openstack.org">john@openstack.org</a>><br>
<span style="font-weight:bold">Date: </span>Mon, 28 Feb 2011 16:53:53 -0600<br>
<span style="font-weight:bold">To: </span>Erik Carlin <<a href="mailto:erik.carlin@rackspace.com">erik.carlin@rackspace.com</a>>, <<a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a>><br>
<span style="font-weight:bold">Subject: </span>RE: [Openstack] OpenStack Compute API for Cactus (critical!)<br>
</div>
<div><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">
<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:11.0pt;
        font-family:"Calibri","sans-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";}
span.PlainTextChar
        {mso-style-name:"Plain Text Char";
        mso-style-priority:99;
        mso-style-link:"Plain Text";
        font-family:"Calibri","sans-serif";}
span.EmailStyle19
        {mso-style-type:personal;
        font-family:"Calibri","sans-serif";
        color:black;}
span.HTMLPreformattedChar
        {mso-style-name:"HTML Preformatted Char";
        mso-style-priority:99;
        mso-style-link:"HTML Preformatted";
        font-family:"Consolas","serif";}
span.EmailStyle22
        {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]-->
<div lang="EN-US" link="blue" vlink="purple" style="word-wrap: break-word;-webkit-nbsp-mode: space;-webkit-line-break: after-white-space">
<div class="WordSection1">
<div class="MsoNormal"><span style="color:black">Hi Erik, today we have compute, block/volume, and network all encompassed in nova. Along with image and object storage these make the whole of OpenStack today. The goal is to see where we are at wrt the OpenStack
 API (compute/network/volume/image) and coverage of the underlying implementation as well as what is available through the EC2 API today.<o:p></o:p></span></div>
<div class="MsoNormal"><span style="color:black"><o:p> </o:p></span></div>
<div class="MsoNormal"><span style="color:black">I would propose that volume and network API’s be exposed not through the core compute API, but as extensions. Once we create separate services and factor network and volume services out of nova these API’s will
 form the core API’s for these services. We may also need to up-version these service API’s between Cactus and Diablo as they are currently under heavy discussion and design.<o:p></o:p></span></div>
<div class="MsoNormal"><span style="color:black"><o:p> </o:p></span></div>
<div class="MsoNormal"><span style="color:black">John<o:p></o:p></span></div>
<div class="MsoNormal"><span style="color:black"><o:p> </o:p></span></div>
<div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<div class="MsoNormal"><b><span style="font-size: 10pt; font-family: Tahoma, sans-serif; ">From:</span></b><span style="font-size: 10pt; font-family: Tahoma, sans-serif; "> Erik Carlin [<a href="mailto:erik.carlin@rackspace.com">mailto:erik.carlin@rackspace.com</a>]
<br>
<b>Sent:</b> Monday, February 28, 2011 3:16 PM<br>
<b>To:</b> John Purrier; <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
<b>Subject:</b> Re: [Openstack] OpenStack Compute API for Cactus (critical!)<o:p></o:p></span></div>
</div>
</div>
<div class="MsoNormal"><o:p> </o:p></div>
<div>
<div class="MsoNormal"><span style="font-size:10.5pt;color:black">John -<o:p></o:p></span></div>
</div>
<div>
<div class="MsoNormal"><span style="font-size:10.5pt;color:black"><o:p> </o:p></span></div>
</div>
<div>
<div class="MsoNormal"><span style="font-size:10.5pt;color:black">Are we just talking about compute aspects?  IMO, we should NOT be exposing block functionality in the OS compute API.  In Diablo, we will break out block into a separate service with it's own
 OS block API.  That means for now, there may be functionality in nova that isn't exposed (an artifact of originally mimicing EC2) until we can fully decompose nova into independent services.<o:p></o:p></span></div>
</div>
<div>
<div class="MsoNormal"><span style="font-size:10.5pt;color:black"><o:p> </o:p></span></div>
</div>
<div>
<div class="MsoNormal"><span style="font-size:10.5pt;color:black">Erik   <o:p></o:p></span></div>
</div>
<div>
<div class="MsoNormal"><span style="font-size:10.5pt;color:black"><o:p> </o:p></span></div>
</div>
<div style="border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in">
<div class="MsoNormal"><b><span style="color:black">From: </span></b><span style="color:black">John Purrier <<a href="mailto:john@openstack.org">john@openstack.org</a>><br>
<b>Date: </b>Mon, 28 Feb 2011 14:16:20 -0600<br>
<b>To: </b><<a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a>><br>
<b>Subject: </b>[Openstack] OpenStack Compute API for Cactus (critical!)<o:p></o:p></span></div>
</div>
<div>
<div class="MsoNormal"><span style="font-size:10.5pt;color:black"><o:p> </o:p></span></div>
</div>
<div>
<div>
<div class="MsoNormal"><span style="color:black">Has anyone done a gap analysis against the proposed OpenStack Compute API and a) the implemented code, and b) the EC2 API?<o:p></o:p></span></div>
<div class="MsoNormal"><span style="color:black"> <o:p></o:p></span></div>
<div class="MsoNormal"><span style="color:black">It looks like we have had a breakdown in process, as the community review process of the proposed spec has not generated discussion of the missing aspects of the proposed spec.
<o:p></o:p></span></div>
<div class="MsoNormal"><span style="color:black"> <o:p></o:p></span></div>
<div class="MsoPlainText"><span style="color:black">Here is what we said on Feb 3 as the goal for Cactus:<o:p></o:p></span></div>
<div class="MsoPlainText"><span style="color:black"> <o:p></o:p></span></div>
<div class="MsoPlainText"><b><span style="font-size:14.0pt;color:black">OpenStack Compute API completed. We need to complete a working set of API's that are
<u>consistent and inclusive of all the exposed functionality</u>.</span></b><span style="color:black"><o:p></o:p></span></div>
<div class="MsoNormal"><span style="color:black"> <o:p></o:p></span></div>
<div class="MsoNormal"><span style="color:black">We need to *<b>very</b>* quickly identify the missing elements that are required in the OpenStack Compute API, and then discuss how we mobilize to get this work done for Cactus. As this is the #1 priority for
 this release there are implications on milestones dates depending on the results of this exercise. The 1.1 spec should be complete and expose all current Nova functionality (superset of EC2/RS).
<o:p></o:p></span></div>
<div class="MsoNormal"><span style="color:black"> <o:p></o:p></span></div>
<div class="MsoNormal"><span style="color:black">Dendrobates, please take the lead on this, anyone who can help please coordinate with Rick. Can we get a fairly complete view by EOD tomorrow? Please set up a wiki page to identify the gaps, I suggest 3 columns
 (Actual code / EC2 / OpenStack Compute).<o:p></o:p></span></div>
<div class="MsoPlainText"><span style="font-size:11.0pt;color:black"> </span><span style="color:black"><o:p></o:p></span></div>
<div class="MsoPlainText"><span style="font-size:11.0pt;color:black">Thanks,</span><span style="color:black"><o:p></o:p></span></div>
<div class="MsoPlainText"><span style="font-size:11.0pt;color:black"> </span><span style="color:black"><o:p></o:p></span></div>
<div class="MsoPlainText"><span style="font-size:11.0pt;color:black">John</span><span style="color:black"><o:p></o:p></span></div>
</div>
</div>
<div class="MsoNormal"><span style="font-size:10.5pt;color:black">_______________________________________________ Mailing list:
<a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a> Post to :
<a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a> Unsubscribe :
<a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a> More help :
<a href="https://help.launchpad.net/ListHelp">https://help.launchpad.net/ListHelp</a><o:p></o:p></span></div>
<pre><span style="color:black"><o:p> </o:p></span></pre>
<pre><span style="color:black">Confidentiality Notice: This e-mail message (including any attached or<o:p></o:p></span></pre>
<pre><span style="color:black">embedded documents) is intended for the exclusive and confidential use of the<o:p></o:p></span></pre>
<pre><span style="color:black">individual or entity to which this message is addressed, and unless otherwise<o:p></o:p></span></pre>
<pre><span style="color:black">expressly indicated, is confidential and privileged information of Rackspace.<o:p></o:p></span></pre>
<pre><span style="color:black">Any dissemination, distribution or copying of the enclosed material is prohibited.<o:p></o:p></span></pre>
<pre><span style="color:black">If you receive this transmission in error, please notify us immediately by e-mail<o:p></o:p></span></pre>
<pre><span style="color:black">at <a href="mailto:abuse@rackspace.com">abuse@rackspace.com</a>, and delete the original message.<o:p></o:p></span></pre>
<pre><span style="color:black">Your cooperation is appreciated.<o:p></o:p></span></pre>
</div>
</div>
</div>
</span></div>
</div>
</span>
<pre>Confidentiality Notice: This e-mail message (including any attached or
embedded documents) is intended for the exclusive and confidential use of the
individual or entity to which this message is addressed, and unless otherwise
expressly indicated, is confidential and privileged information of Rackspace.
Any dissemination, distribution or copying of the enclosed material is prohibited.
If you receive this transmission in error, please notify us immediately by e-mail
at <a href="mailto:abuse@rackspace.com">abuse@rackspace.com</a>, and delete the original message.
Your cooperation is appreciated.
</pre>
</div>
<span><Cactus-Diablo APIs.pdf></span>_______________________________________________<br>
Mailing list: <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br>
Post to     : <a href="mailto:openstack@lists.launchpad.net">openstack@lists.launchpad.net</a><br>
Unsubscribe : <a href="https://launchpad.net/~openstack">https://launchpad.net/~openstack</a><br>
More help   : <a href="https://help.launchpad.net/ListHelp">https://help.launchpad.net/ListHelp</a><br>
</blockquote>
</div>
<br>
</div>
</div>
_______________________________________________ Mailing list: <a href="https://launchpad.net/~openstack">
https://launchpad.net/~openstack</a> Post to : <a href="mailto:openstack@lists.launchpad.net">
openstack@lists.launchpad.net</a> Unsubscribe : <a href="https://launchpad.net/~openstack">
https://launchpad.net/~openstack</a> More help : <a href="https://help.launchpad.net/ListHelp">
https://help.launchpad.net/ListHelp</a> </blockquote>
</span>
</body>
</html>