On Tue, Oct 20, 2009 at 12:28 PM, Edmonds, AndrewX <span dir="ltr">&lt;<a href="mailto:andrewx.edmonds@intel.com">andrewx.edmonds@intel.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
To that point I&#39;d ask - If we&#39;re talking about meta-data that infers there is some data to accompany it. Where are the examples of this data? This would help in forming the full picture.<br></blockquote><div><br>Here, from <a href="http://occi.googlecode.com/hg/docs/occi-core.html">the core spec</a> (using OVF as an example, but could be anything). Request is <span style="background-color: rgb(51, 255, 51);">green</span>, response metadata is <span style="background-color: rgb(255, 255, 51);">yellow</span> &amp; response data/payload is <span style="background-color: rgb(255, 204, 0);">orange</span>:<br>
<br><pre class="screen"><a id="id36063496"><span style="background-color: rgb(51, 255, 51);">&gt; GET /us-east/webapp/vm01 HTTP/1.1</span><br style="background-color: rgb(51, 255, 51);"><span style="background-color: rgb(51, 255, 51);">&gt; User-Agent: occi-client/1.0 (linux) libcurl/7.19.4 OCCI/1.0</span><br style="background-color: rgb(51, 255, 51);">
<span style="background-color: rgb(51, 255, 51);">&gt; Host: cloud.example.com</span><br style="background-color: rgb(51, 255, 51);"><span style="background-color: rgb(51, 255, 51);">&gt; Accept: */*</span><br style="background-color: rgb(102, 51, 255);">
&gt; <br><span style="background-color: rgb(255, 255, 51);">&lt; HTTP/1.1 200 OK</span><br style="background-color: rgb(255, 255, 51);"><span style="background-color: rgb(255, 255, 51);">&lt; Date: Sat, 10 Oct 2009 12:56:51 GMT</span><br style="background-color: rgb(255, 255, 51);">
<span style="background-color: rgb(255, 255, 51);">&lt; Content-Type: application/ovf</span><br style="background-color: rgb(255, 255, 51);"><span style="background-color: rgb(255, 255, 51);">&lt; Link: &lt;/us-east/webapp/vm01;start&gt;;</span><br style="background-color: rgb(255, 255, 51);">
<span style="background-color: rgb(255, 255, 51);">&lt;       rel=&quot;http://purl.org/occi/action/start&quot;;</span><br style="background-color: rgb(255, 255, 51);"><span style="background-color: rgb(255, 255, 51);">&lt;       title=&quot;Start&quot;</span><br style="background-color: rgb(255, 255, 51);">
<span style="background-color: rgb(255, 255, 51);">&lt; Link: &lt;/us-east/webapp/build.pdf&gt;;</span><br style="background-color: rgb(255, 255, 51);"><span style="background-color: rgb(255, 255, 51);">&lt;       rel=&quot;related&quot;;</span><br style="background-color: rgb(255, 255, 51);">
<span style="background-color: rgb(255, 255, 51);">&lt;       title=&quot;Documentation&quot;;</span><br style="background-color: rgb(255, 255, 51);"><span style="background-color: rgb(255, 255, 51);">&lt;       type=&quot;application/pdf&quot;</span><br style="background-color: rgb(255, 255, 51);">
<span style="background-color: rgb(255, 255, 51);">&lt; Category: compute;</span><br style="background-color: rgb(255, 255, 51);"><span style="background-color: rgb(255, 255, 51);">&lt;       label=&quot;Compute Resource&quot;;</span><br style="background-color: rgb(255, 255, 51);">
<span style="background-color: rgb(255, 255, 51);">&lt;       scheme=&quot;http://purl.org/occi/kind/&quot;</span><br style="background-color: rgb(255, 255, 51);"><span style="background-color: rgb(255, 255, 51);">&lt; Server: occi-server/1.0 (linux) OCCI/1.0</span><br style="background-color: rgb(255, 255, 51);">
<span style="background-color: rgb(255, 255, 51);">&lt; Connection: close</span><br>&lt;<br><span style="background-color: rgb(255, 204, 0);">&lt; &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;</span><br style="background-color: rgb(255, 204, 0);">
<span style="background-color: rgb(255, 204, 0);">&lt; &lt;Envelope xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;</span><br style="background-color: rgb(255, 204, 0);"><span style="background-color: rgb(255, 204, 0);">&lt;           xmlns:ovf=&quot;http://schemas.dmtf.org/ovf/envelope/1&quot;</span><br style="background-color: rgb(255, 204, 0);">
<span style="background-color: rgb(255, 204, 0);">&lt;           xmlns=&quot;http://schemas.dmtf.org/ovf/envelope/1&quot;</span><br style="background-color: rgb(255, 204, 0);"><span style="background-color: rgb(255, 204, 0);">&lt;           xml:lang=&quot;en-US&quot;&gt;</span><br style="background-color: rgb(255, 204, 0);">
<span style="background-color: rgb(255, 204, 0);">...</span></a></pre> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">-----Original Message-----<br>
From: <a href="mailto:occi-wg-bounces@ogf.org">occi-wg-bounces@ogf.org</a> [mailto:<a href="mailto:occi-wg-bounces@ogf.org">occi-wg-bounces@ogf.org</a>] On Behalf Of Alexis Richardson<br>
Sent: 20 October 2009 09:49<br>
To: Sam Johnston<br>
</div><div class="im">Cc: Tim Bray; <a href="mailto:occi-wg@ogf.org">occi-wg@ogf.org</a><br>
Subject: Re: [occi-wg] confusion about status of link / headers<br>
<br>
</div><div><div></div><div class="h5">Sam,<br>
<br>
Please don&#39;t throw around words like &quot;bunk&quot; willy nilly.<br>
<br>
I have just had a look at<br>
<a href="http://www.rackspacecloud.com/cloud_hosting_products/servers/api" target="_blank">http://www.rackspacecloud.com/cloud_hosting_products/servers/api</a><br>
<br>
I can see some limited use of headers for metadata in a few places.<br>
That&#39;s never been controversial.  But the understanding that I have of<br>
your proposal is to use headers wholesale for all metadata.  Rackspace<br>
don&#39;t appear to do that, unless I have misunderstood their document.<br>
I also may have misunderstood your proposal.  If nobody understands<br>
your proposal except you, then it will not be possible to gain<br>
consensus around it.<br>
<br>
Are you saying &quot;OCCI metadata should be more like Rackspace metadata&quot;?<br>
<br>
alexis<br>
<br>
<br>
On Tue, Oct 20, 2009 at 9:07 AM, Sam Johnston &lt;<a href="mailto:samj@samj.net">samj@samj.net</a>&gt; wrote:<br>
&gt; On Tue, Oct 20, 2009 at 9:55 AM, Alexis Richardson<br>
&gt; &lt;<a href="mailto:alexis.richardson@gmail.com">alexis.richardson@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; What about compute clouds?<br>
&gt;<br>
&gt; Rackspace Cloud API for a start:<br>
&gt;<br>
&gt;&gt; HTTP/1.1 204 No Content<br>
&gt;&gt; Date: Mon, 12 Nov 2007 15:32:21 GMT<br>
&gt;&gt; Server: Apache<br>
&gt;&gt; X-Server-Management-Url: <a href="https://servers.api.rackspacecloud.com/v1.0/35428" target="_blank">https://servers.api.rackspacecloud.com/v1.0/35428</a><br>
&gt;&gt; X-Storage-Url: <a href="https://storage.clouddrive.com/v1/CloudFS_9c83b-5ed4" target="_blank">https://storage.clouddrive.com/v1/CloudFS_9c83b-5ed4</a><br>
&gt;&gt; X-CDN-Management-Url: <a href="https://cdn.clouddrive.com/v1/CloudFS_9c83b-5ed4" target="_blank">https://cdn.clouddrive.com/v1/CloudFS_9c83b-5ed4</a><br>
&gt;&gt; X-Auth-Token: eaaafd18-0fed-4b3a-81b4-663c99ec1cbb<br>
&gt;&gt; Content-Length: 0<br>
&gt;&gt; Content-Type: text/plain; charset=UTF-8<br>
&gt;<br>
&gt;<br>
&gt; Microsoft Azure uses headers for &quot;attributes&quot; as well, in the same way as I<br>
&gt; had originally proposed:<br>
&gt;<br>
&gt; x-ms-meta-name: value     Returns a metadata value for the container.<br>
&gt;<br>
&gt; However prefer that the header names are static/opaque rather than using a<br>
&gt; template and parsing them:<br>
&gt;<br>
&gt;&gt; Attribute: name=value<br>
&gt;<br>
&gt; This to me is cleaner and more self-explanatory, plus it is easily collapsed<br>
&gt; ala:<br>
&gt;<br>
&gt;&gt; Attribute: name1=value1, name2=value2, ... namen=valuen<br>
&gt;<br>
&gt; Anyway suffice to say that claims this is somehow &quot;experimental&quot; are bunk.<br>
&gt;<br>
&gt; Sam<br>
&gt;<br>
&gt;&gt; On Tue, Oct 20, 2009 at 6:19 AM, Adrian Cole &lt;<a href="mailto:adrian@jclouds.org">adrian@jclouds.org</a>&gt; wrote:<br>
&gt;&gt; &gt; Here are options for metadata used in some of the major storage clouds<br>
&gt;&gt; &gt; FWIW:<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; S3, Rackspace, EMC Atmos, Azure - Headers<br>
&gt;&gt; &gt; Nirvanix - query params in, xml entity out<br>
&gt;&gt; &gt; Mezeo - entity<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Of the ones using headers, S3, Rackspace and Azure use prefix with<br>
&gt;&gt; &gt; values stored as-us.  Atmos joins all metadata together into one<br>
&gt;&gt; &gt; header, making parsing trivial (split /,/), but necessary.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; The most expensive option of the above is entity, where each metadata<br>
&gt;&gt; &gt; value is a separate GET.  However, entities allow binary metadata and<br>
&gt;&gt; &gt; zero restrictions on it, which may be useful.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; In jclouds, we time parsing of response values.  A simple XML doc with<br>
&gt;&gt; &gt; only several elements written in SAX takes a few ms to parse.  My log<br>
&gt;&gt; &gt; files are not precise enough to find the overhead in parsing headers:<br>
&gt;&gt; &gt; they always start and finish within the same millisecond.<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I hope this background helps, and also helps explain why I&#39;m vocal on<br>
&gt;&gt; &gt; such topics such as headers vs entities :)<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Cheers,<br>
&gt;&gt; &gt; -Adrian<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Mon, Oct 19, 2009 at 4:21 PM, Sam Johnston &lt;<a href="mailto:samj@samj.net">samj@samj.net</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; On Tue, Oct 20, 2009 at 12:57 AM, gary mazzaferro<br>
&gt;&gt; &gt;&gt; &lt;<a href="mailto:garymazzaferro@gmail.com">garymazzaferro@gmail.com</a>&gt;<br>
&gt;&gt; &gt;&gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; The http header and key/value pairs need to parsed also, there is no<br>
&gt;&gt; &gt;&gt;&gt; free<br>
&gt;&gt; &gt;&gt;&gt; ride here.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Every HTTP library I have ever used parses HTTP headers and puts them<br>
&gt;&gt; &gt;&gt; in a<br>
&gt;&gt; &gt;&gt; nice hash for you ready to consume. If we go for &quot;Name: Value&quot; then<br>
&gt;&gt; &gt;&gt; that&#39;s<br>
&gt;&gt; &gt;&gt; all there is to it. If we go for &quot;Attribute: name=value&quot; as is<br>
&gt;&gt; &gt;&gt; currently<br>
&gt;&gt; &gt;&gt; proposed (which is arguably cleaner, follows cookies&#39; &quot;prior art&quot; and<br>
&gt;&gt; &gt;&gt; avoids<br>
&gt;&gt; &gt;&gt; Amazon&#39;s prefix hack) then you just have to split on &#39;=&#39;.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; To illustrate how clean this is by example:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;&gt; #!/usr/bin/python<br>
&gt;&gt; &gt;&gt;&gt; import urllib2<br>
&gt;&gt; &gt;&gt;&gt; response = urllib2.urlopen(&#39;<a href="http://cloud.example.com/myvm" target="_blank">http://cloud.example.com/myvm</a>&#39;)<br>
&gt;&gt; &gt;&gt;&gt; representation = response.read()<br>
&gt;&gt; &gt;&gt;&gt; metadata = <a href="http://response.info" target="_blank">response.info</a>()<br>
&gt;&gt; &gt;&gt;&gt; print metadata[&#39;occi-compute-cores&#39;]<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; As soon as you start talking about payloads you have to fire up a<br>
&gt;&gt; &gt;&gt; parser<br>
&gt;&gt; &gt;&gt; (JSON/XML/Atom/etc.) or write your own (previous text rendering) which<br>
&gt;&gt; &gt;&gt; is<br>
&gt;&gt; &gt;&gt; significantly more work to do at both design and run times. Not to<br>
&gt;&gt; &gt;&gt; mention<br>
&gt;&gt; &gt;&gt; more work for us to do now and more scope for interoperability<br>
&gt;&gt; &gt;&gt; problems.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Sam<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; occi-wg mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:occi-wg@ogf.org">occi-wg@ogf.org</a><br>
&gt;&gt; &gt;&gt; <a href="http://www.ogf.org/mailman/listinfo/occi-wg" target="_blank">http://www.ogf.org/mailman/listinfo/occi-wg</a><br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; occi-wg mailing list<br>
&gt;&gt; &gt; <a href="mailto:occi-wg@ogf.org">occi-wg@ogf.org</a><br>
&gt;&gt; &gt; <a href="http://www.ogf.org/mailman/listinfo/occi-wg" target="_blank">http://www.ogf.org/mailman/listinfo/occi-wg</a><br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
_______________________________________________<br>
occi-wg mailing list<br>
<a href="mailto:occi-wg@ogf.org">occi-wg@ogf.org</a><br>
<a href="http://www.ogf.org/mailman/listinfo/occi-wg" target="_blank">http://www.ogf.org/mailman/listinfo/occi-wg</a><br>
</div></div><div><div></div><div class="h5">-------------------------------------------------------------<br>
Intel Ireland Limited (Branch)<br>
Collinstown Industrial Park, Leixlip, County Kildare, Ireland<br>
Registered Number: E902934<br>
<br>
This e-mail and any attachments may contain confidential material for<br>
the sole use of the intended recipient(s). Any review or distribution<br>
by others is strictly prohibited. If you are not the intended<br>
recipient, please contact the sender and delete all copies.<br>
</div></div></blockquote></div><br>