You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ma...@apache.org on 2022/08/29 18:51:16 UTC
[airavata-django-portal] 04/11: AIRAVATA-3649 Only include queueSettingsCalculatorId if it exists
This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/airavata-django-portal.git
commit 2d355f570f87306560f6169de0d2f7dbc4d2eb1d
Author: Marcus Christie <ma...@apache.org>
AuthorDate: Thu Aug 25 14:57:06 2022 -0400
AIRAVATA-3649 Only include queueSettingsCalculatorId if it exists
This is to gracefully handle situation where queue
settings calculator is unavailable (for example, if it isn't installed).
---
django_airavata/apps/api/serializers.py | 10 ++++++++--
django_airavata/apps/api/views.py | 8 ++++----
2 files changed, 12 insertions(+), 6 deletions(-)
diff --git a/django_airavata/apps/api/serializers.py b/django_airavata/apps/api/serializers.py
index 5ed02848..6618f9e4 100644
--- a/django_airavata/apps/api/serializers.py
+++ b/django_airavata/apps/api/serializers.py
@@ -60,7 +60,11 @@ from airavata.model.workspace.ttypes import (
NotificationPriority,
Project
)
-from airavata_django_portal_sdk import experiment_util, user_storage
+from airavata_django_portal_sdk import (
+ experiment_util,
+ queue_settings_calculators,
+ user_storage
+)
from django.conf import settings
from django.contrib.auth import get_user_model
from django.urls import reverse
@@ -344,7 +348,9 @@ class ApplicationInterfaceDescriptionSerializer(
application_settings, created = models.ApplicationSettings.objects.get_or_create(
application_module_id=application_module_id)
representation["showQueueSettings"] = application_settings.show_queue_settings
- representation["queueSettingsCalculatorId"] = application_settings.queue_settings_calculator_id
+ # check that queue_settings_calculator_id exists
+ if queue_settings_calculators.exists(application_settings.queue_settings_calculator_id):
+ representation["queueSettingsCalculatorId"] = application_settings.queue_settings_calculator_id
return representation
def create(self, validated_data):
diff --git a/django_airavata/apps/api/views.py b/django_airavata/apps/api/views.py
index f1d8d6e0..051ba669 100644
--- a/django_airavata/apps/api/views.py
+++ b/django_airavata/apps/api/views.py
@@ -25,7 +25,7 @@ from airavata.model.group.ttypes import ResourcePermissionType
from airavata.model.user.ttypes import Status
from airavata_django_portal_sdk import (
experiment_util,
- queue_settings,
+ queue_settings_calculators,
user_storage
)
from django.conf import settings
@@ -1872,10 +1872,10 @@ class QueueSettingsCalculatorViewSet(mixins.ListModelMixin, mixins.RetrieveModel
serializer_class = serializers.QueueSettingsCalculatorSerializer
def get_list(self):
- return queue_settings.get_all()
+ return queue_settings_calculators.get_all()
def get_instance(self, lookup_value):
- calcs = queue_settings.get_all()
+ calcs = queue_settings_calculators.get_all()
calc = [calc for calc in calcs if calc.id == lookup_value]
if len(calc) == 0:
return None
@@ -1887,5 +1887,5 @@ class QueueSettingsCalculatorViewSet(mixins.ListModelMixin, mixins.RetrieveModel
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
experiment_model = serializer.save()
- result = queue_settings.calculate_queue_settings(pk, request, experiment_model)
+ result = queue_settings_calculators.calculate_queue_settings(pk, request, experiment_model)
return Response(result)