summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichal Skalski <mskalski@mirantis.com>2016-01-28 17:15:30 +0100
committerStefan Berg <sfb@consultron.com>2016-01-29 14:26:19 +0100
commitb45aae2ef26e40410610c755d72fcee407dd8867 (patch)
tree64027c88cf001461a7c1b3c4a6f1e057936acb20
parent19f52239658b8e8b905acf4e8613db51f8d03e02 (diff)
Support new plugin configuration schema
In Fuel 8.0 it is possible to install many version of the same plugin. Because of that there is additonal structurce in plugin configuration. Assumption is that we only use one version of the plugin. Change-Id: I50d5bc32dd6dab6fe2541748dd8404d887e336e0 Signed-off-by: Michal Skalski <mskalski@mirantis.com> (cherry picked from commit e47ffb12088f4e2a2e679c4343602c09f9ff1525)
-rw-r--r--deploy/cloud/configure_settings.py20
1 files changed, 15 insertions, 5 deletions
diff --git a/deploy/cloud/configure_settings.py b/deploy/cloud/configure_settings.py
index 052634f99..b60a60fd1 100644
--- a/deploy/cloud/configure_settings.py
+++ b/deploy/cloud/configure_settings.py
@@ -54,12 +54,22 @@ class ConfigureSettings(object):
backup(settings_yaml)
settings = self.dea.get_property('settings')
# Copy fuel defined plugin_id's to user defined settings
+ # From Fuel 8.0 chosen_id was added because it is now
+ # possible to install many version of the same plugin
+ # but we will install only one version
for plugin in orig_dea['editable']:
- if 'metadata' in orig_dea['editable'][plugin] and 'plugin_id' in orig_dea['editable'][plugin]['metadata']:
- if not plugin in settings['editable']:
- settings['editable'][plugin] = orig_dea['editable'][plugin]
- else:
- settings['editable'][plugin]["metadata"]["plugin_id"] = orig_dea['editable'][plugin]["metadata"]["plugin_id"]
+ if 'metadata' in orig_dea['editable'][plugin]:
+ if 'plugin_id' in orig_dea['editable'][plugin]['metadata']:
+ if not plugin in settings['editable']:
+ settings['editable'][plugin] = orig_dea['editable'][plugin]
+ else:
+ settings['editable'][plugin]["metadata"]["plugin_id"] = orig_dea['editable'][plugin]["metadata"]["plugin_id"]
+ elif 'chosen_id' in orig_dea['editable'][plugin]['metadata']:
+ if not plugin in settings['editable']:
+ settings['editable'][plugin] = orig_dea['editable'][plugin]
+ else:
+ settings['editable'][plugin]['metadata']['chosen_id'] = orig_dea['editable'][plugin]['metadata']['chosen_id']
+ settings['editable'][plugin]['metadata']['versions'][0]['metadata']['plugin_id'] = orig_dea['editable'][plugin]['metadata']['versions'][0]['metadata']['plugin_id']
with io.open(settings_yaml, 'w') as stream:
yaml.dump(settings, stream, default_flow_style=False)