add terminate workflow service

This commit is contained in:
rushtehrani
2020-02-06 14:29:21 -08:00
parent 3c0122582c
commit c66a7f6c50
7 changed files with 355 additions and 66 deletions

View File

@@ -7,6 +7,7 @@ import (
context "context"
fmt "fmt"
proto "github.com/golang/protobuf/proto"
empty "github.com/golang/protobuf/ptypes/empty"
_ "google.golang.org/genproto/googleapis/api/annotations"
grpc "google.golang.org/grpc"
codes "google.golang.org/grpc/codes"
@@ -166,6 +167,53 @@ func (m *WatchWorkflowRequest) GetName() string {
return ""
}
type TerminateWorkflowRequest struct {
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
}
func (m *TerminateWorkflowRequest) Reset() { *m = TerminateWorkflowRequest{} }
func (m *TerminateWorkflowRequest) String() string { return proto.CompactTextString(m) }
func (*TerminateWorkflowRequest) ProtoMessage() {}
func (*TerminateWorkflowRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_892c7f566756b0be, []int{3}
}
func (m *TerminateWorkflowRequest) XXX_Unmarshal(b []byte) error {
return xxx_messageInfo_TerminateWorkflowRequest.Unmarshal(m, b)
}
func (m *TerminateWorkflowRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
return xxx_messageInfo_TerminateWorkflowRequest.Marshal(b, m, deterministic)
}
func (m *TerminateWorkflowRequest) XXX_Merge(src proto.Message) {
xxx_messageInfo_TerminateWorkflowRequest.Merge(m, src)
}
func (m *TerminateWorkflowRequest) XXX_Size() int {
return xxx_messageInfo_TerminateWorkflowRequest.Size(m)
}
func (m *TerminateWorkflowRequest) XXX_DiscardUnknown() {
xxx_messageInfo_TerminateWorkflowRequest.DiscardUnknown(m)
}
var xxx_messageInfo_TerminateWorkflowRequest proto.InternalMessageInfo
func (m *TerminateWorkflowRequest) GetNamespace() string {
if m != nil {
return m.Namespace
}
return ""
}
func (m *TerminateWorkflowRequest) GetName() string {
if m != nil {
return m.Name
}
return ""
}
type GetWorkflowLogsRequest struct {
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
@@ -180,7 +228,7 @@ func (m *GetWorkflowLogsRequest) Reset() { *m = GetWorkflowLogsRequest{}
func (m *GetWorkflowLogsRequest) String() string { return proto.CompactTextString(m) }
func (*GetWorkflowLogsRequest) ProtoMessage() {}
func (*GetWorkflowLogsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_892c7f566756b0be, []int{3}
return fileDescriptor_892c7f566756b0be, []int{4}
}
func (m *GetWorkflowLogsRequest) XXX_Unmarshal(b []byte) error {
@@ -242,7 +290,7 @@ func (m *ListWorkflowsRequest) Reset() { *m = ListWorkflowsRequest{} }
func (m *ListWorkflowsRequest) String() string { return proto.CompactTextString(m) }
func (*ListWorkflowsRequest) ProtoMessage() {}
func (*ListWorkflowsRequest) Descriptor() ([]byte, []int) {
return fileDescriptor_892c7f566756b0be, []int{4}
return fileDescriptor_892c7f566756b0be, []int{5}
}
func (m *ListWorkflowsRequest) XXX_Unmarshal(b []byte) error {
@@ -296,7 +344,7 @@ func (m *ListWorkflowsResponse) Reset() { *m = ListWorkflowsResponse{} }
func (m *ListWorkflowsResponse) String() string { return proto.CompactTextString(m) }
func (*ListWorkflowsResponse) ProtoMessage() {}
func (*ListWorkflowsResponse) Descriptor() ([]byte, []int) {
return fileDescriptor_892c7f566756b0be, []int{5}
return fileDescriptor_892c7f566756b0be, []int{6}
}
func (m *ListWorkflowsResponse) XXX_Unmarshal(b []byte) error {
@@ -343,7 +391,7 @@ func (m *LogEntry) Reset() { *m = LogEntry{} }
func (m *LogEntry) String() string { return proto.CompactTextString(m) }
func (*LogEntry) ProtoMessage() {}
func (*LogEntry) Descriptor() ([]byte, []int) {
return fileDescriptor_892c7f566756b0be, []int{6}
return fileDescriptor_892c7f566756b0be, []int{7}
}
func (m *LogEntry) XXX_Unmarshal(b []byte) error {
@@ -394,7 +442,7 @@ func (m *Workflow) Reset() { *m = Workflow{} }
func (m *Workflow) String() string { return proto.CompactTextString(m) }
func (*Workflow) ProtoMessage() {}
func (*Workflow) Descriptor() ([]byte, []int) {
return fileDescriptor_892c7f566756b0be, []int{7}
return fileDescriptor_892c7f566756b0be, []int{8}
}
func (m *Workflow) XXX_Unmarshal(b []byte) error {
@@ -469,7 +517,7 @@ func (m *WorkflowParameter) Reset() { *m = WorkflowParameter{} }
func (m *WorkflowParameter) String() string { return proto.CompactTextString(m) }
func (*WorkflowParameter) ProtoMessage() {}
func (*WorkflowParameter) Descriptor() ([]byte, []int) {
return fileDescriptor_892c7f566756b0be, []int{8}
return fileDescriptor_892c7f566756b0be, []int{9}
}
func (m *WorkflowParameter) XXX_Unmarshal(b []byte) error {
@@ -508,6 +556,7 @@ func init() {
proto.RegisterType((*CreateWorkflowRequest)(nil), "api.CreateWorkflowRequest")
proto.RegisterType((*GetWorkflowRequest)(nil), "api.GetWorkflowRequest")
proto.RegisterType((*WatchWorkflowRequest)(nil), "api.WatchWorkflowRequest")
proto.RegisterType((*TerminateWorkflowRequest)(nil), "api.TerminateWorkflowRequest")
proto.RegisterType((*GetWorkflowLogsRequest)(nil), "api.GetWorkflowLogsRequest")
proto.RegisterType((*ListWorkflowsRequest)(nil), "api.ListWorkflowsRequest")
proto.RegisterType((*ListWorkflowsResponse)(nil), "api.ListWorkflowsResponse")
@@ -519,63 +568,66 @@ func init() {
func init() { proto.RegisterFile("workflow.proto", fileDescriptor_892c7f566756b0be) }
var fileDescriptor_892c7f566756b0be = []byte{
// 883 bytes of a gzipped FileDescriptorProto
// 944 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x51, 0x6f, 0x1b, 0x45,
0x10, 0xd6, 0xc6, 0x4d, 0x88, 0xa7, 0x72, 0x53, 0xa6, 0x8e, 0x6d, 0x4c, 0x2a, 0xc2, 0xb6, 0x48,
0x49, 0x5b, 0xf9, 0x5c, 0x53, 0x50, 0x15, 0x54, 0x89, 0x50, 0xb5, 0xe5, 0xc1, 0x42, 0xc8, 0x50,
0x2a, 0xca, 0x03, 0xdd, 0xda, 0x5b, 0xf7, 0x84, 0x7d, 0x7b, 0xdc, 0xae, 0x1d, 0x21, 0xcb, 0x0f,
0xc0, 0x1b, 0xaf, 0x20, 0xf1, 0xc0, 0x4b, 0xc5, 0xaf, 0xe0, 0x99, 0xbf, 0xd0, 0x5f, 0x80, 0x04,
0xff, 0x03, 0xdd, 0xde, 0xee, 0xf6, 0xee, 0x7c, 0x49, 0xed, 0xa6, 0x6f, 0xde, 0x99, 0xd9, 0x99,
0xef, 0xdb, 0x99, 0xf9, 0x7c, 0x70, 0xee, 0x48, 0x44, 0xdf, 0x3d, 0x19, 0x89, 0xa3, 0x56, 0x18,
0x09, 0x25, 0xb0, 0xc4, 0x42, 0xbf, 0xb9, 0x33, 0x14, 0x62, 0x38, 0xe2, 0x1e, 0x0b, 0x7d, 0x8f,
0x05, 0x81, 0x50, 0x4c, 0xf9, 0x22, 0x90, 0x49, 0x48, 0xb3, 0x6e, 0xaf, 0x7c, 0xab, 0xf8, 0x38,
0x1c, 0x31, 0xc5, 0x13, 0x07, 0x7d, 0x04, 0xdb, 0xb7, 0x23, 0xce, 0x14, 0x7f, 0x60, 0x02, 0x7a,
0xfc, 0xfb, 0x09, 0x97, 0x0a, 0x77, 0xa0, 0x1c, 0xb0, 0x31, 0x97, 0x21, 0xeb, 0xf3, 0x06, 0xd9,
0x25, 0x7b, 0xe5, 0xde, 0x0b, 0x03, 0xee, 0xc3, 0xa6, 0xcd, 0xd8, 0x58, 0xdb, 0x25, 0x7b, 0x67,
0x3b, 0x95, 0x16, 0x0b, 0xfd, 0x96, 0xcb, 0xe2, 0xdc, 0xf4, 0x2e, 0xe0, 0x3d, 0xae, 0x56, 0x4b,
0x8f, 0x70, 0x26, 0x3e, 0xe8, 0xd4, 0xe5, 0x9e, 0xfe, 0x4d, 0x3f, 0x85, 0xea, 0x03, 0xa6, 0xfa,
0x4f, 0x4f, 0x9f, 0xe9, 0x17, 0x02, 0xb5, 0x14, 0xa4, 0xae, 0x18, 0xca, 0x57, 0x4e, 0x86, 0x0d,
0x78, 0x23, 0x14, 0x83, 0xcf, 0x62, 0x73, 0x49, 0x9b, 0xed, 0x11, 0x2f, 0x43, 0xa5, 0x2f, 0x02,
0xc5, 0xfc, 0x80, 0x47, 0xda, 0x7f, 0x46, 0xfb, 0xb3, 0x46, 0xfa, 0x8c, 0x40, 0xb5, 0xeb, 0x4b,
0x87, 0x66, 0x49, 0x28, 0x6d, 0xb8, 0x60, 0x5f, 0xf8, 0x4b, 0xd3, 0xd1, 0xfb, 0xfe, 0xc0, 0x20,
0x2b, 0x72, 0xe1, 0x4d, 0xa8, 0xe7, 0xcd, 0x5f, 0xf1, 0x48, 0xfa, 0x22, 0x30, 0xc0, 0x8f, 0x73,
0xd3, 0x87, 0xb0, 0x9d, 0x43, 0x28, 0x43, 0x11, 0x48, 0x8e, 0x55, 0x58, 0xef, 0x8b, 0x49, 0xa0,
0x34, 0xbc, 0xf5, 0x5e, 0x72, 0xc0, 0xab, 0x50, 0xb6, 0x99, 0x64, 0x63, 0x6d, 0xb7, 0xb4, 0x38,
0x1c, 0x2f, 0xfc, 0xf4, 0x13, 0xd8, 0xec, 0x8a, 0xe1, 0x9d, 0x40, 0x45, 0x3f, 0xc4, 0x8c, 0x95,
0x3f, 0xe6, 0x52, 0xb1, 0x71, 0x68, 0x19, 0x3b, 0x43, 0xfc, 0xd0, 0xf1, 0xcb, 0xf1, 0x40, 0x19,
0x96, 0xf6, 0x48, 0xff, 0x21, 0xb0, 0x69, 0x73, 0xc7, 0x49, 0xfa, 0x7a, 0xa0, 0x07, 0x87, 0xca,
0x26, 0x71, 0x06, 0x3c, 0x0f, 0xa5, 0x89, 0x7b, 0xa6, 0xf8, 0xa7, 0xeb, 0x69, 0x29, 0xd5, 0xd3,
0x1a, 0x6c, 0x48, 0xc5, 0xd4, 0x44, 0x9a, 0x96, 0x99, 0x13, 0x7e, 0x08, 0x10, 0xb2, 0x88, 0x8d,
0xb9, 0xe2, 0x91, 0x6c, 0xac, 0x6b, 0x6a, 0xb5, 0x0c, 0xb5, 0xcf, 0xad, 0xbb, 0x97, 0x8a, 0xc4,
0x43, 0x38, 0x9f, 0x7f, 0xdb, 0xc6, 0x86, 0xde, 0x9a, 0xed, 0xcc, 0x6d, 0xeb, 0xec, 0x2d, 0x84,
0xd3, 0x5b, 0xf0, 0xe6, 0x42, 0x0d, 0x87, 0x9d, 0xa4, 0xb0, 0x57, 0x61, 0x7d, 0xca, 0x46, 0x13,
0x3b, 0xa4, 0xc9, 0xa1, 0xf3, 0xfb, 0x16, 0x6c, 0xd9, 0xfb, 0x5f, 0xf0, 0x68, 0xea, 0xf7, 0x39,
0x46, 0x70, 0x2e, 0xbb, 0xfa, 0xd8, 0xd4, 0x68, 0x0a, 0xf5, 0xa0, 0x99, 0x6d, 0x21, 0xfd, 0xe0,
0xa7, 0xe7, 0xff, 0xfe, 0xba, 0xe6, 0xd1, 0x4b, 0xb1, 0xe0, 0x48, 0x6f, 0x7a, 0xfd, 0x31, 0x57,
0xec, 0xba, 0x37, 0x73, 0x13, 0x3a, 0xf7, 0x5c, 0x93, 0x0f, 0x9c, 0x18, 0xa0, 0x0f, 0x67, 0x53,
0x9b, 0x87, 0x75, 0x9d, 0x74, 0x51, 0x1e, 0xf2, 0xd5, 0x3a, 0xba, 0xda, 0x35, 0xbc, 0xb2, 0x44,
0xb5, 0xc4, 0x3a, 0x47, 0x09, 0x95, 0xcc, 0xd4, 0xe2, 0x5b, 0x3a, 0x67, 0xd1, 0xae, 0x35, 0x9b,
0x45, 0xae, 0x64, 0xc8, 0xe9, 0x55, 0x5d, 0xfb, 0x3d, 0x5c, 0x86, 0x29, 0x4e, 0xa0, 0x92, 0x11,
0x29, 0x53, 0xb4, 0x48, 0xb8, 0xf2, 0x1c, 0x6f, 0xea, 0x3a, 0x1d, 0x6c, 0x2f, 0xcf, 0xd1, 0x3b,
0x8a, 0xf3, 0xb6, 0x09, 0xfe, 0x49, 0x60, 0x2b, 0xa7, 0x68, 0xf8, 0x76, 0xfe, 0x6d, 0x53, 0x3a,
0x67, 0x6a, 0xdb, 0xcd, 0xa3, 0x4c, 0xd7, 0xfe, 0x06, 0xbf, 0x5e, 0xa1, 0x76, 0x28, 0x06, 0xd2,
0x9b, 0x19, 0xb1, 0x9b, 0x7b, 0x4e, 0xd5, 0xa4, 0x37, 0xcb, 0x28, 0xdc, 0xdc, 0x1b, 0x89, 0xa1,
0x6c, 0x13, 0xfc, 0x83, 0x40, 0x2d, 0x3b, 0x5b, 0x76, 0xba, 0x91, 0x16, 0x0c, 0x9e, 0x5b, 0x06,
0x03, 0xb9, 0x78, 0x55, 0xe8, 0x5d, 0x0d, 0xfd, 0x63, 0x7a, 0xed, 0xe5, 0xd0, 0xdd, 0x7f, 0x9f,
0x3c, 0x58, 0x58, 0x30, 0xfc, 0x8f, 0xc0, 0xc5, 0xfb, 0xe1, 0xa0, 0x00, 0x80, 0x91, 0x41, 0xdc,
0xd7, 0x00, 0x4e, 0x8c, 0x79, 0x09, 0xd6, 0x1f, 0x89, 0x06, 0x3b, 0x6b, 0x0e, 0x57, 0x01, 0xeb,
0xcd, 0xf2, 0x60, 0x5b, 0x13, 0x7f, 0x30, 0xf7, 0xa6, 0x49, 0xcd, 0x22, 0xbf, 0x71, 0xcd, 0x0b,
0x78, 0xfe, 0x4d, 0xe0, 0x62, 0xf1, 0x43, 0x5b, 0x9e, 0xa7, 0x68, 0xc6, 0x13, 0xcd, 0xef, 0x11,
0xed, 0xbe, 0x4e, 0x7e, 0x05, 0x24, 0x9e, 0x13, 0xb8, 0x90, 0x9a, 0x6c, 0x67, 0x7f, 0x27, 0x3f,
0xf3, 0x4b, 0xe2, 0xfe, 0x39, 0x69, 0xcc, 0x1c, 0x3b, 0xab, 0x01, 0x8f, 0x71, 0x3e, 0xbc, 0x87,
0x77, 0x56, 0xbf, 0x95, 0xea, 0x9e, 0x6d, 0x16, 0xfe, 0x45, 0x60, 0x27, 0xad, 0x41, 0xb9, 0xc6,
0x48, 0xdc, 0x5b, 0x90, 0xa9, 0x7c, 0x88, 0xe5, 0xb9, 0xbf, 0x44, 0xa4, 0xd1, 0xb7, 0xdb, 0x9a,
0xfa, 0x2d, 0xfc, 0xe8, 0x14, 0x24, 0xf0, 0x37, 0x92, 0xfd, 0x46, 0xb0, 0xd5, 0x24, 0xbe, 0x7b,
0x2c, 0x12, 0x07, 0x96, 0x9e, 0x14, 0x62, 0x50, 0xde, 0xd0, 0x28, 0x5b, 0xb8, 0xd2, 0x9a, 0xe3,
0x33, 0x02, 0xf5, 0xc3, 0xa8, 0xff, 0xd4, 0x9f, 0x2e, 0x6a, 0xce, 0x25, 0x5d, 0xf5, 0x18, 0xaf,
0x85, 0x76, 0xf9, 0xe4, 0x20, 0x03, 0xee, 0x40, 0x83, 0xbb, 0x71, 0xe5, 0x15, 0xa6, 0xe7, 0xf1,
0x86, 0xfe, 0x0e, 0x7f, 0xff, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2b, 0xb3, 0x35, 0x57, 0xd5,
0x0b, 0x00, 0x00,
0x10, 0xd6, 0xc6, 0x4d, 0x48, 0xa6, 0x4a, 0x9b, 0x4e, 0x13, 0xc7, 0x5c, 0x13, 0x11, 0xb6, 0x45,
0x4a, 0xda, 0xca, 0x97, 0x9a, 0x50, 0x55, 0x81, 0x4a, 0x84, 0x2a, 0x2d, 0x0f, 0x16, 0x42, 0xa6,
0xa5, 0xa2, 0x3c, 0xd0, 0x8d, 0xbd, 0x71, 0x4f, 0xd8, 0xb7, 0xc7, 0xed, 0xda, 0x51, 0x65, 0xf9,
0x01, 0x78, 0x41, 0xbc, 0xc2, 0x1b, 0x2f, 0x55, 0x7f, 0x05, 0xcf, 0xfc, 0x85, 0xfe, 0x02, 0x24,
0xf8, 0x1f, 0xe8, 0xf6, 0x76, 0xaf, 0x77, 0xe7, 0x73, 0xea, 0x6b, 0x78, 0xf3, 0xce, 0xcc, 0xcd,
0x7c, 0xdf, 0xce, 0xcc, 0xb7, 0x86, 0x0b, 0x27, 0x22, 0xfc, 0xfe, 0xb8, 0x27, 0x4e, 0xea, 0x41,
0x28, 0x94, 0xc0, 0x0a, 0x0b, 0x3c, 0x67, 0xa3, 0x2b, 0x44, 0xb7, 0xc7, 0x5d, 0x16, 0x78, 0x2e,
0xf3, 0x7d, 0xa1, 0x98, 0xf2, 0x84, 0x2f, 0xe3, 0x10, 0xe7, 0x8a, 0xf1, 0xea, 0xd3, 0xd1, 0xe0,
0xd8, 0xe5, 0xfd, 0x40, 0x3d, 0x37, 0xce, 0x75, 0x9b, 0xef, 0x3b, 0xc5, 0xfb, 0x41, 0x8f, 0x29,
0x1e, 0x3b, 0xe8, 0x53, 0x58, 0xbb, 0x17, 0x72, 0xa6, 0xf8, 0x63, 0x13, 0xd0, 0xe2, 0x3f, 0x0c,
0xb8, 0x54, 0xb8, 0x01, 0x4b, 0x3e, 0xeb, 0x73, 0x19, 0xb0, 0x36, 0xaf, 0x91, 0x2d, 0xb2, 0xbd,
0xd4, 0x7a, 0x6d, 0xc0, 0x1d, 0x58, 0xb4, 0x19, 0x6b, 0x73, 0x5b, 0x64, 0xfb, 0x7c, 0x63, 0xb9,
0xce, 0x02, 0xaf, 0x9e, 0x64, 0x49, 0xdc, 0xf4, 0x3e, 0xe0, 0x03, 0xae, 0xca, 0xa5, 0x47, 0x38,
0x17, 0x1d, 0x74, 0xea, 0xa5, 0x96, 0xfe, 0x4d, 0x3f, 0x87, 0xd5, 0xc7, 0x4c, 0xb5, 0x9f, 0x9d,
0x3d, 0x53, 0x13, 0x6a, 0x0f, 0x79, 0xd8, 0xf7, 0xfc, 0xd2, 0xb4, 0x8b, 0xb2, 0xfd, 0x4a, 0xa0,
0x9a, 0x22, 0xd8, 0x14, 0x5d, 0xf9, 0xd6, 0xc9, 0xb0, 0x06, 0xef, 0x04, 0xa2, 0xf3, 0x45, 0x64,
0xae, 0x68, 0xb3, 0x3d, 0xe2, 0x35, 0x58, 0x6e, 0x0b, 0x5f, 0x31, 0xcf, 0xe7, 0xa1, 0xf6, 0x9f,
0xd3, 0xfe, 0xac, 0x91, 0xbe, 0x20, 0xb0, 0xda, 0xf4, 0x64, 0x82, 0x66, 0x46, 0x28, 0xbb, 0x70,
0xd9, 0xf6, 0xeb, 0xa1, 0x99, 0x8f, 0x47, 0x5e, 0xc7, 0x20, 0x2b, 0x72, 0xe1, 0x1d, 0x58, 0xcf,
0x9b, 0xbf, 0xe6, 0xa1, 0xf4, 0x84, 0x6f, 0x80, 0x4f, 0x73, 0xd3, 0x27, 0xb0, 0x96, 0x43, 0x28,
0x03, 0xe1, 0x4b, 0x8e, 0xab, 0x30, 0xdf, 0x16, 0x03, 0x5f, 0x69, 0x78, 0xf3, 0xad, 0xf8, 0x80,
0x37, 0x60, 0xc9, 0x66, 0x92, 0xb5, 0xb9, 0xad, 0xca, 0xe4, 0xa8, 0xbd, 0xf6, 0xd3, 0xcf, 0x60,
0xb1, 0x29, 0xba, 0x87, 0xbe, 0x0a, 0x9f, 0x47, 0x8c, 0x95, 0xd7, 0xe7, 0x52, 0xb1, 0x7e, 0x60,
0x19, 0x27, 0x86, 0xe8, 0xa2, 0xa3, 0x9b, 0xe3, 0xbe, 0x32, 0x2c, 0xed, 0x91, 0xfe, 0x4d, 0x60,
0xd1, 0xe6, 0x8e, 0x92, 0xb4, 0xf5, 0x7a, 0x74, 0x0e, 0x94, 0x4d, 0x92, 0x18, 0x70, 0x05, 0x2a,
0x83, 0xe4, 0x9a, 0xa2, 0x9f, 0x49, 0x4f, 0x2b, 0xa9, 0x9e, 0x56, 0x61, 0x41, 0x2a, 0xa6, 0x06,
0xd2, 0xb4, 0xcc, 0x9c, 0xf0, 0x36, 0x40, 0xc0, 0x42, 0xd6, 0xe7, 0x8a, 0x87, 0xb2, 0x36, 0xaf,
0xa9, 0x55, 0x33, 0xd4, 0xbe, 0xb4, 0xee, 0x56, 0x2a, 0x12, 0x0f, 0x60, 0x25, 0x7f, 0xb7, 0xb5,
0x05, 0xbd, 0x83, 0x6b, 0x99, 0xaf, 0xad, 0xb3, 0x35, 0x11, 0x4e, 0xef, 0xc2, 0xa5, 0x89, 0x1a,
0x09, 0x76, 0x92, 0xc2, 0xbe, 0x0a, 0xf3, 0x43, 0xd6, 0x1b, 0xd8, 0x21, 0x8d, 0x0f, 0x8d, 0x97,
0x2b, 0x70, 0xd1, 0x7e, 0xff, 0x15, 0x0f, 0x87, 0x5e, 0x9b, 0x63, 0x08, 0x17, 0xb2, 0x42, 0x82,
0x8e, 0x46, 0x53, 0xa8, 0x2e, 0x4e, 0xb6, 0x85, 0xf4, 0xa3, 0x9f, 0x5e, 0xfd, 0xf3, 0xdb, 0x9c,
0x4b, 0xaf, 0x46, 0xda, 0x26, 0xdd, 0xe1, 0xad, 0x23, 0xae, 0xd8, 0x2d, 0x77, 0x94, 0x4c, 0xe8,
0xd8, 0x4d, 0x9a, 0xbc, 0x9f, 0x48, 0x0b, 0x7a, 0x70, 0x3e, 0xb5, 0x79, 0xb8, 0xae, 0x93, 0x4e,
0x8a, 0x4d, 0xbe, 0x5a, 0x43, 0x57, 0xbb, 0x89, 0xd7, 0x67, 0xa8, 0x16, 0x5b, 0xc7, 0x28, 0x61,
0x39, 0x33, 0xb5, 0xf8, 0xae, 0xce, 0x59, 0xb4, 0x6b, 0x8e, 0x53, 0xe4, 0x8a, 0x87, 0x9c, 0xde,
0xd0, 0xb5, 0x3f, 0xc0, 0x59, 0x98, 0xe2, 0x00, 0x96, 0x33, 0x92, 0x67, 0x8a, 0x16, 0xc9, 0x60,
0x9e, 0xe3, 0x1d, 0x5d, 0xa7, 0x81, 0xbb, 0xb3, 0x73, 0x74, 0x4f, 0xa2, 0xbc, 0xbb, 0x04, 0x5f,
0x12, 0xb8, 0x98, 0x53, 0x34, 0xbc, 0x92, 0xbf, 0xdb, 0x94, 0xce, 0x99, 0xda, 0x76, 0xf3, 0x28,
0xd3, 0xb5, 0xbf, 0xc5, 0x6f, 0x4a, 0xd4, 0x0e, 0x44, 0x47, 0xba, 0x23, 0x23, 0x76, 0x63, 0x37,
0x51, 0x35, 0xe9, 0x8e, 0x32, 0x0a, 0x37, 0x76, 0x7b, 0xa2, 0x2b, 0x77, 0x09, 0xfe, 0x42, 0xe0,
0xd2, 0x84, 0x8a, 0xe3, 0xa6, 0x46, 0x32, 0x4d, 0xdd, 0x9d, 0x6a, 0x3d, 0x7e, 0x24, 0xeb, 0xf6,
0x91, 0xac, 0x1f, 0x46, 0x8f, 0x24, 0xfd, 0x44, 0x23, 0xbe, 0xed, 0xec, 0x95, 0x40, 0xac, 0x6c,
0x11, 0xfc, 0x83, 0x40, 0x35, 0x3b, 0xe6, 0x76, 0xd1, 0x90, 0x16, 0xec, 0x40, 0xb2, 0x97, 0x06,
0x54, 0xf1, 0xd6, 0xd2, 0xfb, 0x1a, 0xd3, 0xa7, 0xf4, 0xe6, 0x9b, 0x31, 0x25, 0x8f, 0xba, 0xdc,
0x9f, 0xd8, 0x75, 0xfc, 0x97, 0xc0, 0xe6, 0xa3, 0xa0, 0x53, 0x00, 0xc0, 0x28, 0x32, 0xee, 0x68,
0x00, 0xa7, 0xc6, 0xbc, 0x01, 0xeb, 0x8f, 0x44, 0x83, 0x1d, 0x39, 0xdd, 0x32, 0x60, 0xdd, 0x51,
0x1e, 0x6c, 0x7d, 0xe0, 0x75, 0xc6, 0xee, 0x30, 0xae, 0x59, 0xe4, 0x37, 0xae, 0x71, 0x01, 0xcf,
0xbf, 0x08, 0x6c, 0x16, 0x5f, 0xb4, 0xe5, 0x79, 0x86, 0x66, 0x1c, 0x6b, 0x7e, 0x4f, 0x69, 0xf3,
0xff, 0xe4, 0x57, 0x40, 0xe2, 0x15, 0x81, 0xcb, 0xa9, 0x25, 0x4b, 0xec, 0xef, 0xe5, 0xd7, 0x6f,
0x46, 0xdc, 0x3f, 0xc7, 0x8d, 0x19, 0x63, 0xa3, 0x1c, 0xf0, 0x08, 0xe7, 0x93, 0x07, 0x78, 0x58,
0xfe, 0xab, 0x54, 0xf7, 0x6c, 0xb3, 0xf0, 0x4f, 0x02, 0x1b, 0x69, 0x39, 0xcc, 0x35, 0x46, 0xe2,
0xf6, 0x84, 0x62, 0xe6, 0x43, 0x2c, 0xcf, 0x9d, 0x19, 0x22, 0x8d, 0xd4, 0xde, 0xd3, 0xd4, 0xef,
0xe2, 0xc7, 0x67, 0x20, 0x81, 0xbf, 0x93, 0xec, 0xdf, 0x15, 0x5b, 0x4d, 0xe2, 0xfb, 0x53, 0x91,
0x24, 0x60, 0xe9, 0x69, 0x21, 0x06, 0xe5, 0x9e, 0x46, 0x59, 0xc7, 0x52, 0x6b, 0x8e, 0x2f, 0x08,
0xac, 0x1f, 0x84, 0xed, 0x67, 0xde, 0x70, 0x52, 0x73, 0xae, 0xea, 0xaa, 0x53, 0xbc, 0x16, 0xda,
0xb5, 0xd3, 0x83, 0x0c, 0xb8, 0x7d, 0x0d, 0x6e, 0xef, 0xfa, 0x5b, 0x4c, 0xcf, 0xd1, 0x82, 0xd6,
0xd8, 0x0f, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x76, 0x11, 0x42, 0xb4, 0xcb, 0x0c, 0x00, 0x00,
}
// Reference imports to suppress errors if they are not otherwise used.
@@ -596,6 +648,7 @@ type WorkflowServiceClient interface {
ListWorkflows(ctx context.Context, in *ListWorkflowsRequest, opts ...grpc.CallOption) (*ListWorkflowsResponse, error)
WatchWorkflow(ctx context.Context, in *WatchWorkflowRequest, opts ...grpc.CallOption) (WorkflowService_WatchWorkflowClient, error)
GetWorkflowLogs(ctx context.Context, in *GetWorkflowLogsRequest, opts ...grpc.CallOption) (WorkflowService_GetWorkflowLogsClient, error)
TerminateWorkflow(ctx context.Context, in *TerminateWorkflowRequest, opts ...grpc.CallOption) (*empty.Empty, error)
CreateWorkflowTemplate(ctx context.Context, in *CreateWorkflowTemplateRequest, opts ...grpc.CallOption) (*WorkflowTemplate, error)
UpdateWorkflowTemplateVersion(ctx context.Context, in *UpdateWorkflowTemplateVersionRequest, opts ...grpc.CallOption) (*WorkflowTemplate, error)
CreateWorkflowTemplateVersion(ctx context.Context, in *CreateWorkflowTemplateRequest, opts ...grpc.CallOption) (*WorkflowTemplate, error)
@@ -704,6 +757,15 @@ func (x *workflowServiceGetWorkflowLogsClient) Recv() (*LogEntry, error) {
return m, nil
}
func (c *workflowServiceClient) TerminateWorkflow(ctx context.Context, in *TerminateWorkflowRequest, opts ...grpc.CallOption) (*empty.Empty, error) {
out := new(empty.Empty)
err := c.cc.Invoke(ctx, "/api.WorkflowService/TerminateWorkflow", in, out, opts...)
if err != nil {
return nil, err
}
return out, nil
}
func (c *workflowServiceClient) CreateWorkflowTemplate(ctx context.Context, in *CreateWorkflowTemplateRequest, opts ...grpc.CallOption) (*WorkflowTemplate, error) {
out := new(WorkflowTemplate)
err := c.cc.Invoke(ctx, "/api.WorkflowService/CreateWorkflowTemplate", in, out, opts...)
@@ -775,6 +837,7 @@ type WorkflowServiceServer interface {
ListWorkflows(context.Context, *ListWorkflowsRequest) (*ListWorkflowsResponse, error)
WatchWorkflow(*WatchWorkflowRequest, WorkflowService_WatchWorkflowServer) error
GetWorkflowLogs(*GetWorkflowLogsRequest, WorkflowService_GetWorkflowLogsServer) error
TerminateWorkflow(context.Context, *TerminateWorkflowRequest) (*empty.Empty, error)
CreateWorkflowTemplate(context.Context, *CreateWorkflowTemplateRequest) (*WorkflowTemplate, error)
UpdateWorkflowTemplateVersion(context.Context, *UpdateWorkflowTemplateVersionRequest) (*WorkflowTemplate, error)
CreateWorkflowTemplateVersion(context.Context, *CreateWorkflowTemplateRequest) (*WorkflowTemplate, error)
@@ -803,6 +866,9 @@ func (*UnimplementedWorkflowServiceServer) WatchWorkflow(req *WatchWorkflowReque
func (*UnimplementedWorkflowServiceServer) GetWorkflowLogs(req *GetWorkflowLogsRequest, srv WorkflowService_GetWorkflowLogsServer) error {
return status.Errorf(codes.Unimplemented, "method GetWorkflowLogs not implemented")
}
func (*UnimplementedWorkflowServiceServer) TerminateWorkflow(ctx context.Context, req *TerminateWorkflowRequest) (*empty.Empty, error) {
return nil, status.Errorf(codes.Unimplemented, "method TerminateWorkflow not implemented")
}
func (*UnimplementedWorkflowServiceServer) CreateWorkflowTemplate(ctx context.Context, req *CreateWorkflowTemplateRequest) (*WorkflowTemplate, error) {
return nil, status.Errorf(codes.Unimplemented, "method CreateWorkflowTemplate not implemented")
}
@@ -925,6 +991,24 @@ func (x *workflowServiceGetWorkflowLogsServer) Send(m *LogEntry) error {
return x.ServerStream.SendMsg(m)
}
func _WorkflowService_TerminateWorkflow_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(TerminateWorkflowRequest)
if err := dec(in); err != nil {
return nil, err
}
if interceptor == nil {
return srv.(WorkflowServiceServer).TerminateWorkflow(ctx, in)
}
info := &grpc.UnaryServerInfo{
Server: srv,
FullMethod: "/api.WorkflowService/TerminateWorkflow",
}
handler := func(ctx context.Context, req interface{}) (interface{}, error) {
return srv.(WorkflowServiceServer).TerminateWorkflow(ctx, req.(*TerminateWorkflowRequest))
}
return interceptor(ctx, in, info, handler)
}
func _WorkflowService_CreateWorkflowTemplate_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
in := new(CreateWorkflowTemplateRequest)
if err := dec(in); err != nil {
@@ -1067,6 +1151,10 @@ var _WorkflowService_serviceDesc = grpc.ServiceDesc{
MethodName: "ListWorkflows",
Handler: _WorkflowService_ListWorkflows_Handler,
},
{
MethodName: "TerminateWorkflow",
Handler: _WorkflowService_TerminateWorkflow_Handler,
},
{
MethodName: "CreateWorkflowTemplate",
Handler: _WorkflowService_CreateWorkflowTemplate_Handler,

View File

@@ -360,6 +360,82 @@ func request_WorkflowService_GetWorkflowLogs_0(ctx context.Context, marshaler ru
}
func request_WorkflowService_TerminateWorkflow_0(ctx context.Context, marshaler runtime.Marshaler, client WorkflowServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq TerminateWorkflowRequest
var metadata runtime.ServerMetadata
var (
val string
ok bool
err error
_ = err
)
val, ok = pathParams["namespace"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace")
}
protoReq.Namespace, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err)
}
val, ok = pathParams["name"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name")
}
protoReq.Name, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
}
msg, err := client.TerminateWorkflow(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_WorkflowService_TerminateWorkflow_0(ctx context.Context, marshaler runtime.Marshaler, server WorkflowServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq TerminateWorkflowRequest
var metadata runtime.ServerMetadata
var (
val string
ok bool
err error
_ = err
)
val, ok = pathParams["namespace"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "namespace")
}
protoReq.Namespace, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "namespace", err)
}
val, ok = pathParams["name"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "name")
}
protoReq.Name, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "name", err)
}
msg, err := server.TerminateWorkflow(ctx, &protoReq)
return msg, metadata, err
}
func request_WorkflowService_CreateWorkflowTemplate_0(ctx context.Context, marshaler runtime.Marshaler, client WorkflowServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq CreateWorkflowTemplateRequest
var metadata runtime.ServerMetadata
@@ -1110,6 +1186,26 @@ func RegisterWorkflowServiceHandlerServer(ctx context.Context, mux *runtime.Serv
return
})
mux.Handle("PUT", pattern_WorkflowService_TerminateWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := local_request_WorkflowService_TerminateWorkflow_0(rctx, inboundMarshaler, server, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_WorkflowService_TerminateWorkflow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("POST", pattern_WorkflowService_CreateWorkflowTemplate_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -1411,6 +1507,26 @@ func RegisterWorkflowServiceHandlerClient(ctx context.Context, mux *runtime.Serv
})
mux.Handle("PUT", pattern_WorkflowService_TerminateWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req)
rctx, err := runtime.AnnotateContext(ctx, mux, req)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
resp, md, err := request_WorkflowService_TerminateWorkflow_0(rctx, inboundMarshaler, client, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_WorkflowService_TerminateWorkflow_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("POST", pattern_WorkflowService_CreateWorkflowTemplate_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context())
defer cancel()
@@ -1585,6 +1701,8 @@ var (
pattern_WorkflowService_GetWorkflowLogs_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6, 2, 7, 1, 0, 4, 1, 5, 8, 2, 9}, []string{"apis", "v1beta1", "namespace", "workflows", "name", "pods", "podName", "containers", "containerName", "logs"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_WorkflowService_TerminateWorkflow_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5}, []string{"apis", "v1beta1", "namespace", "workflows", "name", "terminate"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_WorkflowService_CreateWorkflowTemplate_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"apis", "v1beta1", "namespace", "workflow_templates"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_WorkflowService_UpdateWorkflowTemplateVersion_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4, 2, 5, 1, 0, 4, 1, 5, 6}, []string{"apis", "v1beta1", "namespace", "workflow_templates", "workflowTemplate.uid", "versions", "workflowTemplate.version"}, "", runtime.AssumeColonVerbOpt(true)))
@@ -1613,6 +1731,8 @@ var (
forward_WorkflowService_GetWorkflowLogs_0 = runtime.ForwardResponseStream
forward_WorkflowService_TerminateWorkflow_0 = runtime.ForwardResponseMessage
forward_WorkflowService_CreateWorkflowTemplate_0 = runtime.ForwardResponseMessage
forward_WorkflowService_UpdateWorkflowTemplateVersion_0 = runtime.ForwardResponseMessage

View File

@@ -3,6 +3,7 @@ syntax = "proto3";
package api;
import "google/api/annotations.proto";
import "google/protobuf/empty.proto";
import "workflow_template.proto";
service WorkflowService {
@@ -38,6 +39,12 @@ service WorkflowService {
};
}
rpc TerminateWorkflow (TerminateWorkflowRequest) returns (google.protobuf.Empty) {
option (google.api.http) = {
put: "/apis/v1beta1/{namespace}/workflows/{name}/terminate"
};
}
rpc CreateWorkflowTemplate (CreateWorkflowTemplateRequest) returns (WorkflowTemplate) {
option (google.api.http) = {
post: "/apis/v1beta1/{namespace}/workflow_templates"
@@ -102,6 +109,11 @@ message WatchWorkflowRequest {
string name = 2;
}
message TerminateWorkflowRequest {
string namespace = 1;
string name = 2;
}
message GetWorkflowLogsRequest {
string namespace = 1;
string name = 2;

View File

@@ -419,6 +419,36 @@
]
}
},
"/apis/v1beta1/{namespace}/workflows/{name}/terminate": {
"put": {
"operationId": "TerminateWorkflow",
"responses": {
"200": {
"description": "A successful response.",
"schema": {
"properties": {}
}
}
},
"parameters": [
{
"name": "namespace",
"in": "path",
"required": true,
"type": "string"
},
{
"name": "name",
"in": "path",
"required": true,
"type": "string"
}
],
"tags": [
"WorkflowService"
]
}
},
"/apis/v1beta1/{namespace}/workflows/{name}/watch": {
"get": {
"operationId": "WatchWorkflow",

View File

@@ -1,14 +1,17 @@
package kube
import (
"encoding/json"
"fmt"
wfv1 "github.com/argoproj/argo/pkg/apis/workflow/v1alpha1"
"github.com/argoproj/argo/workflow/common"
"github.com/argoproj/pkg/json"
argojson "github.com/argoproj/pkg/json"
"github.com/onepanelio/core/util/env"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/watch"
_ "k8s.io/client-go/plugin/pkg/client/auth"
)
@@ -34,11 +37,11 @@ type WorkflowOptions struct {
func unmarshalWorkflows(wfBytes []byte, strict bool) (wfs []Workflow, err error) {
var wf Workflow
var jsonOpts []json.JSONOpt
var jsonOpts []argojson.JSONOpt
if strict {
jsonOpts = append(jsonOpts, json.DisallowUnknownFields)
jsonOpts = append(jsonOpts, argojson.DisallowUnknownFields)
}
err = json.Unmarshal(wfBytes, &wf, jsonOpts...)
err = argojson.Unmarshal(wfBytes, &wf, jsonOpts...)
if err == nil {
return []Workflow{wf}, nil
}
@@ -168,3 +171,21 @@ func (c *Client) WatchWorkflow(namespace, name string) (watcher watch.Interface,
return
}
func (c *Client) TerminateWorkflow(namespace, name string) (err error) {
obj := map[string]interface{}{
"spec": map[string]interface{}{
"activeDeadlineSeconds": 0,
},
}
patch, err := json.Marshal(obj)
if err != nil {
return
}
_, err = c.ArgoprojV1alpha1().Workflows(namespace).Patch(name, types.MergePatchType, patch)
if err != nil {
return
}
return
}

View File

@@ -221,6 +221,14 @@ func (r *ResourceManager) ListWorkflows(namespace, workflowTemplateUID, workflow
return
}
func (r *ResourceManager) TerminateWorkflow(namespace, name string) (err error) {
if err = r.kubeClient.TerminateWorkflow(namespace, name); err != nil {
return util.NewUserError(codes.Unknown, "Could not terminate workflow.")
}
return
}
func (r *ResourceManager) CreateWorkflowTemplate(namespace string, workflowTemplate *model.WorkflowTemplate) (*model.WorkflowTemplate, error) {
allowed, err := r.kubeClient.IsAuthorized(namespace, "create", "argoproj.io", "workflow", "")
if err != nil {

View File

@@ -5,6 +5,7 @@ import (
"errors"
"time"
"github.com/golang/protobuf/ptypes/empty"
"github.com/onepanelio/core/api"
"github.com/onepanelio/core/manager"
"github.com/onepanelio/core/model"
@@ -155,6 +156,15 @@ func (s *WorkflowServer) ListWorkflows(ctx context.Context, req *api.ListWorkflo
}, nil
}
func (s *WorkflowServer) TerminateWorkflow(ctx context.Context, req *api.TerminateWorkflowRequest) (*empty.Empty, error) {
err := s.resourceManager.TerminateWorkflow(req.Namespace, req.Name)
if errors.As(err, &userError) {
return nil, userError.GRPCError()
}
return &empty.Empty{}, nil
}
func (s *WorkflowServer) CreateWorkflowTemplate(ctx context.Context, req *api.CreateWorkflowTemplateRequest) (*api.WorkflowTemplate, error) {
workflowTemplate := &model.WorkflowTemplate{
Name: req.WorkflowTemplate.Name,