The GitHub Actions job "Build and push images" on texera.git/main has failed.
Run started by GitHub user bobbai00 (triggered by bobbai00).

Head commit for run:
0467c76529981b3951bceb33eedf6bcc776f16a3 / Ryan Zhang 
<[email protected]>
feat(python-notebook-migration): add notebook migration orchestration service 
(#5262)

### What changes were proposed in this PR?
Introduces `NotebookMigrationService`, the frontend orchestration
service that sits between the migration-tool UI and the lower layers:
the LLM client (`migration-tool-llm-client`) and the backend
notebook-migration microservice
(`migration-tool-backend-notebook-migration-service`).

**`notebook-migration.service.ts`**
- `getAvailableModels()` — `GET /api/models` against the existing
LiteLLM proxy, returns the model dropdown options.
- `sendToAIGenerateWorkflow(notebook, modelType)` — drives the full
`NotebookMigrationLLM` lifecycle (initialize → verify connection →
convert → close in `finally`) and returns `{ workflowContent,
mappingContent }`.
- `sendNotebookToJupyter(notebookData)` — `POST
/api/notebook-migration/set-notebook`; surfaces a `NotificationService`
toast on success and failure; returns `1` / `0`.
- `getJupyterURL()`, `getJupyterIframeURL()` — calls the matching
microservice endpoints to retrieve URLs to embed.
- `storeNotebookAndMapping(wid, vid, mappingContent, notebookContent)` —
`POST /api/notebook-migration/store-notebook-and-mapping`; returns the
`HttpClient` observable directly so callers can compose with
`switchMap`.
- Mapping cache — small in-memory dictionary `{ [key: string]:
MappingContent }` keyed by `mapping_wid_<workflowId>`, with
`hasMapping`, `getMapping`, `setMapping`, `deleteMapping`.

  **`notebook-migration.service.spec.ts`**
- `getAvailableModels`: maps the LiteLLM `data[].id` array correctly;
falls back to an empty array on HTTP error.
- `sendNotebookToJupyter`: success → returns `1`; error → returns `0`
and toasts.
- `getJupyterURL` / `getJupyterIframeURL`: success → returns the URL;
non-OK response or thrown error → returns `null`.
- Mapping cache: `setMapping` then `getMapping` round-trips;
`deleteMapping` removes the entry.
- `storeNotebookAndMapping`: makes the expected `POST` to the
persistence endpoint.


### Any related issues, documentation, discussions?
Closes #5261 
Parent issue #4301 


### How was this PR tested?
The new `notebook-migration.service.spec.ts` adds
`HttpClientTestingModule`-driven test cases



### Was this PR authored or co-authored using generative AI tooling?
Generated-by: Claude Code (Claude Opus 4.7)

Report URL: https://github.com/apache/texera/actions/runs/29797411062

With regards,
GitHub Actions via GitBox

Reply via email to