It seems as though you're trying to send a 'RegisterFrameworkMessage' but
you're actually encoding a 'FrameworkInfo'?

The error message indicates that your binary data is not matching the
expected format.


On Fri, May 9, 2014 at 4:29 AM, Vladimir Vivien
<vladimir.viv...@gmail.com>wrote:

> 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
>

Reply via email to