Swift is being converted to python3 in https://review.rdoproject.org/r/#/c/16478/.
While testing python3-swift with tripleo standalone, faced below Error during standalone deploy:-
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: Traceback (most recent call last):",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: File \"/usr/bin/swift-ring-builder\", line 20, in <module>",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: from swift.cli.ringbuilder import main",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: File \"/usr/lib/python3.6/site-packages/swift/cli/ringbuilder.py\", line 35, in <module>",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: from swift.common import exceptions",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: File \"/usr/lib/python3.6/site-packages/swift/common/exceptions.py\", line 17, in <module>",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: import swift.common.utils",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: File \"/usr/lib/python3.6/site-packages/swift/common/utils.py\", line 261, in <module>",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: validate_hash_conf()",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: File \"/usr/lib/python3.6/site-packages/swift/common/utils.py\", line 243, in validate_hash_conf",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: 'swift_hash_path_suffix')",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: File \"/usr/lib64/python3.6/configparser.py\", line 800, in get",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: d)",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: File \"/usr/lib64/python3.6/configparser.py\", line 394, in before_get",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: self._interpolate_some(parser, option, L, value, section, defaults, 1)",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: File \"/usr/lib64/python3.6/configparser.py\", line 444, in _interpolate_some",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: \"found: %r\" % (rest,))",
"<13>Jul 15 09:16:17 puppet-user: Notice: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: configparser.InterpolationSyntaxError: '%' must be followed by '%' or '(', found: '%SWIFT_HASH_PATH_SUFFIX%'",
"<13>Jul 15 09:16:17 puppet-user: Error: 'swift-ring-builder /etc/swift/object.builder create 10 1 1' returned 1 instead of one of [0]",
"<13>Jul 15 09:16:17 puppet-user: Error: /Stage[main]/Tripleo::Profile::Base::Swift::Ringbuilder/Swift::Ringbuilder::Create[object]/Exec[create_object]/returns: change from 'notrun' to ['0'] failed: 'swift-ring-builder /etc/swift/object.builder create 10 1 1' returned 1 instead of one of [0]".
NOTE: Issue is seen in python3 only because:-
Swift is using ConfigParser:- https://github.com/openstack/swift/blob/dca658103a63d212bdf9195fcde6038557c13401/swift/common/utils.py#L2988,
ConfigParser in python >= 3.2 is changed to SafConfigParser https://github.com/python/cpython/blob/master/Lib/configparser.py#L1224-L1234, so the issue is seen only in Python3.
The swift.conf shipped with swift package:- https://github.com/rdo-packages/swift-distgit/blob/rpm-master/swift.conf#L2 contains %SWIFT_HASH_PATH_SUFFIX%, reading it fails in python3.
The values containing %...% needs to be set by deployment tools before using services.
puppet_config for swift_ringbuilder has missing config tag(swift_config) and hence the package defaults are not overridden and hence issue is seen:- https://github.com/openstack/tripleo-heat-templates/blob/master/deployment/swift/swift-ringbuilder-container-puppet.yaml#L107
Fix proposed to branch: master /review. opendev. org/671220
Review: https:/