We already swap out some stuff [1] and register new config loaders [2] with paste. I think we can work around this entirely within Swift.
I share Dmitriy's concern about existing, running clusters, though -- we've allowed interpolation (if only out of ignorance), so the safest assumption is that somebody has deployed a system that uses it. I don't want to break them, so using raw=True doesn't seem right.
At the same time, it looks like py3's ConfigParser most-closely maps to py2's SafeConfigParser, and the more-forgiving interpolation from py2's ConfigParser is just gone.
We already swap out some stuff [1] and register new config loaders [2] with paste. I think we can work around this entirely within Swift.
I share Dmitriy's concern about existing, running clusters, though -- we've allowed interpolation (if only out of ignorance), so the safest assumption is that somebody has deployed a system that uses it. I don't want to break them, so using raw=True doesn't seem right.
At the same time, it looks like py3's ConfigParser most-closely maps to py2's SafeConfigParser, and the more-forgiving interpolation from py2's ConfigParser is just gone.
I think what I proposed at https:/ /review. opendev. org/#/c/ 685455/ should be a recent work-around?
Sorry; at least as it stands now, it does mean that any configs written out with the "1%%" workaround are going to break on upgrade, though.
[1] https:/ /github. com/openstack/ swift/blob/ 2.22.0/ swift/common/ wsgi.py# L72 /github. com/openstack/ swift/blob/ 2.22.0/ swift/common/ wsgi.py# L101-L102
[2] https:/