yasithdev opened a new pull request, #202: URL: https://github.com/apache/airavata-portals/pull/202
Part of the Track D proto-native serializer rewrite (retire the interim Thrift-type adapter layer, family by family, REST contract byte-for-byte preserved). This is the largest coupled family — the experiment read tree and the application interfaces share the Input/Output serializers, so they migrate together. ## What - **Input/Output**: read the gRPC `InputDataObjectType`/`OutputDataObjectType` directly (DataType → member name; `metaData` proto-'' → null via new `ProtoStoredJSONField`); `create()` builds the proto. - **ApplicationInterfaceDescriptionSerializer**: proto-native read + write (nested inputs/outputs; `showQueueSettings`/`queueSettingsCalculatorId` DB handling preserved); `_update_input_metadata` reads proto fields. - **Experiment tree**: full proto-native `ExperimentSerializer` replicating the entire processes → tasks → jobs tree (each with its status list), userConfiguration + scheduling, inputs/outputs, status, errors. Preserves the subtle ISO-vs-int timestamp quirks byte-for-byte (top-level `experimentStatus` = ISO; nested process-tree statuses + nested job `creationTime` = raw int; standalone `JobSerializer` `creationTime` = ISO). State/type enums → Thrift ints. `save()` builds the proto incl. the writable nested `userConfigurationData` + `computationalResourceScheduling`. - Repoint every experiment/interface consumer to pass protobuf through (ExperimentViewSet instance/create/update/launch/jobs/clone, ProjectViewSet.experiments, FullExperimentViewSet + nested module/compute/project/jobs with proto DataType comparisons, ApplicationInterfaceViewSet, ApplicationModuleViewSet actions, output_views, workspace.edit_experiment, ExperimentArchiveView, _user_storage_path). - Remove the experiment-tree + interface + io adapters and the now-unused Thrift imports. **NOTE:** the EXECUTING-only `intermediateOutput` enrichment still calls the legacy `experiment_util` (Thrift) with a proto experiment — a parked concern tracked with the experiment_util migration; it is best-effort (try/except) and never runs for the validated non-EXECUTING cases. ## Validation - Byte-for-byte (experiment full tree, job, input, output, interface) vs the old adapter+serializer `.data`. - Write paths (experiment incl. nested scheduling; interface incl. nested I/O) produce equivalent protos. - `manage.py check` green; api test failures unchanged vs `origin/main`. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
