python-jenkins-developers team mailing list archive
-
python-jenkins-developers team
-
Mailing list archive
-
Message #00524
[Bug 1775176] Re: use of locals() is picking up unencoded variables, breaking requests
It looks like I got the commit sha1 wrong for the cause of the variable
bleeding. I am not sure what commit introduced the usage of locals, but
is for sure how we got into the decoding problem. We are fixing this on
our end by sanitizing the variable before calling get_node_config
--
You received this bug notification because you are a member of Python
Jenkins Developers, which is subscribed to Python Jenkins.
https://bugs.launchpad.net/bugs/1775176
Title:
use of locals() is picking up unencoded variables, breaking requests
Status in Python Jenkins:
New
Bug description:
Jenkins uses a few unicode characters in places likes node labels. In
our case, the labels exist in the function executing the request to
get the node configuration, but the use of 'locals()' is picking that
up and breaking on urllib:
File "/opt/mita/src/mita/mita/util.py", line 341, in get_node_labels
xml_configuration = _xml_configuration or conn.get_node_config(node_name)
File "/opt/mita/local/lib/python2.7/site-packages/jenkins/__init__.py", line 1314, in get_node_config
get_config_url = self._build_url(CONFIG_NODE, locals())
File "/opt/mita/local/lib/python2.7/site-packages/jenkins/__init__.py", line 292, in _build_url
url_path = format_spec % self._get_encoded_params(variables)
File "/opt/mita/local/lib/python2.7/site-packages/jenkins/__init__.py", line 283, in _get_encoded_params
params[k] = quote(v)
File "/usr/lib/python2.7/urllib.py", line 1299, in quote
return ''.join(map(quoter, s))
KeyError: u'\u2018'
The commit that introduced this issue is: https://git.openstack.org/cgit/openstack/python-jenkins/commit/?id=827f28a223b03b4ffa025346081141cb1e6a5988
I would advise against the use of locals(), because it is tremendously
easy to cause undesired side-effects that are hard to detect (it took
us a while to understand where this character was coming from)
To manage notifications about this bug go to:
https://bugs.launchpad.net/python-jenkins/+bug/1775176/+subscriptions
References