Updated List endpoint to take in an optional WorkflowTemplateUID.

- If present, code will try to filter the CronWorkflows by the label
"onepanel.io/workflow-template-uid"
- If not present, all CronWorkflows are returned as normal.
This commit is contained in:
Aleksandr Melnikov
2020-04-02 11:30:39 -07:00
parent 9e029b3f1c
commit a42e7ab7fe
5 changed files with 241 additions and 84 deletions

View File

@@ -224,8 +224,9 @@ func (m *UpdateCronWorkflowRequest) GetCronWorkflow() *CronWorkflow {
type ListCronWorkflowRequest struct { type ListCronWorkflowRequest struct {
Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"`
PageSize int32 `protobuf:"varint,4,opt,name=pageSize,proto3" json:"pageSize,omitempty"` WorkflowTemplateUid string `protobuf:"bytes,2,opt,name=workflow_template_uid,json=workflowTemplateUid,proto3" json:"workflow_template_uid,omitempty"`
Page int32 `protobuf:"varint,5,opt,name=page,proto3" json:"page,omitempty"` PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"`
Page int32 `protobuf:"varint,4,opt,name=page,proto3" json:"page,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_unrecognized []byte `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_sizecache int32 `json:"-"`
@@ -263,6 +264,13 @@ func (m *ListCronWorkflowRequest) GetNamespace() string {
return "" return ""
} }
func (m *ListCronWorkflowRequest) GetWorkflowTemplateUid() string {
if m != nil {
return m.WorkflowTemplateUid
}
return ""
}
func (m *ListCronWorkflowRequest) GetPageSize() int32 { func (m *ListCronWorkflowRequest) GetPageSize() int32 {
if m != nil { if m != nil {
return m.PageSize return m.PageSize
@@ -464,51 +472,54 @@ func init() {
func init() { proto.RegisterFile("cron_workflow.proto", fileDescriptor_989cccaad551a50c) } func init() { proto.RegisterFile("cron_workflow.proto", fileDescriptor_989cccaad551a50c) }
var fileDescriptor_989cccaad551a50c = []byte{ var fileDescriptor_989cccaad551a50c = []byte{
// 704 bytes of a gzipped FileDescriptorProto // 740 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0xdf, 0x4e, 0x13, 0x41, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0xdd, 0x4e, 0xdb, 0x48,
0x14, 0xc6, 0xb3, 0x94, 0x42, 0x7b, 0x44, 0x4d, 0x07, 0x2d, 0xcb, 0xd2, 0x90, 0xba, 0x37, 0x36, 0x14, 0xc7, 0x65, 0x42, 0x20, 0x39, 0xcb, 0xee, 0x2a, 0xc3, 0x12, 0x8c, 0x89, 0x10, 0xeb, 0x9b,
0xc4, 0xb4, 0x80, 0x11, 0xfc, 0x13, 0x49, 0x0c, 0x10, 0x0d, 0xe1, 0x82, 0x2c, 0x1a, 0x2e, 0xc9, 0x45, 0xab, 0x55, 0xbc, 0xb0, 0x5a, 0xe8, 0x87, 0x8a, 0xda, 0x02, 0x6a, 0x85, 0xb8, 0x40, 0x06,
0x76, 0x7a, 0x5a, 0x27, 0x6e, 0x67, 0xd6, 0x9d, 0x59, 0xb0, 0x18, 0x6e, 0xd4, 0x78, 0xe7, 0x95, 0x84, 0xd4, 0x1b, 0xe4, 0x8c, 0x4f, 0xd2, 0x51, 0x9d, 0x19, 0xd7, 0x33, 0x86, 0x06, 0xc4, 0x4d,
0xf1, 0xc6, 0xe7, 0xf0, 0x1d, 0x7c, 0x00, 0x5f, 0xc1, 0x07, 0x31, 0x3b, 0xbb, 0x2d, 0x6d, 0xb7, 0x55, 0xf5, 0xa6, 0xea, 0x55, 0xd5, 0x9b, 0xf6, 0x35, 0xfa, 0x0e, 0x7d, 0x80, 0xbe, 0x42, 0x1f,
0x25, 0x95, 0x70, 0xd5, 0x3d, 0xf3, 0xcd, 0xcc, 0xf7, 0xeb, 0x99, 0x39, 0x67, 0x60, 0x9e, 0x06, 0xa4, 0xf2, 0xc4, 0x09, 0x49, 0x9c, 0xa0, 0x14, 0x71, 0x65, 0x9f, 0xf9, 0x9f, 0x99, 0xf3, 0x9b,
0x82, 0x1f, 0x9f, 0x8a, 0xe0, 0x5d, 0xd3, 0x13, 0xa7, 0x55, 0x3f, 0x10, 0x4a, 0x90, 0x8c, 0xeb, 0xaf, 0xff, 0xc0, 0x2c, 0x8d, 0x04, 0x3f, 0x39, 0x13, 0xd1, 0x8b, 0x7a, 0x20, 0xce, 0xaa, 0x61,
0x33, 0xab, 0xd4, 0x12, 0xa2, 0xe5, 0x61, 0xcd, 0xf5, 0x59, 0xcd, 0xe5, 0x5c, 0x28, 0x57, 0x31, 0x24, 0x94, 0x20, 0x39, 0x2f, 0x64, 0x56, 0xa5, 0x21, 0x44, 0x23, 0x40, 0xc7, 0x0b, 0x99, 0xe3,
0xc1, 0x65, 0x3c, 0xc5, 0x5a, 0x4a, 0x54, 0x1d, 0xd5, 0xc3, 0x66, 0x0d, 0xdb, 0xbe, 0xea, 0x24, 0x71, 0x2e, 0x94, 0xa7, 0x98, 0xe0, 0xb2, 0x9d, 0x62, 0x2d, 0xa6, 0xaa, 0x8e, 0x6a, 0x71, 0xdd,
0xe2, 0x42, 0x77, 0xbf, 0x63, 0x85, 0x6d, 0xdf, 0x73, 0x15, 0x26, 0xc2, 0xad, 0x41, 0x23, 0x6b, 0xc1, 0x66, 0xa8, 0x5a, 0xa9, 0x38, 0xdf, 0x19, 0xef, 0x44, 0x61, 0x33, 0x0c, 0x3c, 0x85, 0xa9,
0xae, 0x8d, 0x2a, 0x60, 0x34, 0x8e, 0xec, 0x03, 0x28, 0xbd, 0xc6, 0xa0, 0xcd, 0xb8, 0xab, 0x70, 0xf0, 0x5b, 0x7f, 0x21, 0x6b, 0xa6, 0x89, 0x2a, 0x62, 0xb4, 0x1d, 0xd9, 0xfb, 0x50, 0x39, 0xc4,
0x3b, 0x10, 0xfc, 0x28, 0x99, 0xec, 0xe0, 0xfb, 0x10, 0xa5, 0x22, 0x25, 0xc8, 0x73, 0xb7, 0x8d, 0xa8, 0xc9, 0xb8, 0xa7, 0x70, 0x2b, 0x12, 0xfc, 0x38, 0x4d, 0x76, 0xf1, 0x65, 0x8c, 0x52, 0x91,
0xd2, 0x77, 0x29, 0x9a, 0x46, 0xd9, 0xa8, 0xe4, 0x9d, 0x8b, 0x01, 0x42, 0x60, 0x3a, 0x0a, 0xcc, 0x0a, 0x14, 0xb9, 0xd7, 0x44, 0x19, 0x7a, 0x14, 0x4d, 0x63, 0xd9, 0x58, 0x29, 0xba, 0x57, 0x0d,
0x29, 0x2d, 0xe8, 0x6f, 0x7b, 0x0f, 0x8a, 0x2f, 0x51, 0x5d, 0xcf, 0x5e, 0x3e, 0x2c, 0x6e, 0x07, 0x84, 0xc0, 0x64, 0x12, 0x98, 0x13, 0x5a, 0xd0, 0xff, 0xf6, 0x2e, 0x94, 0x9f, 0xa0, 0xba, 0x9d,
0x78, 0x25, 0xb4, 0x47, 0x30, 0x47, 0xfb, 0x16, 0xe9, 0x6d, 0x6f, 0xac, 0x17, 0xaa, 0xae, 0xcf, 0xb1, 0x42, 0x58, 0xd8, 0x8a, 0xf0, 0x46, 0x68, 0xff, 0xc3, 0x0c, 0xed, 0xe9, 0xa4, 0x87, 0xfd,
0xaa, 0x03, 0xbb, 0x0d, 0x4c, 0xb3, 0xbf, 0x18, 0xb0, 0xf8, 0xc6, 0x6f, 0x5c, 0x57, 0x36, 0x52, 0x65, 0xad, 0x54, 0xf5, 0x42, 0x56, 0xed, 0x1b, 0xad, 0x2f, 0xcd, 0x7e, 0x63, 0xc0, 0xc2, 0x51,
0x18, 0x99, 0xc9, 0x30, 0x5a, 0xb0, 0xb0, 0xcf, 0xe4, 0x15, 0xb2, 0x68, 0x41, 0xce, 0x77, 0x5b, 0xe8, 0xdf, 0xd6, 0x6a, 0x64, 0x30, 0x72, 0xe3, 0x61, 0x7c, 0x36, 0x60, 0x7e, 0x8f, 0xc9, 0x1b,
0x78, 0xc8, 0xce, 0xd0, 0x9c, 0x2e, 0x1b, 0x95, 0xac, 0xd3, 0x8b, 0x23, 0xbe, 0xe8, 0xdb, 0xcc, 0x2c, 0xe3, 0x1a, 0xcc, 0x65, 0x4e, 0xc2, 0x49, 0xcc, 0xfc, 0x94, 0x6a, 0xb6, 0x23, 0x1e, 0xa6,
0xea, 0x71, 0xfd, 0x6d, 0xff, 0x32, 0x60, 0x71, 0xd8, 0x49, 0x3a, 0x28, 0x7d, 0xc1, 0x25, 0x92, 0xda, 0x11, 0xf3, 0x89, 0x05, 0x85, 0xd0, 0x6b, 0xe0, 0x01, 0x3b, 0x47, 0x0d, 0x98, 0x77, 0xbb,
0x3b, 0x90, 0xa5, 0x22, 0xe4, 0x4a, 0xfb, 0x64, 0x9d, 0x38, 0x20, 0x9b, 0x70, 0xb3, 0x1f, 0x56, 0x71, 0x32, 0xa9, 0xe4, 0xdf, 0x9c, 0xd4, 0xed, 0xfa, 0xdf, 0xfe, 0x62, 0xc0, 0xc2, 0x20, 0x9d,
0x9a, 0x53, 0xe5, 0xcc, 0xe8, 0x3f, 0x35, 0x38, 0xaf, 0x07, 0x90, 0xb9, 0x00, 0x88, 0x2c, 0xa2, 0x74, 0x51, 0x86, 0x82, 0x4b, 0x24, 0x7f, 0x40, 0x9e, 0x8a, 0x98, 0x2b, 0xcd, 0x96, 0x77, 0xdb,
0x5f, 0x99, 0xd0, 0xc6, 0x01, 0x59, 0x06, 0x50, 0x42, 0xb9, 0xde, 0xb6, 0x76, 0x8f, 0x81, 0xfb, 0x01, 0xd9, 0x80, 0x5f, 0x7b, 0x67, 0x28, 0xcd, 0x89, 0xe5, 0xdc, 0xf0, 0x95, 0xe8, 0xcf, 0xeb,
0x46, 0xec, 0x9f, 0x19, 0x98, 0xeb, 0x77, 0xea, 0xe5, 0xde, 0xe8, 0xcb, 0xbd, 0x05, 0x39, 0x49, 0x02, 0xe4, 0xae, 0x00, 0x92, 0x12, 0xc9, 0x57, 0xa6, 0x54, 0xed, 0x80, 0x2c, 0x01, 0x28, 0xa1,
0xdf, 0x62, 0x23, 0xf4, 0xba, 0x67, 0xd2, 0x8b, 0x23, 0x4d, 0xb1, 0x36, 0x9e, 0x09, 0x1e, 0xe3, 0xbc, 0x60, 0x4b, 0x57, 0xcf, 0x6b, 0xa9, 0xa7, 0xc5, 0xfe, 0x94, 0x83, 0x99, 0xde, 0x4a, 0xdd,
0xe4, 0x9d, 0x5e, 0x4c, 0x4c, 0x98, 0x95, 0xa1, 0xf4, 0x91, 0x37, 0x34, 0x54, 0xce, 0xe9, 0x86, 0x0d, 0x33, 0x7a, 0x36, 0xcc, 0x82, 0x82, 0xa4, 0xcf, 0xd1, 0x8f, 0x83, 0xce, 0x46, 0x76, 0xe3,
0xe4, 0x01, 0x14, 0xa8, 0xe0, 0x34, 0x0c, 0x02, 0xe4, 0xb4, 0x73, 0x20, 0x3c, 0x46, 0x3b, 0x9a, 0x44, 0x53, 0xac, 0x89, 0xe7, 0x82, 0xb7, 0x71, 0x8a, 0x6e, 0x37, 0x26, 0x26, 0x4c, 0xcb, 0x58,
0x2e, 0xef, 0xa4, 0x05, 0xf2, 0x18, 0x16, 0xa4, 0x72, 0x03, 0xc5, 0x78, 0x6b, 0x07, 0xdd, 0x86, 0x86, 0xc8, 0x7d, 0x0d, 0x55, 0x70, 0x3b, 0x21, 0xf9, 0x07, 0x4a, 0x54, 0x70, 0x1a, 0x47, 0x11,
0xc7, 0x38, 0x1e, 0x22, 0x15, 0xbc, 0x21, 0xcd, 0x99, 0xb2, 0x51, 0xc9, 0x38, 0xe3, 0x64, 0xb2, 0x72, 0xda, 0xda, 0x17, 0x01, 0xa3, 0x2d, 0x4d, 0x57, 0x74, 0xb3, 0x02, 0xb9, 0x03, 0xf3, 0x52,
0x05, 0x96, 0x0c, 0x29, 0x45, 0x29, 0x9b, 0xa1, 0xb7, 0x27, 0xea, 0xf2, 0x15, 0x93, 0x4a, 0x04, 0x79, 0x91, 0x62, 0xbc, 0xb1, 0x8d, 0x9e, 0x1f, 0x30, 0x8e, 0x07, 0x48, 0x05, 0xf7, 0xa5, 0x39,
0x9d, 0x7d, 0xd6, 0x66, 0xca, 0x9c, 0xd5, 0xe9, 0xb8, 0x64, 0x06, 0xd9, 0x80, 0x62, 0xd3, 0x65, 0xb5, 0x6c, 0xac, 0xe4, 0xdc, 0x51, 0x32, 0xd9, 0x04, 0x4b, 0xc6, 0x94, 0xa2, 0x94, 0xf5, 0x38,
0x1e, 0x36, 0x52, 0x6b, 0x73, 0x7a, 0xed, 0x18, 0x95, 0xec, 0x40, 0xa1, 0xdb, 0x2d, 0x76, 0x3f, 0xd8, 0x15, 0x35, 0xf9, 0x94, 0x49, 0x25, 0xa2, 0xd6, 0x1e, 0x6b, 0x32, 0x65, 0x4e, 0xeb, 0xe5,
0x20, 0x0d, 0xa3, 0xee, 0x63, 0xe6, 0xf5, 0x95, 0x2d, 0xea, 0xd3, 0x3d, 0x1a, 0x56, 0x9d, 0xf4, 0xb8, 0x26, 0x83, 0xac, 0x43, 0xb9, 0xee, 0xb1, 0x00, 0xfd, 0x4c, 0xdf, 0x82, 0xee, 0x3b, 0x42,
0x82, 0xf5, 0xdf, 0x59, 0x98, 0xef, 0x3f, 0x9c, 0x43, 0x0c, 0x4e, 0x18, 0x45, 0xf2, 0xd5, 0x00, 0x25, 0xdb, 0x50, 0xea, 0x1c, 0xaa, 0x9d, 0x57, 0x48, 0xe3, 0xc4, 0xb2, 0xcc, 0xa2, 0x3e, 0xe7,
0x92, 0x2e, 0x67, 0xb2, 0x9c, 0xdc, 0x9b, 0x31, 0x75, 0x6e, 0xa5, 0xef, 0x95, 0xfd, 0xfc, 0xd3, 0x65, 0xbd, 0xbb, 0xc7, 0x83, 0xaa, 0x9b, 0xed, 0xb0, 0xf6, 0x6e, 0x0a, 0x66, 0x7b, 0x37, 0xe7,
0x9f, 0xbf, 0xdf, 0xa7, 0x36, 0xed, 0xfb, 0x51, 0xa7, 0x94, 0xb5, 0x93, 0xb5, 0x3a, 0x2a, 0x77, 0x00, 0xa3, 0x53, 0x46, 0x91, 0xbc, 0x35, 0x80, 0x64, 0x3d, 0x80, 0x2c, 0xa5, 0xe7, 0x66, 0x84,
0xad, 0xf6, 0xb1, 0x57, 0x07, 0xe7, 0xb5, 0x81, 0x1e, 0xfb, 0x74, 0xa0, 0xba, 0xc8, 0x37, 0x03, 0x39, 0x58, 0xd9, 0x73, 0x65, 0x3f, 0x78, 0xfd, 0xed, 0xfb, 0x87, 0x89, 0x0d, 0xfb, 0xaf, 0xc4,
0x48, 0xba, 0xc8, 0x13, 0x90, 0xb1, 0xd5, 0x3f, 0x0a, 0x64, 0x47, 0x83, 0x6c, 0xd9, 0xd5, 0x09, 0x5e, 0xa5, 0x73, 0xba, 0x5a, 0x43, 0xe5, 0xad, 0x3a, 0x17, 0xdd, 0xbb, 0x73, 0xe9, 0xf4, 0x19,
0x41, 0x62, 0xe5, 0x7c, 0x88, 0xa7, 0x03, 0xb7, 0x87, 0x5a, 0x26, 0x59, 0xd2, 0x5e, 0xa3, 0x1b, 0xf3, 0xbd, 0xbe, 0x2b, 0x49, 0xde, 0x1b, 0x40, 0xb2, 0xce, 0x90, 0x82, 0x8c, 0xb4, 0x8c, 0x61,
0xe9, 0x28, 0x90, 0x0d, 0x0d, 0xb2, 0x4a, 0xfe, 0x13, 0x84, 0x7c, 0x36, 0xa0, 0x90, 0xaa, 0x7f, 0x20, 0xdb, 0x1a, 0x64, 0xd3, 0xae, 0x8e, 0x09, 0xd2, 0x56, 0x2e, 0x07, 0x78, 0x5a, 0xf0, 0xfb,
0x52, 0xd2, 0x06, 0x63, 0x3a, 0x90, 0xb5, 0x3c, 0x52, 0xed, 0x75, 0x0d, 0x7b, 0x55, 0xb3, 0xac, 0x80, 0xcf, 0x92, 0x45, 0x5d, 0x6b, 0xb8, 0xfb, 0x0e, 0x03, 0x59, 0xd7, 0x20, 0xff, 0x92, 0x9f,
0x90, 0xca, 0x84, 0x2c, 0x92, 0xfc, 0x30, 0xe0, 0xee, 0xc8, 0x67, 0x88, 0xdc, 0xd3, 0x5e, 0x97, 0x04, 0x21, 0x5f, 0x0d, 0x28, 0x65, 0xee, 0x3f, 0xa9, 0xe8, 0x02, 0x23, 0x5c, 0xcb, 0x5a, 0x1a,
0x3d, 0x51, 0x56, 0xb1, 0x1a, 0xbf, 0x8b, 0xd5, 0xee, 0xbb, 0x58, 0xdd, 0x8d, 0xde, 0x45, 0xfb, 0xaa, 0x76, 0x5d, 0xc3, 0x56, 0x9a, 0x85, 0x93, 0x95, 0x31, 0x59, 0xe4, 0xb3, 0xc7, 0xe4, 0xe1,
0x85, 0xc6, 0x78, 0xb6, 0xf2, 0x64, 0x52, 0x8c, 0x24, 0x27, 0x35, 0xd5, 0x75, 0xab, 0xcf, 0xe8, 0xb8, 0xb9, 0xce, 0xc5, 0x50, 0x4f, 0xbc, 0x24, 0x1f, 0x0d, 0x98, 0x1b, 0xfa, 0xfe, 0x91, 0x3f,
0x2d, 0x1f, 0xfe, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x68, 0x13, 0xb5, 0xa6, 0xb2, 0x07, 0x00, 0x00, 0x35, 0xef, 0x75, 0x6f, 0xa3, 0x55, 0xae, 0xb6, 0x1f, 0xe4, 0x6a, 0xe7, 0x41, 0xae, 0xee, 0x24,
0x0f, 0xb2, 0xfd, 0x48, 0x4f, 0xe5, 0xfe, 0xdf, 0x77, 0xc7, 0xc7, 0xd3, 0xeb, 0xea, 0xa8, 0x4e,
0xb5, 0xda, 0x94, 0x1e, 0xf2, 0xbf, 0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x74, 0x56, 0x62, 0x2e,
0x2b, 0x08, 0x00, 0x00,
} }
// Reference imports to suppress errors if they are not otherwise used. // Reference imports to suppress errors if they are not otherwise used.

View File

@@ -338,6 +338,97 @@ func local_request_CronWorkflowService_ListCronWorkflows_0(ctx context.Context,
} }
var (
filter_CronWorkflowService_ListCronWorkflows_1 = &utilities.DoubleArray{Encoding: map[string]int{"namespace": 0, "workflow_template_uid": 1}, Base: []int{1, 1, 2, 0, 0}, Check: []int{0, 1, 1, 2, 3}}
)
func request_CronWorkflowService_ListCronWorkflows_1(ctx context.Context, marshaler runtime.Marshaler, client CronWorkflowServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq ListCronWorkflowRequest
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["workflow_template_uid"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_template_uid")
}
protoReq.WorkflowTemplateUid, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_template_uid", err)
}
if err := req.ParseForm(); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CronWorkflowService_ListCronWorkflows_1); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := client.ListCronWorkflows(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD))
return msg, metadata, err
}
func local_request_CronWorkflowService_ListCronWorkflows_1(ctx context.Context, marshaler runtime.Marshaler, server CronWorkflowServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq ListCronWorkflowRequest
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["workflow_template_uid"]
if !ok {
return nil, metadata, status.Errorf(codes.InvalidArgument, "missing parameter %s", "workflow_template_uid")
}
protoReq.WorkflowTemplateUid, err = runtime.String(val)
if err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "type mismatch, parameter: %s, error: %v", "workflow_template_uid", err)
}
if err := runtime.PopulateQueryParameters(&protoReq, req.URL.Query(), filter_CronWorkflowService_ListCronWorkflows_1); err != nil {
return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err)
}
msg, err := server.ListCronWorkflows(ctx, &protoReq)
return msg, metadata, err
}
func request_CronWorkflowService_TerminateCronWorkflow_0(ctx context.Context, marshaler runtime.Marshaler, client CronWorkflowServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { func request_CronWorkflowService_TerminateCronWorkflow_0(ctx context.Context, marshaler runtime.Marshaler, client CronWorkflowServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) {
var protoReq TerminateCronWorkflowRequest var protoReq TerminateCronWorkflowRequest
var metadata runtime.ServerMetadata var metadata runtime.ServerMetadata
@@ -499,6 +590,26 @@ func RegisterCronWorkflowServiceHandlerServer(ctx context.Context, mux *runtime.
}) })
mux.Handle("GET", pattern_CronWorkflowService_ListCronWorkflows_1, 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_CronWorkflowService_ListCronWorkflows_1(rctx, inboundMarshaler, server, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_CronWorkflowService_ListCronWorkflows_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("DELETE", pattern_CronWorkflowService_TerminateCronWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("DELETE", pattern_CronWorkflowService_TerminateCronWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
@@ -640,6 +751,26 @@ func RegisterCronWorkflowServiceHandlerClient(ctx context.Context, mux *runtime.
}) })
mux.Handle("GET", pattern_CronWorkflowService_ListCronWorkflows_1, 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_CronWorkflowService_ListCronWorkflows_1(rctx, inboundMarshaler, client, req, pathParams)
ctx = runtime.NewServerMetadataContext(ctx, md)
if err != nil {
runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err)
return
}
forward_CronWorkflowService_ListCronWorkflows_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...)
})
mux.Handle("DELETE", pattern_CronWorkflowService_TerminateCronWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { mux.Handle("DELETE", pattern_CronWorkflowService_TerminateCronWorkflow_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) {
ctx, cancel := context.WithCancel(req.Context()) ctx, cancel := context.WithCancel(req.Context())
defer cancel() defer cancel()
@@ -672,6 +803,8 @@ var (
pattern_CronWorkflowService_ListCronWorkflows_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"apis", "v1beta1", "namespace", "cron_workflows"}, "", runtime.AssumeColonVerbOpt(true))) pattern_CronWorkflowService_ListCronWorkflows_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3}, []string{"apis", "v1beta1", "namespace", "cron_workflows"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_CronWorkflowService_ListCronWorkflows_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 1, 0, 4, 1, 5, 2, 2, 3, 1, 0, 4, 1, 5, 4}, []string{"apis", "v1beta1", "namespace", "cron_workflows", "workflow_template_uid"}, "", runtime.AssumeColonVerbOpt(true)))
pattern_CronWorkflowService_TerminateCronWorkflow_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", "cron_workflows", "name", "terminate"}, "", runtime.AssumeColonVerbOpt(true))) pattern_CronWorkflowService_TerminateCronWorkflow_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", "cron_workflows", "name", "terminate"}, "", runtime.AssumeColonVerbOpt(true)))
) )
@@ -684,5 +817,7 @@ var (
forward_CronWorkflowService_ListCronWorkflows_0 = runtime.ForwardResponseMessage forward_CronWorkflowService_ListCronWorkflows_0 = runtime.ForwardResponseMessage
forward_CronWorkflowService_ListCronWorkflows_1 = runtime.ForwardResponseMessage
forward_CronWorkflowService_TerminateCronWorkflow_0 = runtime.ForwardResponseMessage forward_CronWorkflowService_TerminateCronWorkflow_0 = runtime.ForwardResponseMessage
) )

View File

@@ -32,6 +32,9 @@ service CronWorkflowService {
rpc ListCronWorkflows(ListCronWorkflowRequest) returns (ListCronWorkflowsResponse) { rpc ListCronWorkflows(ListCronWorkflowRequest) returns (ListCronWorkflowsResponse) {
option (google.api.http) = { option (google.api.http) = {
get: "/apis/v1beta1/{namespace}/cron_workflows" get: "/apis/v1beta1/{namespace}/cron_workflows"
additional_bindings {
get: "/apis/v1beta1/{namespace}/cron_workflows/{workflow_template_uid}"
}
}; };
} }
@@ -66,8 +69,9 @@ message UpdateCronWorkflowRequest {
message ListCronWorkflowRequest { message ListCronWorkflowRequest {
string namespace = 1; string namespace = 1;
int32 pageSize = 4; string workflow_template_uid = 2;
int32 page = 5; int32 pageSize = 3;
int32 page = 4;
} }
message ListCronWorkflowsResponse { message ListCronWorkflowsResponse {

View File

@@ -2,10 +2,8 @@ package v1
import ( import (
"fmt" "fmt"
sq "github.com/Masterminds/squirrel"
wfv1 "github.com/argoproj/argo/pkg/apis/workflow/v1alpha1" wfv1 "github.com/argoproj/argo/pkg/apis/workflow/v1alpha1"
argojson "github.com/argoproj/pkg/json" argojson "github.com/argoproj/pkg/json"
"github.com/google/uuid"
"github.com/onepanelio/core/pkg/util" "github.com/onepanelio/core/pkg/util"
log "github.com/sirupsen/logrus" log "github.com/sirupsen/logrus"
"google.golang.org/grpc/codes" "google.golang.org/grpc/codes"
@@ -135,7 +133,7 @@ func (c *Client) CreateCronWorkflow(namespace string, cronWorkflow *CronWorkflow
for _, wf := range workflows { for _, wf := range workflows {
argoCronWorkflow.Spec.WorkflowSpec = wf.Spec argoCronWorkflow.Spec.WorkflowSpec = wf.Spec
argoCreatedCronWorkflow, err := c.createCronWorkflow(namespace, workflowTemplate.ID, &argoCronWorkflow, opts) argoCreatedCronWorkflow, err := c.createCronWorkflow(namespace, workflowTemplate.UID, &argoCronWorkflow, opts)
if err != nil { if err != nil {
log.WithFields(log.Fields{ log.WithFields(log.Fields{
"Namespace": namespace, "Namespace": namespace,
@@ -184,8 +182,12 @@ func (c *Client) GetCronWorkflow(namespace, name string) (cronWorkflow *CronWork
return return
} }
func (c *Client) ListCronWorkflows(namespace string) (cronWorkflows []*CronWorkflow, err error) { func (c *Client) ListCronWorkflows(namespace, workflowTemplateUID string) (cronWorkflows []*CronWorkflow, err error) {
cronWorkflowList, err := c.ArgoprojV1alpha1().CronWorkflows(namespace).List(ListOptions{}) listOptions := ListOptions{}
if workflowTemplateUID != "" {
listOptions.LabelSelector = "onepanel.io/workflow-template-uid=" + workflowTemplateUID
}
cronWorkflowList, err := c.ArgoprojV1alpha1().CronWorkflows(namespace).List(listOptions)
if err != nil { if err != nil {
log.WithFields(log.Fields{ log.WithFields(log.Fields{
"Namespace": namespace, "Namespace": namespace,
@@ -292,35 +294,35 @@ func (c *Client) updateCronWorkflow(namespace string, name string, cwf *wfv1.Cro
return return
} }
func (c *Client) createCronWorkflow(namespace string, workflowTemplateId uint64, cwf *wfv1.CronWorkflow, opts *WorkflowExecutionOptions) (createdCronWorkflow *wfv1.CronWorkflow, err error) { func (c *Client) createCronWorkflow(namespace string, workflowTemplateUid string, cwf *wfv1.CronWorkflow, opts *WorkflowExecutionOptions) (createdCronWorkflow *wfv1.CronWorkflow, err error) {
uidRaw, err := uuid.NewRandom() //uidRaw, err := uuid.NewRandom()
if err != nil { //if err != nil {
return nil, err // return nil, err
} //}
uid := uidRaw.String() //uid := uidRaw.String()
//
tx, err := c.DB.Begin() //tx, err := c.DB.Begin()
if err != nil { //if err != nil {
return nil, err // return nil, err
} //}
defer tx.Rollback() //defer tx.Rollback()
//
rows, err := sb.Insert("cron_workflows_templates"). //rows, err := sb.Insert("cron_workflows_templates").
SetMap(sq.Eq{ // SetMap(sq.Eq{
"uid": uid, // "uid": uid,
"namespace": namespace, // "namespace": namespace,
"workflow_template_id": workflowTemplateId, // "workflow_template_id": workflowTemplateId,
}).RunWith(tx).Query() // }).RunWith(tx).Query()
if err != nil { //if err != nil {
return nil, err // return nil, err
} //}
err = rows.Close() //err = rows.Close()
if err != nil { //if err != nil {
return nil, err // return nil, err
} //}
if err = tx.Commit(); err != nil { //if err = tx.Commit(); err != nil {
return nil, err // return nil, err
} //}
if opts == nil { if opts == nil {
opts = &WorkflowExecutionOptions{} opts = &WorkflowExecutionOptions{}
@@ -366,6 +368,11 @@ func (c *Client) createCronWorkflow(namespace string, workflowTemplateId uint64,
//if err = c.injectAutomatedFields(namespace, cwf.Spec.WorkflowSpec, opts); err != nil { //if err = c.injectAutomatedFields(namespace, cwf.Spec.WorkflowSpec, opts); err != nil {
// return nil, err // return nil, err
//} //}
//todo move earlier
var cwfLabels map[string]string
cwfLabels = make(map[string]string)
cwfLabels["workflowTemplateUid"] = workflowTemplateUid
//cwf.Labels
createdCronWorkflow, err = c.ArgoprojV1alpha1().CronWorkflows(namespace).Create(cwf) createdCronWorkflow, err = c.ArgoprojV1alpha1().CronWorkflows(namespace).Create(cwf)
if err != nil { if err != nil {

View File

@@ -156,7 +156,7 @@ func (c *CronWorkflowServer) ListCronWorkflows(ctx context.Context, req *api.Lis
req.PageSize = 15 req.PageSize = 15
} }
cronWorkflows, err := client.ListCronWorkflows(req.Namespace) cronWorkflows, err := client.ListCronWorkflows(req.Namespace, req.WorkflowTemplateUid)
if err != nil { if err != nil {
return nil, err return nil, err
} }