web: fix multiple builds query parameters for a single column
This change fixes builds query parameters when using multiple option for a single column. The filter logic needs to extend the values instead of appending a list. Otherwise the query fail with: pymysql.err.InternalError: (1241, 'Operand should contain 1 column(s)') Change-Id: Icc5bee1e7f9eaee43489a543f5459708a0ed930e
This commit is contained in:
parent
da0baca57c
commit
23d0a25d4f
|
@ -664,5 +664,10 @@ class TestBuildInfo(ZuulDBTestCase, BaseTestWeb):
|
|||
resp = self.get_url("api/tenant/tenant-one/build/1234")
|
||||
self.assertEqual(404, resp.status_code)
|
||||
|
||||
builds_query = self.get_url("api/tenant/tenant-one/builds?"
|
||||
"project=org/project&"
|
||||
"project=org/project1").json()
|
||||
self.assertEqual(len(builds_query), 6)
|
||||
|
||||
resp = self.get_url("api/tenant/non-tenant/builds")
|
||||
self.assertEqual(404, resp.status_code)
|
||||
|
|
|
@ -402,12 +402,16 @@ class ZuulWebAPI(object):
|
|||
"patchset", "ref", "newrev"):
|
||||
v = locals()[k]
|
||||
if v:
|
||||
args['buildset_filters'].setdefault(k, []).append(v)
|
||||
if not isinstance(v, list):
|
||||
v = [v]
|
||||
args['buildset_filters'].setdefault(k, []).extend(v)
|
||||
for k in ("uuid", "job_name", "voting", "node_name",
|
||||
"result"):
|
||||
v = locals()[k]
|
||||
if v:
|
||||
args['build_filters'].setdefault(k, []).append(v)
|
||||
if not isinstance(v, list):
|
||||
v = [v]
|
||||
args['build_filters'].setdefault(k, []).extend(v)
|
||||
data = connection.get_builds(args)
|
||||
resp = cherrypy.response
|
||||
resp.headers['Access-Control-Allow-Origin'] = '*'
|
||||
|
|
Loading…
Reference in New Issue