Ben M, Re built mesos from master. Made the suggested changes for headers. Getting HTTP response back now.
Still getting Error, even though getting 201 back (see below) "... protobuf.hpp:400] Initialization errors: framework.user, framework.name ". I am sending protobuf encoded binary data. I am using protobuf 2.5 + a Go protobuf lib. The String representation is "user:"test" name:"gomes" id:<value:"gomes-framework-1" >" HTTP Request POST /master/mesos.internal.RegisterFrameworkMessage HTTP/1.1 Host: 127.0.0.1:5050 User-Agent: Go 1.1 package http Content-Length: 34 Connection: Keep-Alive Content-Type: application/x-protobuf Libprocess-From: scheduler(1)@127.0.0.1:8080 Accept-Encoding: gzip HTTP Response 2014/05/09 07:27:11 Response Body: HTTP/1.1 202 Accepted Content-Length: 0 Date: Fri, 09 May 2014 11:27:11 GMT On Tue, May 6, 2014 at 4:06 PM, Benjamin Mahler <benjamin.mah...@gmail.com>wrote: > Can you build this off of the latest master code? The reviews have been > committed! > > You should now use "Libprocess-From" instead of "User-Agent". > > E.g. > > Libprocess-From: scheduler@127.0.0.1:8080 > > Also, what is your "string" representation of the protobuf? You're > serializing it using a protobuf library, right? It should be binary data. > > > On Sun, May 4, 2014 at 7:57 AM, Vladimir Vivien <vladimir.viv...@gmail.com > > wrote: > >> Slow progress from Go front: >> I am at a point where I am testing this approach using Go. >> >> HTTP Sent: >> POST /master/mesos.internal.RegisterFrameworkMessage HTTP/1.1 >> Host: 127.0.0.1:5050 >> User-Agent: libprocess/scheduler(1)@127.0.0.1:8080 >> Content-Length: 34 >> Connection: Keep-Alive >> Content-Type: application/x-protobuf >> Accept-Encoding: gzip >> >> String representation of protobuf sent: >> user:"test" name:"gomes" id:<value:"gomes-framework-1" > >> >> Master console response >> W0504 10:53:48.263000 3960 protobuf.hpp:399] Initialization errors: >> framework.user, framework.name >> >> Before I delve in to CPP to see what's going on, hope someone can let me >> know what I am doing wrong. >> >> PS. I havent applied the two patches mentioned here. >> >> vladimir.vivien >> >> >> >> On Wed, Apr 30, 2014 at 1:59 AM, Benjamin Mahler < >> benjamin.mah...@gmail.com> wrote: >> >>> Brian, I'm curious whether most python HTTP libraries support using >>> custom HTTP request headers. >>> >>> We'll land benh's patches to send 202 responses in 0.19.0: >>> >>> https://reviews.apache.org/r/20276/ >>> https://reviews.apache.org/r/20277/ >>> >>> Once these get committed, you should be able to get something working >>> nicely. This will allow libraries like "pesos" to use a custom header >>> "Libprocess-From" to receive 202 responses for messages. >>> >>> We'd also like to get some more foundation laid for the lower-level API, >>> I'll let benh comment on what else is needed here: >>> >>> https://reviews.apache.org/r/20309/ >>> >>> >>> On Sun, Apr 27, 2014 at 9:23 PM, Vetoshkin Nikita < >>> nikita.vetosh...@gmail.com> wrote: >>> >>>> That's great news indeed! >>>> Maybe there should be a place on mesos site mentioning such efforts? >>>> >>>> >>>> On Mon, Apr 28, 2014 at 5:24 AM, Brian Wickman <wick...@gmail.com> >>>> wrote: >>>> >>>> > To my knowledge there is no Zookeeper Group implementation for Go yet. >>>> > There do however appear to be Go zookeeper >>>> > bindings<https://github.com/samuel/go-zookeeper>. >>>> > From my day of spelunking through code, it seems that probably the >>>> most >>>> > challenging thing will be getting a ZookeeperMasterDetector >>>> implementation >>>> > working correctly to enable Scheduler "high availability" mode for >>>> these >>>> > other languages. >>>> > >>>> > Java/Python/C++ have the benefit of preexisting Group implementations >>>> > (java< >>>> > >>>> https://github.com/twitter/commons/blob/master/src/java/com/twitter/common/zookeeper/Group.java >>>> > > >>>> > , python< >>>> > >>>> https://github.com/twitter/commons/blob/master/src/python/twitter/common/zookeeper/group/kazoo_group.py >>>> > > >>>> > , c++< >>>> > >>>> https://git-wip-us.apache.org/repos/asf?p=mesos.git;a=blob;f=src/zookeeper/group.cpp;h=70972980dd25618c76eb36e0a31d060c096e36dc;hb=HEAD >>>> > >) >>>> > which are the foundation for ZK master detection. An intermediate >>>> option >>>> > could be to pull the ZookeeperMasterDetectorProcess out into a >>>> standalone >>>> > binary and have the native implementation talk to it as a sort of >>>> proxy to >>>> > figure out who the leading master is. But that's not nearly as >>>> satisfying >>>> > as a pure language implementation. >>>> > >>>> > ~brian >>>> > >>>> > >>>> > On Sun, Apr 27, 2014 at 3:22 PM, Vladimir Vivien >>>> > <vladimir.viv...@gmail.com>wrote: >>>> > >>>> > > It must be the right time for this. I started the same effort for >>>> Go. >>>> > > I am following Kevin's example and Ben's well-documented email (in >>>> this >>>> > > thread). >>>> > > Very early but should have some proof-of-concept working soon. >>>> > > >>>> > > https://github.com/vladimirvivien/ionos >>>> > > >>>> > > >>>> > > On Sun, Apr 27, 2014 at 6:07 PM, Tom Arnfeld <t...@duedil.com> >>>> wrote: >>>> > > >>>> > >> (Sorry to jump into this thread) >>>> > >> >>>> > >> I have to say, this is very exciting! It only became apparent to >>>> me how >>>> > >> painful it is having to compile the mesos egg into a Python >>>> framework >>>> > the >>>> > >> past week >>>> > >> while writing one, especially when running the framework on a >>>> different >>>> > >> architecture to the one running the executor! >>>> > >> >>>> > >> Looking forward to being able to use this. :-) >>>> > >> >>>> > >> It’d be awesome if the API was near identical, so one could switch >>>> > >> between `mesos` and `pesos` easily… >>>> > >> >>>> > >> Tom. >>>> > >> >>>> > >> On 27 Apr 2014, at 22:42, Brian Wickman <wick...@gmail.com> wrote: >>>> > >> >>>> > >> > And I've started a skeleton implementation of the Mesos >>>> framework API >>>> > at >>>> > >> > https://github.com/wickman/pesos >>>> > >> > >>>> > >> > While I vendored the translated protobuf, it would be great to >>>> tackle >>>> > >> > https://issues.apache.org/jira/browse/MESOS-857 at some point. >>>> > >> > >>>> > >> > >>>> > >> > On Sun, Apr 27, 2014 at 12:50 PM, Brian Wickman < >>>> wick...@gmail.com> >>>> > >> wrote: >>>> > >> > >>>> > >> >> I've implemented a pure python version of the basic >>>> > >> >> Process/ProtobufProcess mechanics and wire protocol. I haven't >>>> gone >>>> > >> so far >>>> > >> >> as Kevin and tried to register a framework or maybe talk to a >>>> > >> replicated >>>> > >> >> log, but it shouldn't be much more work: >>>> > >> >> >>>> > >> >> https://github.com/wickman/compactor >>>> > >> >> >>>> > >> >> Zero documentation but you can read the tests for a general >>>> idea of >>>> > >> what's >>>> > >> >> going on. >>>> > >> >> >>>> > >> >> cheers, >>>> > >> >> brian >>>> > >> >> >>>> > >> >> >>>> > >> >> >>>> > >> >> On Sun, Apr 13, 2014 at 10:28 PM, Kevin Sweeney < >>>> > >> kevin.t.swee...@gmail.com >>>> > >> >>> wrote: >>>> > >> >> >>>> > >> >>> I've got the start of a JVM verson on github - it can currently >>>> > >> register >>>> > >> >>> a framework and parse the response. Client-side I still need to >>>> > >> figure out >>>> > >> >>> how to properly configure Keep-Alive. Servlet can dispatch >>>> messages >>>> > to >>>> > >> >>> message handlers in a type-safe way and returns a 202 for >>>> messages >>>> > >> it's >>>> > >> >>> going to handle. Code's a mess currently. >>>> > >> >>> >>>> > >> >>> https://github.com/kevints/mesos-framework-api >>>> > >> >>> >>>> > >> >>> >>>> > >> >>> On Fri, Apr 11, 2014 at 7:12 PM, Benjamin Hindman < >>>> > >> b...@eecs.berkeley.edu >>>> > >> >>>> wrote: >>>> > >> >>> >>>> > >> >>>> First, my apologies for getting to this party so late. It's >>>> great >>>> > to >>>> > >> see >>>> > >> >>>> people interested in helping create native-language Mesos >>>> > libraries. >>>> > >> >>>> >>>> > >> >>>> Vladimir: my presentation was definitely referring to the the >>>> > >> low-level >>>> > >> >>>> protocol between master, framework (scheduler), slave, and >>>> > >> executors. I'll >>>> > >> >>>> do my best here to clarify how the current protocol works and >>>> what >>>> > >> we need >>>> > >> >>>> to do to get it to the point where we can write >>>> native-language >>>> > >> libraries. >>>> > >> >>>> (Eventually it would be great to move some of this into >>>> > >> documentation as >>>> > >> >>>> necessary.) >>>> > >> >>>> >>>> > >> >>>> As Nikita pointed out, the protocol is currently "HTTP-like". >>>> As my >>>> > >> >>>> presentation describes, think actors and one-way message >>>> passing >>>> > when >>>> > >> >>>> considering how the protocol works. >>>> > >> >>>> >>>> > >> >>>> To send a message an actor POSTs an HTTP request where the >>>> actor >>>> > >> that is >>>> > >> >>>> supposed to receive the message is the first component of the >>>> > >> request path >>>> > >> >>>> and the name of the message is the remaining part of the >>>> path. To >>>> > >> >>>> distinguish one of these "messages" from a normal HTTP >>>> request we >>>> > >> look to >>>> > >> >>>> see if the 'User-Agent' is 'libprocess/...'. For example: >>>> > >> >>>> >>>> > >> >>>> POST /master/mesos.internal.RegisterFrameworkMessage HTTP/1.1 >>>> > >> >>>> User-Agent: libprocess/scheduler(1)@10.0.1.7:53523 >>>> > >> >>>> >>>> > >> >>>> ... represents a message with the name >>>> > >> >>>> 'mesos.internal.RegisterFrameworkMessage' destined for the >>>> actor >>>> > >> 'master' >>>> > >> >>>> coming from the actor 'scheduler(1)' at 10.0.1.7:53523. If >>>> the >>>> > >> 'master' >>>> > >> >>>> actor were to send a message back it would look something like >>>> > this: >>>> > >> >>>> >>>> > >> >>>> POST /scheduler(1)/mesos.internal.FrameworkRegisteredMessage >>>> > HTTP/1.1 >>>> > >> >>>> User-Agent: libprocess/master@10.0.1.7:5050 >>>> > >> >>>> >>>> > >> >>>> So, one-way message passing via HTTP POST. >>>> > >> >>>> >>>> > >> >>>> The message data is captured as the body of the HTTP request >>>> (which >>>> > >> can >>>> > >> >>>> be specified using _either_ Content-Length or a >>>> Transfer-Encoding, >>>> > >> and as >>>> > >> >>>> Nikita points out we use chunked transfer encoding >>>> internally). The >>>> > >> data is >>>> > >> >>>> arbitrary and the actor ultimately decides how it wants to >>>> "parse" >>>> > >> it. In >>>> > >> >>>> Mesos, 99% of our messages use serialized protobufs, but we >>>> also >>>> > >> send a few >>>> > >> >>>> messages with just arbitrary data. All this really means is >>>> that >>>> > >> knowing >>>> > >> >>>> the actor and message name is not enough, you also need to >>>> know >>>> > what >>>> > >> the >>>> > >> >>>> body type is supposed to be for that message. In the future >>>> we'll >>>> > >> probably >>>> > >> >>>> enable messages with either JSON or serialized protobuf[1] >>>> ... for >>>> > >> now, >>>> > >> >>>> just serialized protobuf. >>>> > >> >>>> >>>> > >> >>>> Okay, so where does this break down when trying to do this >>>> > >> >>>> language-natively? I've had some of this in the works and this >>>> > >> conversation >>>> > >> >>>> has motivated me to publish some reviews addressing the >>>> issues: >>>> > >> >>>> >>>> > >> >>>> (1) We'll need to return a response if one plans to use a >>>> native >>>> > HTTP >>>> > >> >>>> library since it'll expect request/response. >>>> > >> >>>> https://reviews.apache.org/r/20276 introduces responding >>>> with a >>>> > '202 >>>> > >> >>>> Accepted' for these messages (from the HTTP specification, a >>>> '202 >>>> > >> >>>> Accepted': "The request has been accepted for processing, but >>>> the >>>> > >> >>>> processing has not been completed. The request might or might >>>> not >>>> > >> >>>> eventually be acted upon, as it might be disallowed when >>>> processing >>>> > >> >>>> actually takes place. There is no facility for re-sending a >>>> status >>>> > >> code >>>> > >> >>>> from an asynchronous operation such as this."). >>>> > >> >>>> >>>> > >> >>>> (2) Most HTTP libraries will set their 'User-Agent' >>>> themselves, so >>>> > >> >>>> https://reviews.apache.org/r/20277 introduces a >>>> 'libprocess-from' >>>> > >> >>>> header that works similar to User-Agent. There is still some >>>> > cleanup >>>> > >> I'd >>>> > >> >>>> love to do around stringification of PIDs (the underlying type >>>> > Mesos >>>> > >> uses >>>> > >> >>>> for remote actors, inspired by Erlang). Until then, the >>>> > >> 'libprocess-from' >>>> > >> >>>> string is unfortunately esoteric (see the test). >>>> > >> >>>> >>>> > >> >>>> The combination of these two patches should make sending and >>>> > >> receiving >>>> > >> >>>> messages straightforward. However, we still plan to expose the >>>> > >> low-level >>>> > >> >>>> Event and Call protobuf messages and that will be the >>>> preferred >>>> > >> approach >>>> > >> >>>> for building a native-language library. Follow along at >>>> > >> >>>> https://issues.apache.org/jira/browse/MESOS-1127 for more >>>> details. >>>> > >> (To >>>> > >> >>>> be clear, you'd still be able to implement native-language >>>> > libraries >>>> > >> with >>>> > >> >>>> the patches above but we'll be deprecating the protobufs >>>> you'd be >>>> > >> using in >>>> > >> >>>> favor of Event and Call protobufs instead. If you're eager to >>>> get >>>> > >> that >>>> > >> >>>> going before Event and Call are committed I'm happy to >>>> discuss the >>>> > >> existing >>>> > >> >>>> protobufs in more detail.) >>>> > >> >>>> >>>> > >> >>>> I hope this helps. >>>> > >> >>>> >>>> > >> >>>> Ben. >>>> > >> >>>> >>>> > >> >>>> >>>> > >> >>>> On Fri, Apr 11, 2014 at 4:54 AM, Vladimir Vivien < >>>> > >> >>>> vladimir.viv...@gmail.com> wrote: >>>> > >> >>>> >>>> > >> >>>>> Nikita >>>> > >> >>>>> Thanks for the JIRA. >>>> > >> >>>>> >>>> > >> >>>>> >>>> > >> >>>>> On Wed, Apr 9, 2014 at 2:16 PM, Vetoshkin Nikita < >>>> > >> >>>>> nikita.vetosh...@gmail.com >>>> > >> >>>>>> wrote: >>>> > >> >>>>> >>>> > >> >>>>>> BTW, there is also somehow related ticket >>>> > >> >>>>>> https://issues.apache.org/jira/browse/MESOS-930 >>>> > >> >>>>>> >>>> > >> >>>>>> >>>> > >> >>>>>> On Wed, Apr 9, 2014 at 9:54 PM, Benjamin Mahler >>>> > >> >>>>>> <benjamin.mah...@gmail.com>wrote: >>>> > >> >>>>>> >>>> > >> >>>>>>>> >>>> > >> >>>>>>>> I thought the low-level api being referred in the >>>> > >> >>>>>>>> video had to do with communication between master and >>>> > >> >>>>>> framework|executor >>>> > >> >>>>>>>> for scheduling. But, it's really administrative. I >>>> thought >>>> > that >>>> > >> >>>>> would >>>> > >> >>>>>>>> have been an opportunity for a Go binding that did not >>>> require >>>> > >> >>>>> the C++ >>>> > >> >>>>>>>> libraries. >>>> > >> >>>>>>>> >>>> > >> >>>>>>> >>>> > >> >>>>>>> Vladimir, the low-level API referred to in the talk is >>>> exactly >>>> > >> what >>>> > >> >>>>>> you're >>>> > >> >>>>>>> interpreting, it is for communication between master and >>>> > >> scheduler, >>>> > >> >>>>> and >>>> > >> >>>>>>> slave and executor. You could definitely build pure go >>>> bindings >>>> > as >>>> > >> >>>>> you >>>> > >> >>>>>>> described, just not with JSON. >>>> > >> >>>>>>> >>>> > >> >>>>>>> Forget I mentioned anything about the administrative >>>> endpoints >>>> > and >>>> > >> >>>>> JSON, >>>> > >> >>>>>> as >>>> > >> >>>>>>> I see that's leading to confusion. ;) >>>> > >> >>>>>>> >>>> > >> >>>>>>> On Wed, Apr 9, 2014 at 3:39 AM, Vladimir Vivien >>>> > >> >>>>>>> <vladimir.viv...@gmail.com>wrote: >>>> > >> >>>>>>> >>>> > >> >>>>>>>> Ben, >>>> > >> >>>>>>>> Thank you for clarifying. I thought the low-level api >>>> being >>>> > >> >>>>> referred in >>>> > >> >>>>>>> the >>>> > >> >>>>>>>> video had to do with communication between master and >>>> > >> >>>>>> framework|executor >>>> > >> >>>>>>>> for scheduling. But, it's really administrative. I >>>> thought >>>> > that >>>> > >> >>>>> would >>>> > >> >>>>>>>> have been an opportunity for a Go binding that did not >>>> require >>>> > >> >>>>> the C++ >>>> > >> >>>>>>>> libraries. >>>> > >> >>>>>>>> >>>> > >> >>>>>>>> Thanks anyway. >>>> > >> >>>>>>>> >>>> > >> >>>>>>>> >>>> > >> >>>>>>>> >>>> > >> >>>>>>>> >>>> > >> >>>>>>>> >>>> > >> >>>>>>>> >>>> > >> >>>>>>>> On Tue, Apr 8, 2014 at 4:52 PM, Benjamin Mahler >>>> > >> >>>>>>>> <benjamin.mah...@gmail.com>wrote: >>>> > >> >>>>>>>> >>>> > >> >>>>>>>>> Sorry, I was not referring to implementing a scheduler >>>> via >>>> > JSON >>>> > >> >>>>>> instead >>>> > >> >>>>>>>> of >>>> > >> >>>>>>>>> protobuf, in theory that would be possible but there has >>>> been >>>> > no >>>> > >> >>>>>>> planning >>>> > >> >>>>>>>>> in this area. Sorry for the confusion. >>>> > >> >>>>>>>>> >>>> > >> >>>>>>>>> I was referring to administrative endpoints. For example, >>>> > >> >>>>> kicking a >>>> > >> >>>>>>>>> framework out or telling the master a slave is needs to >>>> be >>>> > >> >>>>> repaired. >>>> > >> >>>>>>>> These >>>> > >> >>>>>>>>> endpoints may rely on the ability to convert JSON to >>>> internal >>>> > >> >>>>>>> protobufs. >>>> > >> >>>>>>>>> >>>> > >> >>>>>>>>> Can you clarify what you're looking to do? Are you >>>> looking to >>>> > >> >>>>>> implement >>>> > >> >>>>>>>> an >>>> > >> >>>>>>>>> API in Go that communicates with JSON instead of >>>> serialized >>>> > >> >>>>> protobuf? >>>> > >> >>>>>>>>> >>>> > >> >>>>>>>>> On Tue, Apr 8, 2014 at 1:19 PM, Vladimir Vivien >>>> > >> >>>>>>>>> <vladimir.viv...@gmail.com>wrote: >>>> > >> >>>>>>>>> >>>> > >> >>>>>>>>>> Ben, >>>> > >> >>>>>>>>>> That is exactly what I am asking. >>>> > >> >>>>>>>>>> Is that something coming up soon, is there a JIRA I can >>>> look >>>> > >> >>>>> at? >>>> > >> >>>>>>>>>> I wanna get early start on a native json Go api or even >>>> help >>>> > >> >>>>> out if >>>> > >> >>>>>>>>>> possible. >>>> > >> >>>>>>>>>> >>>> > >> >>>>>>>>>> >>>> > >> >>>>>>>>>> On Tue, Apr 8, 2014 at 3:25 PM, Benjamin Mahler >>>> > >> >>>>>>>>>> <benjamin.mah...@gmail.com>wrote: >>>> > >> >>>>>>>>>> >>>> > >> >>>>>>>>>>> +vinod, benh >>>> > >> >>>>>>>>>>> >>>> > >> >>>>>>>>>>> Hey Vladimir, there will be some authenticated REST >>>> > >> >>>>> endpoints at >>>> > >> >>>>>>> some >>>> > >> >>>>>>>>>>> point, there is some work in this area underway. >>>> > >> >>>>>>>>>>> >>>> > >> >>>>>>>>>>> We have the ability to encode protobuf messages as >>>> JSON, so >>>> > >> >>>>> the >>>> > >> >>>>>>> plan >>>> > >> >>>>>>>>> was >>>> > >> >>>>>>>>>> to >>>> > >> >>>>>>>>>>> have any REST endpoints directly use JSON to send us >>>> > >> >>>>> protobuf >>>> > >> >>>>>>>> messages. >>>> > >> >>>>>>>>>> I'm >>>> > >> >>>>>>>>>>> not sure if this is what you're asking though? >>>> > >> >>>>>>>>>>> >>>> > >> >>>>>>>>>>> >>>> > >> >>>>>>>>>>> On Tue, Apr 8, 2014 at 11:13 AM, Vetoshkin Nikita < >>>> > >> >>>>>>>>>>> nikita.vetosh...@gmail.com> wrote: >>>> > >> >>>>>>>>>>> >>>> > >> >>>>>>>>>>>> I'm not a mesos guy, just very curious. But in my >>>> opinion >>>> > >> >>>>> - I >>>> > >> >>>>>>> doubt >>>> > >> >>>>>>>>> it, >>>> > >> >>>>>>>>>>>> HTTP is synchronous request-response protocol. Mesos >>>> needs >>>> > >> >>>>>>>> something >>>> > >> >>>>>>>>>> more >>>> > >> >>>>>>>>>>>> robust for message passing. Websockets anyone? :) >>>> > >> >>>>>>>>>>>> >>>> > >> >>>>>>>>>>>> >>>> > >> >>>>>>>>>>>> On Tue, Apr 8, 2014 at 10:08 PM, Vladimir Vivien >>>> > >> >>>>>>>>>>>> <vladimir.viv...@gmail.com>wrote: >>>> > >> >>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>> Ben / Nikita >>>> > >> >>>>>>>>>>>>> Thanks for the pointers. >>>> > >> >>>>>>>>>>>>> So, (without digging yet) is it a fair summary to say >>>> > >> >>>>> that >>>> > >> >>>>>>>>> libprocess >>>> > >> >>>>>>>>>>>> wraps >>>> > >> >>>>>>>>>>>>> protobufs-encoded calls and push them over HTTP to >>>> > >> >>>>>>> master/slaves >>>> > >> >>>>>>>> ? >>>> > >> >>>>>>>>>> Will >>>> > >> >>>>>>>>>>>>> protobuf (eventually) be supplanted by direct HTTP >>>> via >>>> > >> >>>>> REST >>>> > >> >>>>>> or >>>> > >> >>>>>>>>>> similar >>>> > >> >>>>>>>>>>> ? >>>> > >> >>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>> On Mon, Apr 7, 2014 at 2:54 PM, Vetoshkin Nikita < >>>> > >> >>>>>>>>>>>>> nikita.vetosh...@gmail.com >>>> > >> >>>>>>>>>>>>>> wrote: >>>> > >> >>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>> Or, just to get to know - you can take tcpdump and >>>> > >> >>>>> take a >>>> > >> >>>>>>> look >>>> > >> >>>>>>>> :) >>>> > >> >>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>> I personally wouldn't call that HTTP. Something >>>> > >> >>>>> "HTTP-like" >>>> > >> >>>>>>>> would >>>> > >> >>>>>>>>>>>>> describe >>>> > >> >>>>>>>>>>>>>> it better. Because it's not request-response. It's >>>> > >> >>>>> just >>>> > >> >>>>>>> message >>>> > >> >>>>>>>>>>>> passing, >>>> > >> >>>>>>>>>>>>> no >>>> > >> >>>>>>>>>>>>>> need to wait for the answer - send new message one >>>> > >> >>>>> after >>>> > >> >>>>>>>> another. >>>> > >> >>>>>>>>>>> Every >>>> > >> >>>>>>>>>>>>>> message is POST with address and message type >>>> encoded >>>> > >> >>>>> in >>>> > >> >>>>>> URI: >>>> > >> >>>>>>>>> POST >>>> > >> >>>>>>>>>>>>>> /executor(1)/mesos.internal.RunTaskMessage. Sender >>>> is >>>> > >> >>>>>> encoded >>>> > >> >>>>>>>> in >>>> > >> >>>>>>>>>>>>> User-Agent >>>> > >> >>>>>>>>>>>>>> header, e.g: libprocess/slave(1)@127.0.0.1:5051. >>>> Body >>>> > >> >>>>>>> contains >>>> > >> >>>>>>>>>>>> protobuf >>>> > >> >>>>>>>>>>>>>> message, Transfer-Encoding is always "chunked". >>>> > >> >>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>> On Mon, Apr 7, 2014 at 10:42 PM, Benjamin Mahler >>>> > >> >>>>>>>>>>>>>> <benjamin.mah...@gmail.com>wrote: >>>> > >> >>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>>> Unfortunately you will need to learn this by >>>> > >> >>>>> looking at >>>> > >> >>>>>> the >>>> > >> >>>>>>>>> code >>>> > >> >>>>>>>>>> in >>>> > >> >>>>>>>>>>>>>>> libprocess, as the message passing format is not >>>> > >> >>>>>> explicitly >>>> > >> >>>>>>>>>>>> documented >>>> > >> >>>>>>>>>>>>> at >>>> > >> >>>>>>>>>>>>>>> the current time. >>>> > >> >>>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>>> Start with calls like ProtobufProcess::send() and >>>> > >> >>>>> dig >>>> > >> >>>>>> your >>>> > >> >>>>>>>> way >>>> > >> >>>>>>>>>>> down. >>>> > >> >>>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>>> On Sat, Apr 5, 2014 at 7:52 AM, Vladimir Vivien >>>> > >> >>>>>>>>>>>>>>> <vladimir.viv...@gmail.com>wrote: >>>> > >> >>>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>>>> I was watching this video from >>>> > >> >>>>>>>>>>>>>>>> >>>> https://www.youtube.com/watch?v=n5GT7OFSh58fromBen >>>> > >> >>>>>>> where >>>> > >> >>>>>>>> he >>>> > >> >>>>>>>>>>>> talked >>>> > >> >>>>>>>>>>>>>>>> about the wire protocol for Mesos being done in >>>> > >> >>>>>>>>>>>>>>>> HTTP. >>>> > >> >>>>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>>>> Where can I learn about the low-level wire >>>> > >> >>>>> protocol >>>> > >> >>>>>>> either >>>> > >> >>>>>>>> in >>>> > >> >>>>>>>>>>>>>>> documentation >>>> > >> >>>>>>>>>>>>>>>> or browsing through the code. >>>> > >> >>>>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>>>> Thanks. >>>> > >> >>>>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>>>> -- >>>> > >> >>>>>>>>>>>>>>>> Vladimir Vivien >>>> > >> >>>>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>>> -- >>>> > >> >>>>>>>>>>>>> Vladimir Vivien >>>> > >> >>>>>>>>>>>>> >>>> > >> >>>>>>>>>>>> >>>> > >> >>>>>>>>>>> >>>> > >> >>>>>>>>>> >>>> > >> >>>>>>>>>> >>>> > >> >>>>>>>>>> >>>> > >> >>>>>>>>>> -- >>>> > >> >>>>>>>>>> Vladimir Vivien >>>> > >> >>>>>>>>>> >>>> > >> >>>>>>>>> >>>> > >> >>>>>>>> >>>> > >> >>>>>>>> >>>> > >> >>>>>>>> >>>> > >> >>>>>>>> -- >>>> > >> >>>>>>>> Vladimir Vivien >>>> > >> >>>>>>>> >>>> > >> >>>>>>> >>>> > >> >>>>>> >>>> > >> >>>>> >>>> > >> >>>>> >>>> > >> >>>>> >>>> > >> >>>>> -- >>>> > >> >>>>> Vladimir Vivien >>>> > >> >>>>> >>>> > >> >>>> >>>> > >> >>>> >>>> > >> >>> >>>> > >> >> >>>> > >> >>>> > >> >>>> > > >>>> > > >>>> > > -- >>>> > > Vladimir Vivien >>>> > > >>>> > >>>> >>> >>> >> >> >> -- >> Vladimir Vivien >> > > -- Vladimir Vivien