Get ePolyScat run lifecycle working: SDK enum compat, resource surfac…#4
Open
Softicles wants to merge 1 commit into
Open
Get ePolyScat run lifecycle working: SDK enum compat, resource surfac…#4Softicles wants to merge 1 commit into
Softicles wants to merge 1 commit into
Conversation
…ing, nullable schema, runs UI Related fixes and enhancements so the ePolyScat run create/submit lifecycle works end-to-end and the runs listing reflects the new design. Each change is described with STAR (Situation, Task, Action, Result). SDK enum API compatibility (models.py, views.py) - Situation: The installed airavata-python-sdk generates ExperimentState and DataType as enum.IntEnum, but the code still used the old Thrift-generated _VALUES_TO_NAMES / _NAMES_TO_VALUES lookup dicts, which no longer exist. - Task: Restore enum<->name lookups in a way compatible with the IntEnum API. - Action: Replaced _VALUES_TO_NAMES[x] with EnumType(x).name and _NAMES_TO_VALUES[name] with EnumType[name].value across experiment-status and output data-type handling. - Result: Status tracking and output-type resolution no longer raise AttributeError; experiment state is read correctly. Expose the compute resource on the Run API (serializers.py) - Situation: The runs listing needed to show which compute resource each run targets, but RunSerializer did not expose a `resource` field. - Task: Surface the resource in the run's API representation. - Action: Enabled the `resource` SerializerMethodField and added "resource" to RunSerializer.Meta.fields. - Result: The API returns each run's resource (e.g. login.expanse.sdsc.edu). Align the Run DB schema with nullable model fields (migrations/0023) - Situation: Creating a run via the API failed with HTTP 500 "NOT NULL constraint failed: epolyscat_django_app_run.experiment_id" because the database still enforced NOT NULL on columns the model declares nullable. - Task: Bring the schema in line with the model so a run can be created without an experiment/root. - Action: Generated the missing migration altering experiment, filepath, number and root on run. - Result: Run creation succeeds and experiment-less runs persist. Redesign the Runs table (Runs.vue) - Situation: The runs table showed a Last Modified column, sorted by date, with one action set for every context and no way to filter. - Task: Match the new design—show the target resource, allow filtering, and tailor row actions to the viewing context. - Action: Added a filter search box, replaced Last Modified with a Resource column (sorted by resource name), and split row actions into an All-Runs set (clone, delete) versus a view/tutorial set (remove, clone, submit/resubmit, delete); refreshed layout and icons. - Result: Runs are filterable, display their resource, and show context-appropriate actions.
Open
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
SDK enum API compatibility (models.py, views.py)
Expose the compute resource on the Run API (serializers.py)
resourcefield.resourceSerializerMethodField and added "resource" to RunSerializer.Meta.fields.Align the Run DB schema with nullable model fields (migrations/0023)
Redesign the Runs table (Runs.vue)