pulp / pulp-oci-images

Containerfiles and other assets for building Pulp 3 OCI images
https://docs.pulpproject.org/pulp_oci_images/
30 stars 55 forks source link

Django 500 Server Error when browsing Pulp API v3 endpoints #629

Closed chtaylo2 closed 4 months ago

chtaylo2 commented 4 months ago

Version 3.50.2

Describe the bug Using the podman-compose -f images/compose/compose.yml as is from this repository, unable to access Pulp API over web browser. Using curl, API works. Trace logs below. Maybe there is a Django setting needed, but I've failed in finding one that works.

To Reproduce

  1. GIT clone latest pulp-oci-images repo
  2. Start single use containers with podman-compose
  3. Navigate to http://[server]:8080/pulp/apiu/v3/status/ (web browser)
  4. Server Error (500)

Expected behavior Would expect to be able to view the API documentation and ability to submit API calls.

Additional context

I've added the following items to settings.py which allow /auth/login/ URI to function, but continue to receive the API error.

CSRF_TRUSTED_ORIGINS = ['http://[server].[domain].com']
LOGIN_REDIRECT_URL = "/pulp/api/v3/"

Trace logs from the 500 Error below.

40778026a9f7 10.26.161.30 - - [17/Apr/2024:04:06:08 +0000] "GET /pulp/api/v3/status/ HTTP/1.1" 500 145 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.4.1 Safari/605.1.15"
b1e711a4ee09 Traceback (most recent call last):
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/core/handlers/exception.py", line 55, in inner
b1e711a4ee09     response = get_response(request)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/core/handlers/base.py", line 220, in _get_response
b1e711a4ee09     response = response.render()
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/response.py", line 114, in render
b1e711a4ee09     self.content = self.rendered_content
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/rest_framework/response.py", line 74, in rendered_content
b1e711a4ee09     ret = renderer.render(self.data, accepted_media_type, context)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/rest_framework/renderers.py", line 725, in render
b1e711a4ee09     template = loader.get_template(self.template)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/loader.py", line 15, in get_template
b1e711a4ee09     return engine.get_template(template_name)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/backends/django.py", line 33, in get_template
b1e711a4ee09     return Template(self.engine.get_template(template_name), self)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/engine.py", line 175, in get_template
b1e711a4ee09     template, origin = self.find_template(template_name)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/engine.py", line 157, in find_template
b1e711a4ee09     template = loader.get_template(name, skip=skip)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/loaders/cached.py", line 57, in get_template
b1e711a4ee09     template = super().get_template(template_name, skip)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/loaders/base.py", line 28, in get_template
b1e711a4ee09     return Template(
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 154, in __init__
b1e711a4ee09     self.nodelist = self.compile_nodelist()
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 200, in compile_nodelist
b1e711a4ee09     return parser.parse()
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 513, in parse
b1e711a4ee09     raise self.error(token, e)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 511, in parse
b1e711a4ee09     compiled_result = compile_func(self, token)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/loader_tags.py", line 232, in do_block
b1e711a4ee09     nodelist = parser.parse(("endblock",))
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 513, in parse
b1e711a4ee09     raise self.error(token, e)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 511, in parse
b1e711a4ee09     compiled_result = compile_func(self, token)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/loader_tags.py", line 232, in do_block
b1e711a4ee09     nodelist = parser.parse(("endblock",))
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 513, in parse
b1e711a4ee09     raise self.error(token, e)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 511, in parse
b1e711a4ee09     compiled_result = compile_func(self, token)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/loader_tags.py", line 232, in do_block
b1e711a4ee09     nodelist = parser.parse(("endblock",))
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 513, in parse
b1e711a4ee09     raise self.error(token, e)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 511, in parse
b1e711a4ee09     compiled_result = compile_func(self, token)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/defaulttags.py", line 953, in do_if
b1e711a4ee09     nodelist = parser.parse(("elif", "else", "endif"))
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 513, in parse
b1e711a4ee09     raise self.error(token, e)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/base.py", line 511, in parse
b1e711a4ee09     compiled_result = compile_func(self, token)
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/library.py", line 130, in compile_func
b1e711a4ee09     args, kwargs = parse_bits(
b1e711a4ee09   File "/usr/local/lib/python3.9/site-packages/django/template/library.py", line 362, in parse_bits
b1e711a4ee09     raise TemplateSyntaxError(
b1e711a4ee09 django.template.exceptions.TemplateSyntaxError: 'optional_logout' did not receive value(s) for the argument(s): 'csrf_token'
mdellweg commented 4 months ago

This is a dupe. https://github.com/pulp/pulpcore/issues/5250

However I'm not sure where it should be tracked.

chtaylo2 commented 4 months ago

@mdellweg - Thanks, this helped trace the issue. I think the actual bug is in pulpcore. I'll post some findings to https://github.com/pulp/pulpcore/issues/5250 and you can close this as a dup.

chtaylo2 commented 4 months ago

Duplicate