mirror of
https://github.com/onepanelio/onepanel.git
synced 2025-10-16 02:31:04 +08:00
generate api for workspace_template
This commit is contained in:
35
server/workspace_template_server.go
Normal file
35
server/workspace_template_server.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package server
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/onepanelio/core/api"
|
||||
v1 "github.com/onepanelio/core/pkg"
|
||||
"github.com/onepanelio/core/server/auth"
|
||||
)
|
||||
|
||||
type WorkspaceTemplateServer struct{}
|
||||
|
||||
func NewWorkspaceTemplateServer() *WorkspaceTemplateServer {
|
||||
return &WorkspaceTemplateServer{}
|
||||
}
|
||||
|
||||
func (s *WorkspaceTemplateServer) CreateWorkspaceTemplate(ctx context.Context, req *api.CreateWorkspaceTemplateRequest) (*api.WorkspaceTemplate, error) {
|
||||
client := ctx.Value("kubeClient").(*v1.Client)
|
||||
allowed, err := auth.IsAuthorized(client, req.Namespace, "create", "argoproj.io", "workflowtemplates", "")
|
||||
if err != nil || !allowed {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
workspaceTemplate := v1.WorkspaceTemplate{
|
||||
Name: req.WorkspaceTemplate.Name,
|
||||
Manifest: req.WorkspaceTemplate.Manifest,
|
||||
}
|
||||
|
||||
err = client.CreateWorkspaceTemplate(req.Namespace, workspaceTemplate)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
return req.WorkspaceTemplate, nil
|
||||
}
|
Reference in New Issue
Block a user