Hi,

i have custom service which provides more components [1].
All components are installed from deb packages and i don't wanna install
all packages on all nodes (just component specific) so i try to use
condition [2] but it ends with error:
"resource_management.core.exceptions.Fail: Condition with name
'should_install_confluent_supervisor', when installing package supervisor.
Please check package_conditions.py."

I check source code and it look's [3] like there is hardcoded package
"resource_management.libraries.functions".

In 2.2 i was able to use param exclude_packages in install method. How i
can achieve same functionality in 2.4? Did i miss something?

Thanks for help.

[1]
I have list of all packages in metainfo.xml
For example:
<osSpecifics>
  <osSpecific>
    <osFamily>ubuntu14</osFamily>
    <packages>
      <package>
        <name>supervisor</name>
        <condition>should_install_supervisor</condition>
      </package>
      <package>
        <name>apache</name>
        <condition>should_install_apache</condition>
      </package>
    </packages>
  </<osSpecific>
</osSpecifics>

def should_install_supervisor():
    config = Script.get_config()
    # _has_applicable_local_component is copied
from 
ambari-common/src/main/python/resource_management/libraries/functions/package_conditions.py
    return _has_applicable_local_component(config, ["MY_SERVICE"])

[3]
https://github.com/apache/ambari/blob/release-2.4.2/ambari-common/src/main/python/resource_management/libraries/script/script.py#L592

-- 
Save The World - http://www.worldcommunitygrid.org/
http://www.worldcommunitygrid.org/stat/viewMemberInfo.do?userName=LesTR

LesTR

Reply via email to