Comment 0 for bug 1538617

Revision history for this message
Dmitriy Kruglov (dkruglov) wrote :

The following plugins have display restrictions due to their dependencies on other plugins:
- fuel-plugin-detach-keystone (depends on fuel-plugin-detach-database one)
- fuel-plugin-zabbix-snmptrapd (depends on fuel-plugin-external-zabbix one)
- fuel-plugin-zabbix-monitoring-emc (depends on fuel-plugin-zabbix-snmptrapd one)
- fuel-plugin-zabbix-monitoring-extreme-networks (depends on fuel-plugin-zabbix-snmptrapd one)

Currently display restriction for these plugins is defined in a way that will prevent Settings tab from rendering, if the corresponding plugin-dependecy is not already installed.

Steps to reproduce:
1 On Fuel master install a plugin (from the above mentioned list), but not install the dependency
2 In Fuel UI create an environment, navigate to Settings tab

Expected result: Settings tab is opened, on Other section the plugin is displayed as disabled (plugin selection checkbox is inactive) and has a yellow triangle with a pop-up warning
Actual result: Settings tab is not rendered, the following js error can be observed via browser devtools "Uncaught TypeError: Value of settings:detach-database.metadata.enabled is undefined. Set options.strict to false to allow undefined values."

=========

The RC is likely that the condition restriction (defined in environment_config.yaml file) tries to evaluate a non-existing key of plugin metadata (due to the specified plugin is not installed) e.g.
    restrictions:
      - condition: "settings:detach-database.metadata.enabled == false"
        message: "Detach Database plugin should be installed and enabled."
However the following condition works well (and this is how it is documented in Fuel plugins wiki):
    restrictions:
      - condition: "settings:detach-database == null or settings:detach-database.metadata.enabled == false"
        strict: false
        message: "Detach Database plugin should be installed and enabled."