generate api for workspace_template

This commit is contained in:
rushtehrani
2020-04-25 00:19:25 -07:00
parent 63230736d9
commit 9158ddc68d
18 changed files with 6873 additions and 3149 deletions

View 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
}