Deprecated puppet parameters cause Cinder Netapp backend to fail

Bug #1782376 reported by Alan Bishop on 2018-07-18
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
tripleo
Medium
Alan Bishop

Bug Description

A few puppet-cinder Netapp parameters that have been deprecated for a
while, and were removed in Rocky [1],[2].

[1] https://review.openstack.org/569640
[2] https://review.openstack.org/570406

But, in Ocata..Queens, empty strings cause the Netapp Cinder backend to fail
even though the TripleO deployment succeeds. Puppet was upgraded from 3.x to
4.x during Ocata, and an empty string is no longer treated as boolean False.

This has the side effect of causing another Netapp parameter to be assigned an
invalid value, which in turn causes the Netapp Cinder driver to fail to
initialize. From /etc/cinder/cinder.conf:

  netapp_pool_name_search_pattern=()

The "()" value triggers this error:

2018-06-23 03:41:24.981 57 DEBUG cinder.volume.drivers.netapp.dataontap.block_cmode [req-67a71ecd-6539-460d-b750-094189b1c91b - - - - -] Volume 'My-Pool' does not match ^()$ _get_flexvol_to_pool_map /usr/lib/python2.7/site-packages/cinder/volume/drivers/netapp/dataontap/block_cmode.py:373
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager [req-67a71ecd-6539-460d-b750-094189b1c91b - - - - -] Failed to initialize driver.: NetAppDriverException: No pools are available for provisioning volumes. Ensure that the configuration option netapp_pool_name_search_pattern is set correctly.
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager Traceback (most recent call last):
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/cinder/volume/manager.py", line 457, in init_host
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager self.driver.check_for_setup_error()
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/cinder/volume/drivers/netapp/dataontap/iscsi_cmode.py", line 44, in check_for_setup_error
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager self.library.check_for_setup_error()
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/cinder/utils.py", line 849, in trace_method_logging_wrapper
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager return f(*args, **kwargs)
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/cinder/utils.py", line 849, in trace_method_logging_wrapper
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager return f(*args, **kwargs)
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager File "/usr/lib/python2.7/site-packages/cinder/volume/drivers/netapp/dataontap/block_cmode.py", line 109, in check_for_setup_error
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager raise exception.NetAppDriverException(msg)
2018-06-23 03:41:24.981 57 ERROR cinder.volume.manager NetAppDriverException: No pools are available for provisioning volumes. Ensure that the configuration option netapp_pool_name_search_pattern is set correctly.

Changed in tripleo:
milestone: none → rocky-3
no longer affects: tripleo/ocata
no longer affects: tripleo/pike
no longer affects: tripleo/queens
Changed in tripleo:
milestone: rocky-3 → rocky-rc1
Changed in tripleo:
milestone: rocky-rc1 → stein-1

Reviewed: https://review.openstack.org/583734
Committed: https://git.openstack.org/cgit/openstack/puppet-tripleo/commit/?id=3eea8289f0ba91e73631e9698ae8cefed29e2185
Submitter: Zuul
Branch: stable/queens

commit 3eea8289f0ba91e73631e9698ae8cefed29e2185
Author: Alan Bishop <email address hidden>
Date: Wed Jul 18 15:41:52 2018 -0400

    [Ocata,Pike,Queens-Only] Fix Cinder's Netapp backend

    The cinder::backend::netapp resource has logic to determine whether
    deprecated parameters are in use. THT supplies empty strings for default
    values, which worked fine with Puppet 3.x, where empty strings are treated
    as boolean False. When TripleO upgraded to Puppet 4.x in Ocata, the empty
    strings are now treated as boolean True. This results in an invalid
    configuration, which causes the Netapp backend to fail.

    This is not an issue in Rocky, where the deprecated parameters are
    being removed.

    Closes-Bug: #1782376
    Change-Id: I38d175361e7ad3fe38c27bbdc6d29dc6587635dc

tags: added: in-stable-queens

This issue was fixed in the openstack/puppet-tripleo 8.3.5 release.

Reviewed: https://review.openstack.org/587918
Committed: https://git.openstack.org/cgit/openstack/puppet-tripleo/commit/?id=a8def9cb204ce1ce96347fafa8cd031e35af76c2
Submitter: Zuul
Branch: stable/pike

commit a8def9cb204ce1ce96347fafa8cd031e35af76c2
Author: Alan Bishop <email address hidden>
Date: Wed Jul 18 15:41:52 2018 -0400

    [Ocata,Pike,Queens-Only] Fix Cinder's Netapp backend

    The cinder::backend::netapp resource has logic to determine whether
    deprecated parameters are in use. THT supplies empty strings for default
    values, which worked fine with Puppet 3.x, where empty strings are treated
    as boolean False. When TripleO upgraded to Puppet 4.x in Ocata, the empty
    strings are now treated as boolean True. This results in an invalid
    configuration, which causes the Netapp backend to fail.

    This is not an issue in Rocky, where the deprecated parameters are
    being removed.

    Closes-Bug: #1782376
    Change-Id: I38d175361e7ad3fe38c27bbdc6d29dc6587635dc
    (cherry picked from commit 3eea8289f0ba91e73631e9698ae8cefed29e2185)

tags: added: in-stable-pike

This issue was fixed in the openstack/puppet-tripleo 7.4.16 release.

Changed in tripleo:
milestone: stein-1 → stein-2
Changed in tripleo:
milestone: stein-2 → stein-3
Changed in tripleo:
milestone: stein-3 → train-1
Changed in tripleo:
status: Triaged → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers