Marcus Christie created AIRAVATA-3695:
-----------------------------------------
Summary: new optional list Thrift property causes error in
thrift_utils if not present in request
Key: AIRAVATA-3695
URL: https://issues.apache.org/jira/browse/AIRAVATA-3695
Project: Airavata
Issue Type: Bug
Components: Django Portal
Reporter: Marcus Christie
Assignee: Marcus Christie
{code}
[2023-04-19 20:59:43,639 django_airavata.apps.api.exceptions:63 ERROR] API
exception
Traceback (most recent call last):
File
"/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/views.py",
line 506, in dispatch
response = handler(request, *args, **kwargs)
File
"/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/mixins.py",
line 68, in update
self.perform_update(serializer)
File
"/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/views.py",
line 225, in perform_update
experiment = serializer.save(
File
"/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/serializers.py",
line 200, in save
self.instance = self.update(self.instance, validated_data)
File
"/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
line 148, in update
return self.create(validated_data)
File
"/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
line 144, in create
params = self.process_nested_fields(validated_data)
File
"/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
line 139, in process_nested_fields
params[field_name] = serializer.create(
File
"/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
line 144, in create
params = self.process_nested_fields(validated_data)
File
"/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/thrift_utils.py",
line 129, in process_nested_fields
if (params[field_name] is not None or
KeyError: 'autoScheduledCompResourceSchedulingList'
{code}
thrift_utils.py assumes that every field will be present even when the field is
optional/nullable.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)