Escaping % signs?

Hi! I’ve written a module and am bumping up against an issue when I try to include a percent sign in one of the parameters, e.g.:

supervisor_prog:
name: smlp-data
user: smlp
command: java blah-blah-blah
environment: PATH=‘/usr/java/jdk1.8.0_11/bin:%(ENV_PATH)s’

Notice the % sign in the environment param above . . . that’s causing ConfigParser to choke with:
ConfigParser.InterpolationMissingOptionError: Bad value substitution:
section: [program:smlp-data]
option : environment
key : env_path
rawval : ’

I would really like to escape that in my module code . . . anyone know if it’s possible to escape that when I bring in the param here?
self._environment = module.params[‘environment’]

Or do I need to escape it in my call to the module . . i tried using {% raw %}…{% endraw %} - which I saw somewhere else on the mailing list - but that failed with a syntax error.

Thanks a lot,

Guy

Ah! Narrowing it down, the problem is actually with the ConfigParser module . . . I have a supervisor config that has the line:

environment: PATH=‘/usr/java/jdk1.8.0_11/bin:%(ENV_PATH)s’

and ConfigParser chokes whenever it tries to process that line:

from ConfigParser import SafeConfigParser
c = SafeConfigParser()
c.read(‘/etc/supervisor.d/sidecar-data’)
[‘/etc/supervisor.d/sidecar-data’]
c.sections()
[‘program:sidecar-data’]
c.items(‘program:sidecar-data’)
Traceback (most recent call last):
File “”, line 1, in
File “/usr/lib64/python2.6/ConfigParser.py”, line 578, in items
for option in options]
File “/usr/lib64/python2.6/ConfigParser.py”, line 614, in _interpolate
self._interpolate_some(option, L, rawval, section, vars, 1)
File “/usr/lib64/python2.6/ConfigParser.py”, line 646, in _interpolate_some
option, section, rest, var)
ConfigParser.InterpolationMissingOptionError: Bad value substitution:
section: [program:sidecar-data]
option : environment
key : env_path
rawval : ’

Any ideas?

Thanks again!!

I figured it out!! RawConfigParser “does not support the magical interpolation behavior”