<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>I also agree.   Just to be clear thought, we should make a distinction between internal API (devAPI) that's used by the developers of that particular service and the management API that may be used by an operator of a service OR by an orchestration service
 and is a proper "OpenStack API" with versioning etc.  </div>
<div><br>
</div>
<div>-jOrGe W.</div>
<div><br>
</div>
<br>
<div>
<div>On Jan 4, 2011, at 1:05 PM, Vishvananda Ishaya 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; ">
Agreed,
<div><br>
</div>
<div>This seems like a clear distinction.</div>
<div><br>
<div>
<div>On Jan 4, 2011, at 11:02 AM, John Purrier wrote:</div>
<br class="Apple-interchange-newline">
<blockquote type="cite"><span class="Apple-style-span" style="border-collapse: separate; font-family: Helvetica; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; font-size: medium; ">
<div lang="EN-US" link="blue" vlink="purple">
<div class="WordSection1" style="page: WordSection1; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">Good points, I just deleted my post as you made my points<span class="Apple-converted-space"> </span></span><span style="font-size: 11pt; font-family: Wingdings; color: black; ">J</span><span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">.<o:p></o:p></span></div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "><o:p> </o:p></span></div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">The “devAPI” is valuable for developers/contributors to the OpenStack services for all of the reasons Vishy stated in terms of immediacy, access, and easy evolution. This should
 be internal to the project. Having a CLI to drive this is a good thing.<o:p></o:p></span></div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "><o:p> </o:p></span></div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">The “OpenStack API” is targeted at developers that consume the published services (such as provisioning VM’s, Virtual Volumes, Virtual Images, Virtual Networks, and Object Storage).
 These can also be thought of as OpenStack application developers and sysadmins. Having a CLI that can be scripted against is a good thing. For this audience there is likely a requirement in the API stack for orchestration, transactions, and  concurrency that
 will not be exposed through a low level devAPI.<o:p></o:p></span></div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "><o:p> </o:p></span></div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; ">-John<o:p></o:p></span></div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 11pt; font-family: Calibri, sans-serif; color: black; "><o:p> </o:p></span></div>
<div>
<div style="border-right-style: none; border-bottom-style: none; border-left-style: none; border-width: initial; border-color: initial; border-top-style: solid; border-top-color: rgb(181, 196, 223); border-top-width: 1pt; padding-top: 3pt; padding-right: 0in; padding-bottom: 0in; padding-left: 0in; ">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<b><span style="font-size: 10pt; font-family: Tahoma, sans-serif; ">From:</span></b><span style="font-size: 10pt; font-family: Tahoma, sans-serif; "><span class="Apple-converted-space"> </span><a href="mailto:openstack-bounces+john=openstack.org@lists.launchpad.net" style="color: blue; text-decoration: underline; ">openstack-bounces+john=openstack.org@lists.launchpad.net</a><span class="Apple-converted-space"> </span>[mailto:openstack-bounces+john=openstack.org@lists.launchpad.net]<span class="Apple-converted-space"> </span><b>On
 Behalf Of<span class="Apple-converted-space"> </span></b><a href="mailto:ksankar@doubleclix.net" style="color: blue; text-decoration: underline; ">ksankar@doubleclix.net</a><br>
<b>Sent:</b><span class="Apple-converted-space"> </span>Tuesday, January 04, 2011 12:37 PM<br>
<b>To:</b><span class="Apple-converted-space"> </span>Vishvananda Ishaya<br>
<b>Cc:</b><span class="Apple-converted-space"> </span><a href="mailto:openstack@lists.launchpad.net" style="color: blue; text-decoration: underline; ">openstack@lists.launchpad.net</a><br>
<b>Subject:</b><span class="Apple-converted-space"> </span>Re: [Openstack] [RFC] OpenStack API<o:p></o:p></span></div>
</div>
</div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<o:p> </o:p></div>
<div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10pt; font-family: Verdana, sans-serif; color: black; ">Good point - this was my concern on "REST API for developers" in the other thread. Relative stability, versioning, published API and programming models that need to be supported
 and deprecated systemically and so forth. Plus evolutionay concerns like extensibility, feature velocity, ...<o:p></o:p></span></div>
</div>
<div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10pt; font-family: Verdana, sans-serif; color: black; "><o:p> </o:p></span></div>
</div>
<div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10pt; font-family: Verdana, sans-serif; color: black; ">Before we even think of devAPi vs internal API, we need to be crisp and clear on "For Whom the APIs toll" ...<o:p></o:p></span></div>
</div>
<div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10pt; font-family: Verdana, sans-serif; color: black; "><o:p> </o:p></span></div>
</div>
<div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10pt; font-family: Verdana, sans-serif; color: black; ">a)    Developers who develop service components <- Need access to all internals and will use python<o:p></o:p></span></div>
</div>
<div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10pt; font-family: Verdana, sans-serif; color: black; ">b)    Cloud Platform developers who develop granular services based on the service components <- Are these the clients we are talking about ? Do they need a concise programming
 model and REST API ? If so, what would these actors do ?<o:p></o:p></span></div>
</div>
<div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10pt; font-family: Verdana, sans-serif; color: black; "><o:p> </o:p></span></div>
</div>
<div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10pt; font-family: Verdana, sans-serif; color: black; ">If there are two distinct constituents, with clear cut requirements and interfaces, we can work through programming models and appropriate APIs.<o:p></o:p></span></div>
</div>
<div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10pt; font-family: Verdana, sans-serif; color: black; "><o:p> </o:p></span></div>
</div>
<div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10pt; font-family: Verdana, sans-serif; color: black; ">Cheers<o:p></o:p></span></div>
</div>
<div>
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10pt; font-family: Verdana, sans-serif; color: black; "><k/><o:p></o:p></span></div>
</div>
<blockquote id="replyBlockquote" style="border-top-style: none; border-right-style: none; border-bottom-style: none; border-width: initial; border-color: initial; border-left-style: solid; border-left-color: blue; border-left-width: 1.5pt; padding-top: 0in; padding-right: 0in; padding-bottom: 0in; padding-left: 6pt; margin-left: 6pt; margin-top: 5pt; margin-bottom: 5pt; ">
<div id="wmQuoteWrapper">
<div style="margin-top: 0in; margin-right: 0in; margin-bottom: 0.0001pt; margin-left: 0in; font-size: 12pt; font-family: 'Times New Roman', serif; ">
<span style="font-size: 10pt; font-family: Verdana, sans-serif; color: black; ">-------- Original Message --------<br>
Subject: Re: [Openstack] [RFC] OpenStack API<br>
From: Vishvananda Ishaya <<a href="mailto:vishvananda@gmail.com" style="color: blue; text-decoration: underline; ">vishvananda@gmail.com</a>><br>
Date: Tue, January 04, 2011 9:32 am<br>
To: Ed Leafe <<a href="mailto:ed@leafe.com" style="color: blue; text-decoration: underline; ">ed@leafe.com</a>><br>
Cc:<span class="Apple-converted-space"> </span><a href="mailto:openstack@lists.launchpad.net" style="color: blue; text-decoration: underline; ">openstack@lists.launchpad.net</a><br>
<br>
Sure. DevAPI perhaps?<br>
<br>
Another point that might help clarify: Each component of Nova exposes an "api" to the other components in the system via python methods. You could refer to these as the "internal api" for that component. Both the OS api and the EC2 api use this internal api,
 for example, when they are running instance related commands. DevAPI (ReflectionAPI/EasyAPI) takes the "internal api" from all of the components and sews them up into a rest interface so they can be accessed via the cli. I think this is the "best" way for
 developers to prototype components and interact with the system. This is probably not the best way for clients to access the system. The "official" api exposed to clients needs to be a bit more rigorous with versioning, etc. and can lag behind the internal/dev
 api. The Openstack/Rackspace can continue to be the current versioned official api.<br>
<br>
I think this division gives both developers and end users their optimal use case.<br>
<br>
Vish<br>
<br>
On Jan 4, 2011, at 5:57 AM, Ed Leafe wrote:<br>
<br>
> On Jan 3, 2011, at 8:32 PM, Vishvananda Ishaya wrote:<br>
><span class="Apple-converted-space"> </span><br>
>> I feel very strongly that we need to keep the code easy to extend and prototype, without forcing developers to go through the process of api specs and versioning. I don't think this is going to happen through the OpenStack/Rackspace api, due to the reasons
 outlined above. The idea of EasyAPI is simply to expose the existing apis that we have for each component for easy consumption. This allows us to have a simple command line utility to interact with the code we write for each component separately.<br>
><span class="Apple-converted-space"> </span><br>
> Is there any chance that you could change the name to something that sounds a little less judgmental? I.e., if it's not EasyAPI, it must be DifficultAPI! Maybe ReflectionAPI or something that describes the approach and not an opinion.<br>
><span class="Apple-converted-space"> </span><br>
><span class="Apple-converted-space"> </span><br>
><span class="Apple-converted-space"> </span><br>
> -- Ed Leafe<br>
><span class="Apple-converted-space"> </span><br>
><span class="Apple-converted-space"> </span><br>
><span class="Apple-converted-space"> </span><br>
<br>
<br>
_______________________________________________<br>
Mailing list:<span class="Apple-converted-space"> </span><a href="https://launchpad.net/~openstack" style="color: blue; text-decoration: underline; ">https://launchpad.net/~openstack</a><br>
Post to :<span class="Apple-converted-space"> </span><a href="mailto:openstack@lists.launchpad.net" style="color: blue; text-decoration: underline; ">openstack@lists.launchpad.net</a><br>
Unsubscribe :<span class="Apple-converted-space"> </span><a href="https://launchpad.net/~openstack" style="color: blue; text-decoration: underline; ">https://launchpad.net/~openstack</a><br>
More help :<span class="Apple-converted-space"> </span><a href="https://help.launchpad.net/ListHelp" style="color: blue; text-decoration: underline; ">https://help.launchpad.net/ListHelp</a><o:p></o:p></span></div>
</div>
</blockquote>
</div>
</div>
</span></blockquote>
</div>
<br>
</div>
</div>
_______________________________________________<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>
<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 abuse@rackspace.com, and delete the original message. 
Your cooperation is appreciated.
</PRE></body>
</html>