“EDP internal” I meant current EDP specific code. And since job configs are 
job-specific
 I’d prefer to have urls containing /jobs or at least /edp for that.

Regards,
Alexander Ignatov



On 24 Jan 2014, at 23:20, Matthew Farrellee <m...@redhat.com> wrote:

> what do you consider "EDP internal", and how does it relate to the v1.1 or v2 
> API?
> 
> i'm ok with making it plugin independent. i'd just suggest moving it out of 
> /jobs and to something like /extra/config-hints/{type}, maybe along with 
> /extra/validations/config.
> 
> best,
> 
> 
> matt
> 
> On 01/22/2014 06:25 AM, Alexander Ignatov wrote:
>> Current EDP config-hints are not only plugin specific. Several types of jobs
>> must have certain key/values and without it job will fail. For instance,
>> MapReduce (former Jar) job type requires Mapper/Reducer classes parameters
>> to be set[1]. Moreover, for such kind of jobs we already have separated
>> configuration defaults [2]. Also initial versions of patch implementing
>> config-hints contained plugin-independent defaults for all each job types 
>> [3].
>> I remember we postponed decision about which configs are commmon for all
>> plugins and agreed to show users all vanilla-specific defaults. That's why 
>> now
>> we have several TODOs in the code about config-hints should be 
>> plugin-specific.
>> 
>> So I propose to leave config-hints REST call in EDP internal and make it
>> plugin-independent (or job-specific) by removing of parsing all 
>> vanilla-specific
>> defaults and define small list of configs which is definitely common for 
>> each type of jobs.
>> The first things come to mind:
>> - For MapReduce jobs it's already defined in [1]
>> - Configs like number of map and reduce tasks are common for all type of jobs
>> - At least user always has an ability to set any key/value(s) as 
>> params/arguments for job
>> 
>> 
>> [1] http://docs.openstack.org/developer/savanna/userdoc/edp.html#workflow
>> [2] 
>> https://github.com/openstack/savanna/blob/master/savanna/service/edp/resources/mapred-job-config.xml
>> [3] https://review.openstack.org/#/c/45419/10
>> 
>> Regards,
>> Alexander Ignatov
>> 
>> 
>> 
>> On 20 Jan 2014, at 22:04, Matthew Farrellee <m...@redhat.com> wrote:
>> 
>>> On 01/20/2014 12:50 PM, Andrey Lazarev wrote:
>>>> Inlined.
>>>> 
>>>> 
>>>> On Mon, Jan 20, 2014 at 8:15 AM, Matthew Farrellee <m...@redhat.com
>>>> <mailto:m...@redhat.com>> wrote:
>>>> 
>>>>    (inline, trying to make this readable by a text-only mail client
>>>>    that doesn't use tabs to indicate quoting)
>>>> 
>>>>    On 01/20/2014 02:50 AM, Andrey Lazarev wrote:
>>>> 
>>>>                 ------
>>>>                 FIX - @rest.get('/jobs/config-hints/____<job_type>') -
>>>>        should move to
>>>>                 GET /plugins/<plugin_name>/<____plugin_version>, similar to
>>>>                 get_node_processes
>>>>                 and get_required_image_tags
>>>>                 ------
>>>>                 Not sure if it should be plugin specific right now. EDP
>>>>        uses it
>>>>                 to show some
>>>>                 configs to users in the dashboard. it's just a cosmetic
>>>>        thing.
>>>>                 Also when user
>>>>                 starts define some configs for some job he might not define
>>>>                 cluster yet and
>>>>                 thus plugin to run this job. I think we should leave it
>>>>        as is
>>>>                 and leave only
>>>>                 abstract configs like Mapper/Reducer class and allow
>>>>        users to
>>>>                 apply any
>>>>                 key/value configs if needed.
>>>> 
>>>> 
>>>>             FYI, the code contains comments suggesting it should be
>>>>        plugin specific.
>>>> 
>>>>        
>>>> https://github.com/openstack/____savanna/blob/master/savanna/____service/edp/workflow_creator/____workflow_factory.py#L179
>>>>        
>>>> <https://github.com/openstack/__savanna/blob/master/savanna/__service/edp/workflow_creator/__workflow_factory.py#L179>
>>>> 
>>>>        
>>>> <https://github.com/openstack/__savanna/blob/master/savanna/__service/edp/workflow_creator/__workflow_factory.py#L179
>>>>        
>>>> <https://github.com/openstack/savanna/blob/master/savanna/service/edp/workflow_creator/workflow_factory.py#L179>>
>>>> 
>>>>             IMHO, the EDP should have no plugin specific dependencies.
>>>> 
>>>>             If it currently does, we should look into why and see if we
>>>>        can't
>>>>             eliminate this entirely.
>>>> 
>>>>        [AL] EDP uses plugins in two ways:
>>>>        1. for HDFS user
>>>>        2. for config hints
>>>>        I think both items should not be plugin specific on EDP API
>>>>        level. But
>>>>        implementation should go to plugin and call plugin API for result.
>>>> 
>>>> 
>>>>    In fact they are both plugin specific. The user is forced to click
>>>>    through a plugin selection (when launching a job on transient
>>>>    cluster) or the plugin selection has already occurred (when
>>>>    launching a job on an existing cluster).
>>>> 
>>>>    Since the config is something that is plugin specific, you might not
>>>>    have hbase hints from vanilla but you would from hdp, and you
>>>>    already have plugin information whenever you ask for a hint, my view
>>>>    that this be under the /plugins namespace is growing stronger.
>>>> 
>>>> 
>>>> [AL] Disagree. They are plugin specific, but EDP itself could have
>>>> additional plugin-independent logic inside. Now config hints return EDP
>>>> properties (like mapred.input.dir) as well as plugin-specific
>>>> properties. Placing it under /plugins namespace will give a vision that
>>>> it is fully plugin specific.
>>>> 
>>>> I like to see EDP API fully plugin independent and in one workspace. If
>>>> core side needs some information internally it can easily go into the
>>>> plugin.
>>> 
>>> I'm not sure if we're disagreeing. We may, in fact, be in violent agreement.
>>> 
>>> The EDP API is fully plugin independent, and should stay that way as a 
>>> project goal. config-hints is extra data that the horizon app can use to 
>>> help give users suggestions about what config they may want to optionally 
>>> add to their job. Those config options are independent of the job and 
>>> specific to the cluster where the job will run, which is the purview of the 
>>> plugin.
>>> 
>>> Moving config-hints out of the EDP API will make this even more clear.
>>> 
>>> Best,
>>> 
>>> 
>>> matt
>>> 
>>> _______________________________________________
>>> OpenStack-dev mailing list
>>> OpenStack-dev@lists.openstack.org
>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
>> 
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev@lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
> 
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev@lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


_______________________________________________
OpenStack-dev mailing list
OpenStack-dev@lists.openstack.org
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

Reply via email to