This is an automated email from the ASF dual-hosted git repository. machristie pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/airavata-cookiecutter-django-app.git
commit 3d256c54e18c822b7cb0d76dc4adb2ce0a45e1e4 Author: Marcus Christie <[email protected]> AuthorDate: Mon Aug 29 14:42:00 2022 -0400 Adding queue_settings_calculators.py boilerplate --- .../{{cookiecutter.project_slug}}/apps.py | 5 +++++ .../queue_settings_calculators.py | 23 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/apps.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/apps.py index b8af0d7..3d8838f 100644 --- a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/apps.py +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/apps.py @@ -24,3 +24,8 @@ class {{ cookiecutter.app_config_class_name }}(AppConfig): # description of *nav* in # https://apache-airavata-django-portal.readthedocs.io/en/latest/dev/new_django_app/#appconfig-settings # for more details for more details. + + def ready(self) -> None: + # Uncomment to register your queue settings calculators. See TODO + # from {{ cookiecutter.project_slug }} import queue_settings_calculators # noqa + pass diff --git a/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/queue_settings_calculators.py b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/queue_settings_calculators.py new file mode 100644 index 0000000..df7ba89 --- /dev/null +++ b/{{cookiecutter.project_slug}}/{{cookiecutter.project_slug}}/queue_settings_calculators.py @@ -0,0 +1,23 @@ +from airavata.model.experiment.ttypes import ExperimentModel +from airavata_django_portal_sdk.decorators import queue_settings_calculator + +# See TODO for more information +@queue_settings_calculator( + id="{{ cookiecutter.project_slug}}-my-queue-settings-calculator", name="{{ cookiecutter.project_name}}: My Queue Settings Calculator" +) +def my_queue_settings_calculator(request, experiment_model: ExperimentModel): + # See https://airavata.apache.org/api-docs/master/experiment_model.html#Struct_ExperimentModel for ExperimentModel fields + + # TODO: Implement logic here to determine appropriate queue settings for experiment_model + total_core_count = 4 + queue_name = "shared" + node_count = 1 + walltime_limit = 30 + + # Return a dictionary with the queue settings values + result = {} + result["totalCPUCount"] = total_core_count + result["queueName"] = queue_name + result["nodeCount"] = node_count + result["wallTimeLimit"] = walltime_limit + return result
