[ 
https://issues.apache.org/jira/browse/AMBARI-12439?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Oleksandr Diachenko updated AMBARI-12439:
-----------------------------------------
    Description: 
h3. Problem
Some services' components could have dependency to be collocated with at least 
one component from list.
For example, component X requires DATANODE or NAMENODE to be installed on the 
same host.
As for now we can define only strict dependencies to all of three components, 
like this: 
{code:xml}
                <dependency>
                    <name>HDFS/DATANODE</name>
                    <scope>host</scope>
                    <auto-deploy>
                        <enabled>true</enabled>
                    </auto-deploy>
                </dependency>
                <dependency>
                    <name>HDFS/NAMENODE</name>
                    <scope>host</scope>
                    <auto-deploy>
                        <enabled>true</enabled>
                    </auto-deploy>
                </dependency>
{code}
Literally Ambari supports only AND operator.
But this definition will ask user to install both components, not only one of 
them.
h3. Proposal
For that sake it would be nice to support more complex definitions of 
dependencies, OR operator as well.
For example:
{code:xml}
                <dependency>
                    <name>(HDFS/DATANODE|HDFS/NAMENODE)</name>
                    <scope>host</scope>
                    <auto-deploy>
                        <enabled>true</enabled>
                    </auto-deploy>
                </dependency>
{code} - means component requires at least one of DATANODE or NAMENODE 
components.

  was:
Some services' components could have dependency to be collocated with at least 
one component from list.
For example, component X requires DATANODE or NAMENODE to be installed on the 
same host.
As for now we can define only strict dependencies to all of three components, 
like this: 
{code:xml}
                <dependency>
                    <name>HDFS/DATANODE</name>
                    <scope>host</scope>
                    <auto-deploy>
                        <enabled>true</enabled>
                    </auto-deploy>
                </dependency>
                <dependency>
                    <name>HDFS/NAMENODE</name>
                    <scope>host</scope>
                    <auto-deploy>
                        <enabled>true</enabled>
                    </auto-deploy>
                </dependency>
{code}
But this definition will ask user to install both components, not only one of 
them.
For that sake it would be nice to support more complex definitions of 
dependencies.
For example:
{code:xml}
                <dependency>
                    <name>(HDFS/DATANODE|HDFS/NAMENODE)</name>
                    <scope>host</scope>
                    <auto-deploy>
                        <enabled>true</enabled>
                    </auto-deploy>
                </dependency>
{code} - means component requires at least one of DATANODE or NAMENODE 
components.


> Implement support of logical expressions in dependencies for stack components
> -----------------------------------------------------------------------------
>
>                 Key: AMBARI-12439
>                 URL: https://issues.apache.org/jira/browse/AMBARI-12439
>             Project: Ambari
>          Issue Type: New Feature
>          Components: ambari-server, ambari-web, stacks
>    Affects Versions: 1.7.0
>            Reporter: Oleksandr Diachenko
>
> h3. Problem
> Some services' components could have dependency to be collocated with at 
> least one component from list.
> For example, component X requires DATANODE or NAMENODE to be installed on the 
> same host.
> As for now we can define only strict dependencies to all of three components, 
> like this: 
> {code:xml}
>                 <dependency>
>                     <name>HDFS/DATANODE</name>
>                     <scope>host</scope>
>                     <auto-deploy>
>                         <enabled>true</enabled>
>                     </auto-deploy>
>                 </dependency>
>                 <dependency>
>                     <name>HDFS/NAMENODE</name>
>                     <scope>host</scope>
>                     <auto-deploy>
>                         <enabled>true</enabled>
>                     </auto-deploy>
>                 </dependency>
> {code}
> Literally Ambari supports only AND operator.
> But this definition will ask user to install both components, not only one of 
> them.
> h3. Proposal
> For that sake it would be nice to support more complex definitions of 
> dependencies, OR operator as well.
> For example:
> {code:xml}
>                 <dependency>
>                     <name>(HDFS/DATANODE|HDFS/NAMENODE)</name>
>                     <scope>host</scope>
>                     <auto-deploy>
>                         <enabled>true</enabled>
>                     </auto-deploy>
>                 </dependency>
> {code} - means component requires at least one of DATANODE or NAMENODE 
> components.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to