+ Bernd, who has done some fetcher work, including additional testing, for
MESOS-1316, MESOS-1945, and MESOS-336

On Mon, Nov 3, 2014 at 9:04 AM, Dominic Hamon <dha...@twopensource.com>
wrote:

> Hi Ankur
>
> I think this is a great approach. It makes the code much simpler,
> extensible, and more testable. Anyone that's heard me rant knows I am a big
> fan of unit tests over integration tests, so this shouldn't surprise anyone
> :)
>
> If you haven't already, please read the documentation on contributing to
> Mesos and the style guide to ensure all the naming is as expected, then you
> can push the patch to reviewboard to get it reviewed and committed.
>
> On Mon, Nov 3, 2014 at 12:49 AM, Ankur Chauhan <an...@malloc64.com> wrote:
>
>> Hi,
>>
>> I did some learning today! This is pretty much a very rough draft of the
>> tests/refactor of mesos-fetcher that I have come up with. Again, If there
>> are some obvious mistakes, please let me know. (this is my first pass after
>> all).
>> https://github.com/ankurcha/mesos/compare/prefer_2
>>
>> My main intention is to break the logic of the fetcher info some very
>> discrete components that i can write tests against. I am still re-learning
>> cpp/mesos code styles etc so I may be a little slow to catch up but I would
>> really appreciate any comments and/or suggestions.
>>
>> -- Ankur
>> @ankurcha
>>
>> On 2 Nov 2014, at 18:17, Ankur Chauhan <an...@malloc64.com> wrote:
>>
>> Hi,
>>
>> I noticed that the current set of tests in `src/tests/fetcher_tests.cpp`
>> is pretty coarse grained and are more on the lines of a functional test. I
>> was going to add some tests but it seems like if I am to do that I would
>> need to add a test dependency on hadoop.
>>
>> As an alternative, I propose adding a good set of unit tests around the
>> methods used by `src/launcher/fetcher.cpp` and `src/hdfs/hdfs.cpp`. This
>> should be able to catch a good portion of cases at the same time keeping
>> the dependencies and runtime of tests low. What do you guys thing about
>> this?
>>
>> PS: I am pretty green in terms of gtest and the overall c++ testing
>> methodology. Can someone give me pointers to good examples of tests in the
>> codebase.
>>
>> -- Ankur
>>
>> On 1 Nov 2014, at 22:54, Adam Bordelon <a...@mesosphere.io> wrote:
>>
>> Thank you Ankur. At first glance, it looks great. We'll do a more
>> thorough review of it very soon.
>> I know Tim St. Clair had some ideas for fixing MESOS-1711
>> <https://issues.apache.org/jira/browse/MESOS-1711>; he may want to
>> review too.
>>
>> On Sat, Nov 1, 2014 at 8:49 PM, Ankur Chauhan <an...@malloc64.com> wrote:
>>
>>> Hi Tim,
>>>
>>> I just created a review https://reviews.apache.org/r/27483/ It's my
>>> first stab at it and I will try to add more tests as I figure out how to do
>>> the hadoop mocking and stuff. Have a look and let me know what you think
>>> about it so far.
>>>
>>> -- Ankur
>>>
>>> On 1 Nov 2014, at 20:05, Ankur Chauhan <an...@malloc64.com> wrote:
>>>
>>> Yea, i saw that the minute i pressed send. I'll start the review board
>>> so that people can have a look at the change.
>>>
>>> -- Ankur
>>>
>>> On 1 Nov 2014, at 20:01, Tim Chen <t...@mesosphere.io> wrote:
>>>
>>> Hi Ankur,
>>>
>>> There is a fetcher_tests.cpp in src/tests.
>>>
>>> Tim
>>>
>>> On Sat, Nov 1, 2014 at 7:27 PM, Ankur Chauhan <an...@malloc64.com>
>>> wrote:
>>>
>>>> Hi Tim,
>>>>
>>>> I am trying to find/write some test cases. I couldn't find a
>>>> fetcher_tests.{cpp|hpp} so once I have something, I'll post on review
>>>> board. I am new to gmock/gtest so bear with me while i get up to speed.
>>>>
>>>> -- Ankur
>>>>
>>>> On 1 Nov 2014, at 19:23, Timothy Chen <t...@mesosphere.io> wrote:
>>>>
>>>> Hi Ankur,
>>>>
>>>> Can you post on reviewboard? We can discuss more about the code there.
>>>>
>>>> Tim
>>>>
>>>> Sent from my iPhone
>>>>
>>>> On Nov 1, 2014, at 6:29 PM, Ankur Chauhan <an...@malloc64.com> wrote:
>>>>
>>>> Hi Tim,
>>>>
>>>> I don't think there is an issue which is directly in line with what i
>>>> wanted but the closest one that I could find in JIRA is
>>>> https://issues.apache.org/jira/browse/MESOS-1711
>>>>
>>>> I have a branch (
>>>> https://github.com/ankurcha/mesos/compare/prefer_hadoop_fetcher ) that
>>>> has a change that would enable users to specify whatever hdfs compatible
>>>> uris to the mesos-fetcher but maybe you can weight in on it. Do you think
>>>> this is the right track? if so, i would like to pick this issue and submit
>>>> a patch for review.
>>>>
>>>> -- Ankur
>>>>
>>>>
>>>> On 1 Nov 2014, at 04:32, Tom Arnfeld <t...@duedil.com> wrote:
>>>>
>>>> Completely +1 to this. There are now quite a lot of hadoop compatible
>>>> filesystem wrappers out in the wild and this would certainly be very 
>>>> useful.
>>>>
>>>> I'm happy to contribute a patch. Here's a few related issues that might
>>>> be of interest;
>>>>
>>>> - https://issues.apache.org/jira/browse/MESOS-1887
>>>> - https://issues.apache.org/jira/browse/MESOS-1316
>>>> - https://issues.apache.org/jira/browse/MESOS-336
>>>> - https://issues.apache.org/jira/browse/MESOS-1248
>>>>
>>>> On 31 October 2014 22:39, Tim Chen <t...@mesosphere.io> wrote:
>>>>
>>>>> I believe there is already a JIRA ticket for this, if you search for
>>>>> fetcher in Mesos JIRA I think you can find it.
>>>>>
>>>>> Tim
>>>>>
>>>>> On Fri, Oct 31, 2014 at 3:27 PM, Ankur Chauhan <an...@malloc64.com>
>>>>> wrote:
>>>>>
>>>>>> Hi,
>>>>>>
>>>>>> I have been looking at some of the stuff around the fetcher and saw
>>>>>> something interesting. The code for fetcher::fetch method is dependent 
>>>>>> on a
>>>>>> hard coded list of url schemes. No doubt that this works but is very
>>>>>> restrictive.
>>>>>> Hadoop/HDFS in general is pretty flexible when it comes to being able
>>>>>> to fetch stuff from urls and has the ability to fetch a large number of
>>>>>> types of urls and can be extended by adding configuration into the
>>>>>> conf/hdfs-site.xml and core-site.xml
>>>>>>
>>>>>> What I am proposing is that we refactor the fetcher.cpp to prefer to
>>>>>> use the hdfs (using hdfs/hdfs.hpp) to do all the fetching if HADOOP_HOME 
>>>>>> is
>>>>>> set and $HADOOP_HOME/bin/hadoop is available. This logic already exists 
>>>>>> and
>>>>>> we can just use it. The fallback logic for using net::download or local
>>>>>> file copy is may be left in place for installations that do not have 
>>>>>> hadoop
>>>>>> configured. This means that if hadoop is present we can directly fetch 
>>>>>> urls
>>>>>> such as tachyon://... snackfs:// ... cfs:// .... ftp://... s3://...
>>>>>> http:// ... file:// with no extra effort. This makes up for a much
>>>>>> better experience when it comes to debugging and extensibility.
>>>>>>
>>>>>> What do others think about this?
>>>>>>
>>>>>> - Ankur
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>>
>
>
> --
> Dominic Hamon | @mrdo | Twitter
> *There are no bad ideas; only good ideas that go horribly wrong.*
>

Reply via email to