Uploaded image for project: 'Airavata'
  1. Airavata
  2. AIRAVATA-3695

new optional list Thrift property causes error in thrift_utils if not present in request

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • None
    • Django Portal
    • None
    • Easy

    Description

      [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'
      

      thrift_utils.py assumes that every field will be present even when the field is optional/nullable.

      Attachments

        Activity

          People

            marcuschristie Marcus Christie
            marcuschristie Marcus Christie
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: