2016-12-16 08:22:55 |
SeanBoran |
description |
Detailed bug description:
After updating a Fuel environment from 9.0 to 9.1, environments with LDAP can no longer be created
Steps to reproduce:
Create a new env, enable the LDAP plugin, add some settings and click "Save Settings".
Expected results: LDAP plugin enabled.
Actual result:
the error message appears:
"Cannot enable plugin with legacy tasks unless propagate_task_deploy attribute is set. Ensure tasks.yaml is empty and all tasks has version >= 2.0.0."
Reproducibility: On environments created on 9.0 and upgraded or new envs on 9.1
Description of the environment:
Fuel env upgraded from 9.0 a few days ago according to https://docs.mirantis.com/openstack/fuel/fuel-9.1/release-notes/update-product/update-master-9-9-1.html
Operation system: CentOS Linux release 7.2.1511 Versions of components: LDAP plugin from master branch
Impact: can no longer use a critical component.
Possibly related bugs #1639393 #1619228
Attempted fix:
So the latest version of fuel-plugin-ldap was downloaded and installed, whose most recent commit adds "version: 2.0.0" to deployment_tasks.yaml, which seems useful, but this not help things.
Analysis:
It seems to be kicked in by /usr/lib/python2.7/site-packages/nailgun/plugins/manager.py line 100, cls.contains_legacy_tasks() (about line 44), which checks that version is at least 2.0.0
So, added in a statement to log the version:
def contains_legacy_tasks(cls, plugin):
.....
task_version = StrictVersion(task.get('version', '0.0.0'))
logger.warning('DEBUG Check task version min=%s ver=%s task=%s, plugin=%s', min_task_version, task_version, format(task), format(plugin) )
Which gives
Check task version min=2.0 ver=1.0 task={'task_name': u'ldap_plugin', 'parameters': {u'puppet_modules': u'puppet/modules/:/etc/puppet/modules/', u'puppet_manifest': u'puppet/manifests/controller_site.pp', u'timeout': 3600, 'cwd': '/etc/fuel/plugins/ldap-3.0/'}, 'requires': [u'keystone-db', u'keystone', u'horizon'], 'version': u'1.0.0', 'groups': [u'primary-controller', u'controller'], 'required_for': [u'deploy_end'], 'type': 'puppet', 'id': u'ldap_plugin'}, plugin=<nailgun.plugins.adapters.PluginAdapterV3 object at 0x66db310>
Which shows that 1.0.0 is detected!!
But /var/www/nailgun/plugins/ldap-3.0/deployment_tasks.yaml has:
- id: ldap_plugin
type: puppet
version: 2.0.0
and there is no trace of a "1.0.0" in the sources under /var/www/nailgun/plugins/ldap-3.0
Can someone help me understand what is going here, or suggest tips? |
Detailed bug description:
After updating a Fuel environment from 9.0 to 9.1, environments with LDAP can no longer be created
Steps to reproduce:
Create a new env, enable the LDAP plugin, add some settings and click "Save Settings".
Expected results: LDAP plugin enabled.
Actual result:
the error message appears:
"Cannot enable plugin with legacy tasks unless propagate_task_deploy attribute is set. Ensure tasks.yaml is empty and all tasks has version >= 2.0.0."
Reproducibility: On environments created on 9.0 and upgraded or new envs on 9.1
Description of the environment:
Fuel env upgraded from 9.0 a few days ago according to https://docs.mirantis.com/openstack/fuel/fuel-9.1/release-notes/update-product/update-master-9-9-1.html
Operation system: CentOS Linux release 7.2.1511 Versions of components: LDAP plugin from master branch
Impact: can no longer use a critical component.
Possibly related bugs #1639393 #1619228
Attempted fix:
So the latest version of fuel-plugin-ldap was downloaded and installed, whose most recent commit adds "version: 2.0.0" to deployment_tasks.yaml, which seems useful, but this did not help things.
Analysis:
It seems to be kicked in by /usr/lib/python2.7/site-packages/nailgun/plugins/manager.py line 100, cls.contains_legacy_tasks() (about line 44), which checks that version is at least 2.0.0
So, added in a statement to log the version:
def contains_legacy_tasks(cls, plugin):
.....
task_version = StrictVersion(task.get('version', '0.0.0'))
logger.warning('DEBUG Check task version min=%s ver=%s task=%s, plugin=%s', min_task_version, task_version, format(task), format(plugin) )
Which gives
Check task version min=2.0 ver=1.0 task={'task_name': u'ldap_plugin', 'parameters': {u'puppet_modules': u'puppet/modules/:/etc/puppet/modules/', u'puppet_manifest': u'puppet/manifests/controller_site.pp', u'timeout': 3600, 'cwd': '/etc/fuel/plugins/ldap-3.0/'}, 'requires': [u'keystone-db', u'keystone', u'horizon'], 'version': u'1.0.0', 'groups': [u'primary-controller', u'controller'], 'required_for': [u'deploy_end'], 'type': 'puppet', 'id': u'ldap_plugin'}, plugin=<nailgun.plugins.adapters.PluginAdapterV3 object at 0x66db310>
Which shows that 1.0.0 is detected!!
But /var/www/nailgun/plugins/ldap-3.0/deployment_tasks.yaml has:
- id: ldap_plugin
type: puppet
version: 2.0.0
and there is no trace of a "1.0.0" in the sources under /var/www/nailgun/plugins/ldap-3.0
Can someone help me understand what is going here, or suggest tips? |
|