Merge "zuul-web: key endpoint: return 404 when tenant or project not found"
This commit is contained in:
commit
11709e7044
|
@ -267,6 +267,12 @@ class TestWeb(BaseTestWeb):
|
||||||
self.assertEqual(resp.content, public_pem)
|
self.assertEqual(resp.content, public_pem)
|
||||||
self.assertIn('text/plain', resp.headers.get('Content-Type'))
|
self.assertIn('text/plain', resp.headers.get('Content-Type'))
|
||||||
|
|
||||||
|
resp = self.get_url("api/tenant/non-tenant/key/org/project.pub")
|
||||||
|
self.assertEqual(404, resp.status_code)
|
||||||
|
|
||||||
|
resp = self.get_url("api/tenant/tenant-one/key/org/no-project.pub")
|
||||||
|
self.assertEqual(404, resp.status_code)
|
||||||
|
|
||||||
def test_web_404_on_unknown_tenant(self):
|
def test_web_404_on_unknown_tenant(self):
|
||||||
resp = self.get_url("api/tenant/non-tenant/status")
|
resp = self.get_url("api/tenant/non-tenant/status")
|
||||||
self.assertEqual(404, resp.status_code)
|
self.assertEqual(404, resp.status_code)
|
||||||
|
|
|
@ -354,7 +354,12 @@ class RPCListener(object):
|
||||||
def handle_key_get(self, job):
|
def handle_key_get(self, job):
|
||||||
args = json.loads(job.arguments)
|
args = json.loads(job.arguments)
|
||||||
tenant = self.sched.abide.tenants.get(args.get("tenant"))
|
tenant = self.sched.abide.tenants.get(args.get("tenant"))
|
||||||
(trusted, project) = tenant.getProject(args.get("project"))
|
project = None
|
||||||
|
if tenant:
|
||||||
|
(trusted, project) = tenant.getProject(args.get("project"))
|
||||||
|
if not project:
|
||||||
|
job.sendWorkComplete("")
|
||||||
|
return
|
||||||
job.sendWorkComplete(
|
job.sendWorkComplete(
|
||||||
encryption.serialize_rsa_public_key(project.public_key))
|
encryption.serialize_rsa_public_key(project.public_key))
|
||||||
|
|
||||||
|
|
|
@ -289,6 +289,9 @@ class ZuulWebAPI(object):
|
||||||
def key(self, tenant, project):
|
def key(self, tenant, project):
|
||||||
job = self.rpc.submitJob('zuul:key_get', {'tenant': tenant,
|
job = self.rpc.submitJob('zuul:key_get', {'tenant': tenant,
|
||||||
'project': project})
|
'project': project})
|
||||||
|
if not job.data:
|
||||||
|
raise cherrypy.HTTPError(
|
||||||
|
404, 'Project %s does not exist.' % project)
|
||||||
resp = cherrypy.response
|
resp = cherrypy.response
|
||||||
resp.headers['Access-Control-Allow-Origin'] = '*'
|
resp.headers['Access-Control-Allow-Origin'] = '*'
|
||||||
resp.headers['Content-Type'] = 'text/plain'
|
resp.headers['Content-Type'] = 'text/plain'
|
||||||
|
|
Loading…
Reference in New Issue