From d1ae418733bd44c48c38efa3d77be05f6c3af2f7 Mon Sep 17 00:00:00 2001 From: mohamedch7 <121046693+mohamedch7@users.noreply.github.com> Date: Fri, 28 Feb 2025 16:31:09 +0100 Subject: [PATCH] fix(ws): Get raw workspace yaml Signed-off-by: mohamedch7 <121046693+mohamedch7@users.noreply.github.com> --- workspaces/backend/api/workspace_yaml_handler.go | 11 +++++------ .../backend/internal/repositories/workspaces/repo.go | 11 +++++++++++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/workspaces/backend/api/workspace_yaml_handler.go b/workspaces/backend/api/workspace_yaml_handler.go index 1673358d..295a8348 100644 --- a/workspaces/backend/api/workspace_yaml_handler.go +++ b/workspaces/backend/api/workspace_yaml_handler.go @@ -17,18 +17,17 @@ limitations under the License. package api import ( + "errors" "fmt" "net/http" "github.com/julienschmidt/httprouter" - - "errors" + "sigs.k8s.io/yaml" "github.com/kubeflow/notebooks/workspaces/backend/internal/repositories/workspaces" - - "sigs.k8s.io/yaml" ) +// WorkspaceYAMLEnvelope wraps the YAML string response type WorkspaceYAMLEnvelope struct { Data string `json:"data"` } @@ -42,7 +41,7 @@ func (a *App) GetWorkspaceYAMLHandler(w http.ResponseWriter, r *http.Request, ps return } - workspace, err := a.repositories.Workspace.GetWorkspace(r.Context(), namespace, workspaceName) + rawWorkspace, err := a.repositories.Workspace.GetRawWorkspace(r.Context(), namespace, workspaceName) if err != nil { if errors.Is(err, workspaces.ErrWorkspaceNotFound) { a.notFoundResponse(w, r) @@ -52,7 +51,7 @@ func (a *App) GetWorkspaceYAMLHandler(w http.ResponseWriter, r *http.Request, ps return } - yamlBytes, err := yaml.Marshal(workspace) + yamlBytes, err := yaml.Marshal(rawWorkspace) if err != nil { a.serverErrorResponse(w, r, err) return diff --git a/workspaces/backend/internal/repositories/workspaces/repo.go b/workspaces/backend/internal/repositories/workspaces/repo.go index 88134d1a..d153ad6f 100644 --- a/workspaces/backend/internal/repositories/workspaces/repo.go +++ b/workspaces/backend/internal/repositories/workspaces/repo.go @@ -202,3 +202,14 @@ func (r *WorkspaceRepository) DeleteWorkspace(ctx context.Context, namespace, wo return nil } + +func (r *WorkspaceRepository) GetRawWorkspace(ctx context.Context, namespace string, workspaceName string) (*kubefloworgv1beta1.Workspace, error) { + workspace := &kubefloworgv1beta1.Workspace{} + if err := r.client.Get(ctx, client.ObjectKey{Namespace: namespace, Name: workspaceName}, workspace); err != nil { + if apierrors.IsNotFound(err) { + return nil, ErrWorkspaceNotFound + } + return nil, err + } + return workspace, nil +}