Refactored CronWorkflow message.

- Moved Parameters to it's own field
- Using WorkflowTemplate directly, instead of nesting it inside of
WorkflowExecution.
- Updated related code to use new structure.
This commit is contained in:
Aleksandr Melnikov
2020-03-30 11:59:13 -07:00
parent 9045b1a3eb
commit 59cbf7d15e
6 changed files with 133 additions and 122 deletions

View File

@@ -349,18 +349,19 @@ func (m *ListCronWorkflowsResponse) GetTotalCount() int32 {
} }
type CronWorkflow struct { type CronWorkflow struct {
Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
Schedule string `protobuf:"bytes,2,opt,name=schedule,proto3" json:"schedule,omitempty"` Schedule string `protobuf:"bytes,2,opt,name=schedule,proto3" json:"schedule,omitempty"`
Timezone string `protobuf:"bytes,3,opt,name=timezone,proto3" json:"timezone,omitempty"` Timezone string `protobuf:"bytes,3,opt,name=timezone,proto3" json:"timezone,omitempty"`
Suspend bool `protobuf:"varint,4,opt,name=suspend,proto3" json:"suspend,omitempty"` Suspend bool `protobuf:"varint,4,opt,name=suspend,proto3" json:"suspend,omitempty"`
ConcurrencyPolicy string `protobuf:"bytes,5,opt,name=concurrencyPolicy,proto3" json:"concurrencyPolicy,omitempty"` ConcurrencyPolicy string `protobuf:"bytes,5,opt,name=concurrencyPolicy,proto3" json:"concurrencyPolicy,omitempty"`
StartingDeadlineSeconds int64 `protobuf:"varint,6,opt,name=startingDeadlineSeconds,proto3" json:"startingDeadlineSeconds,omitempty"` StartingDeadlineSeconds int64 `protobuf:"varint,6,opt,name=startingDeadlineSeconds,proto3" json:"startingDeadlineSeconds,omitempty"`
SuccessfulJobsHistoryLimit int32 `protobuf:"varint,7,opt,name=successfulJobsHistoryLimit,proto3" json:"successfulJobsHistoryLimit,omitempty"` SuccessfulJobsHistoryLimit int32 `protobuf:"varint,7,opt,name=successfulJobsHistoryLimit,proto3" json:"successfulJobsHistoryLimit,omitempty"`
FailedJobsHistoryLimit int32 `protobuf:"varint,8,opt,name=failedJobsHistoryLimit,proto3" json:"failedJobsHistoryLimit,omitempty"` FailedJobsHistoryLimit int32 `protobuf:"varint,8,opt,name=failedJobsHistoryLimit,proto3" json:"failedJobsHistoryLimit,omitempty"`
WorkflowExecution *WorkflowExecution `protobuf:"bytes,9,opt,name=workflowExecution,proto3" json:"workflowExecution,omitempty"` Parameters []*WorkflowExecutionParameter `protobuf:"bytes,9,rep,name=parameters,proto3" json:"parameters,omitempty"`
XXX_NoUnkeyedLiteral struct{} `json:"-"` WorkflowTemplate *WorkflowTemplate `protobuf:"bytes,10,opt,name=workflowTemplate,proto3" json:"workflowTemplate,omitempty"`
XXX_unrecognized []byte `json:"-"` XXX_NoUnkeyedLiteral struct{} `json:"-"`
XXX_sizecache int32 `json:"-"` XXX_unrecognized []byte `json:"-"`
XXX_sizecache int32 `json:"-"`
} }
func (m *CronWorkflow) Reset() { *m = CronWorkflow{} } func (m *CronWorkflow) Reset() { *m = CronWorkflow{} }
@@ -444,9 +445,16 @@ func (m *CronWorkflow) GetFailedJobsHistoryLimit() int32 {
return 0 return 0
} }
func (m *CronWorkflow) GetWorkflowExecution() *WorkflowExecution { func (m *CronWorkflow) GetParameters() []*WorkflowExecutionParameter {
if m != nil { if m != nil {
return m.WorkflowExecution return m.Parameters
}
return nil
}
func (m *CronWorkflow) GetWorkflowTemplate() *WorkflowTemplate {
if m != nil {
return m.WorkflowTemplate
} }
return nil return nil
} }
@@ -466,52 +474,53 @@ func init() {
} }
var fileDescriptor_989cccaad551a50c = []byte{ var fileDescriptor_989cccaad551a50c = []byte{
// 708 bytes of a gzipped FileDescriptorProto // 734 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0x41, 0x4f, 0x1b, 0x39, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x95, 0xdd, 0x4e, 0xdb, 0x48,
0x14, 0xc7, 0x35, 0x84, 0x40, 0xf2, 0x96, 0xdd, 0x55, 0xcc, 0x6e, 0x18, 0x86, 0x08, 0x65, 0xe7, 0x14, 0xc7, 0x65, 0x42, 0x20, 0x39, 0xcb, 0x7e, 0x30, 0x2c, 0x60, 0x4c, 0xc4, 0x66, 0x7d, 0xb3,
0xb2, 0xd1, 0x6a, 0x95, 0x00, 0xab, 0x85, 0xdd, 0x56, 0x45, 0xaa, 0x00, 0xb5, 0x42, 0x1c, 0xd0, 0xd1, 0x6a, 0x95, 0x00, 0xab, 0x42, 0x3f, 0x54, 0x2a, 0x04, 0xa8, 0x15, 0xe2, 0x02, 0x19, 0xaa,
0xd0, 0x8a, 0x23, 0x72, 0x9c, 0x97, 0xd4, 0xea, 0xc4, 0x9e, 0x8e, 0x3d, 0xd0, 0x50, 0x71, 0x69, 0x5e, 0xa2, 0x89, 0x73, 0x92, 0x8e, 0x6a, 0xcf, 0xb8, 0x9e, 0x31, 0x34, 0x54, 0xdc, 0xb4, 0x55,
0xab, 0xde, 0x7a, 0xaa, 0x7a, 0xe9, 0xe7, 0xe8, 0x77, 0xe8, 0x07, 0xe8, 0x57, 0xe8, 0x07, 0xa9, 0xef, 0x7a, 0x55, 0xf5, 0x4d, 0xfa, 0x0e, 0x7d, 0x80, 0xde, 0xf4, 0x01, 0xfa, 0x20, 0x95, 0xc7,
0xc6, 0x33, 0x09, 0x49, 0x26, 0x41, 0x29, 0xe2, 0x94, 0x79, 0xfe, 0xdb, 0xfe, 0xff, 0xf2, 0xec, 0x76, 0x48, 0x70, 0x82, 0x52, 0xc4, 0x55, 0x7c, 0xfc, 0x3f, 0x73, 0xce, 0x2f, 0x67, 0xc6, 0xff,
0xf7, 0x0c, 0xcb, 0x2c, 0x94, 0xe2, 0xec, 0x42, 0x86, 0xcf, 0xdb, 0xbe, 0xbc, 0xa8, 0x07, 0xa1, 0x81, 0x39, 0x37, 0x14, 0xfc, 0xe4, 0x4c, 0x84, 0x2f, 0xda, 0x9e, 0x38, 0xab, 0x07, 0xa1, 0x50,
0xd4, 0x92, 0xe4, 0x68, 0xc0, 0x9d, 0x4a, 0x47, 0xca, 0x8e, 0x8f, 0x0d, 0x1a, 0xf0, 0x06, 0x15, 0x82, 0x14, 0x68, 0xc0, 0xac, 0x4a, 0x47, 0x88, 0x8e, 0x87, 0x0d, 0x1a, 0xb0, 0x06, 0xe5, 0x5c,
0x42, 0x6a, 0xaa, 0xb9, 0x14, 0x2a, 0x99, 0xe2, 0xac, 0xa5, 0xaa, 0x89, 0x9a, 0x51, 0xbb, 0x81, 0x28, 0xaa, 0x98, 0xe0, 0x32, 0x49, 0xb1, 0x96, 0x53, 0x55, 0x47, 0xcd, 0xa8, 0xdd, 0x40, 0x3f,
0xdd, 0x40, 0xf7, 0x52, 0x71, 0xa5, 0xbf, 0xdf, 0x99, 0xc6, 0x6e, 0xe0, 0x53, 0x8d, 0xa9, 0xf0, 0x50, 0xdd, 0x54, 0x5c, 0xcc, 0xea, 0x9d, 0x28, 0xf4, 0x03, 0x8f, 0x2a, 0x4c, 0x85, 0xdf, 0x06,
0xcb, 0xa8, 0x91, 0xb3, 0xd4, 0x45, 0x1d, 0x72, 0x96, 0x44, 0xee, 0x31, 0x54, 0x9e, 0x60, 0xd8, 0x1b, 0x59, 0x33, 0x3e, 0xaa, 0x90, 0xb9, 0x49, 0x64, 0x1f, 0x42, 0xe5, 0x18, 0x43, 0x9f, 0x71,
0xe5, 0x82, 0x6a, 0xdc, 0x0b, 0xa5, 0x38, 0x4d, 0x27, 0x7b, 0xf8, 0x22, 0x42, 0xa5, 0x49, 0x05, 0xaa, 0x70, 0x27, 0x14, 0xfc, 0x59, 0x9a, 0xec, 0xe0, 0xcb, 0x08, 0xa5, 0x22, 0x15, 0x28, 0x73,
0x8a, 0x82, 0x76, 0x51, 0x05, 0x94, 0xa1, 0x6d, 0x55, 0xad, 0x5a, 0xd1, 0xbb, 0x1e, 0x20, 0x04, 0xea, 0xa3, 0x0c, 0xa8, 0x8b, 0xa6, 0x51, 0x35, 0x6a, 0x65, 0xe7, 0xf2, 0x05, 0x21, 0x30, 0x19,
0xe6, 0xe3, 0xc0, 0x9e, 0x33, 0x82, 0xf9, 0x76, 0x0f, 0xa1, 0xfc, 0x08, 0xf5, 0xdd, 0xec, 0x15, 0x07, 0xe6, 0x84, 0x16, 0xf4, 0xb3, 0xbd, 0x0f, 0x0b, 0x8f, 0x51, 0xdd, 0x4e, 0xad, 0x00, 0x96,
0xc0, 0xea, 0x5e, 0x88, 0xb7, 0x42, 0xfb, 0x17, 0x96, 0xd8, 0xd0, 0x22, 0xb3, 0xed, 0x4f, 0x5b, 0x76, 0x42, 0xbc, 0x11, 0xda, 0x1d, 0x98, 0x71, 0xfb, 0x16, 0xe9, 0xb2, 0xbf, 0xac, 0xcf, 0xd6,
0xa5, 0x3a, 0x0d, 0x78, 0x7d, 0x64, 0xb7, 0x91, 0x69, 0xee, 0x5b, 0x0b, 0x56, 0x9f, 0x06, 0xad, 0x69, 0xc0, 0xea, 0x03, 0xd5, 0x06, 0xd2, 0xec, 0x77, 0x06, 0x2c, 0x3d, 0x0d, 0x5a, 0xb7, 0x35,
0xbb, 0xca, 0x46, 0x06, 0x23, 0x37, 0x1b, 0x46, 0x07, 0x56, 0x8e, 0xb8, 0xba, 0x45, 0x16, 0x1d, 0x8d, 0x1c, 0x46, 0x61, 0x3c, 0x8c, 0x0e, 0x2c, 0x1e, 0x30, 0x79, 0x83, 0x29, 0x5a, 0x50, 0x0a,
0x28, 0x04, 0xb4, 0x83, 0x27, 0xfc, 0x12, 0xed, 0xf9, 0xaa, 0x55, 0xcb, 0x7b, 0x83, 0x38, 0xe6, 0x68, 0x07, 0x8f, 0xd8, 0x39, 0x9a, 0x93, 0x55, 0xa3, 0x56, 0x74, 0x7a, 0x71, 0xcc, 0x17, 0x3f,
0x8b, 0xbf, 0xed, 0xbc, 0x19, 0x37, 0xdf, 0xee, 0x67, 0x0b, 0x56, 0xc7, 0x9d, 0x94, 0x87, 0x2a, 0x9b, 0x45, 0xfd, 0x5e, 0x3f, 0xdb, 0x9f, 0x0d, 0x58, 0xba, 0xda, 0x49, 0x3a, 0x28, 0x03, 0xc1,
0x90, 0x42, 0x21, 0xf9, 0x0d, 0xf2, 0x4c, 0x46, 0x42, 0x1b, 0x9f, 0xbc, 0x97, 0x04, 0x64, 0x07, 0x25, 0x92, 0x3f, 0xa1, 0xe8, 0x8a, 0x88, 0x2b, 0xdd, 0xa7, 0xe8, 0x24, 0x01, 0xd9, 0x84, 0x5f,
0x7e, 0x1e, 0x86, 0x55, 0xf6, 0x5c, 0x35, 0x37, 0xf9, 0x4f, 0x8d, 0xce, 0x1b, 0x00, 0xe4, 0xae, 0xfb, 0x61, 0xa5, 0x39, 0x51, 0x2d, 0x0c, 0xff, 0x53, 0x83, 0x79, 0x3d, 0x80, 0xc2, 0x25, 0x40,
0x01, 0x62, 0x8b, 0xf8, 0x57, 0xa5, 0xb4, 0x49, 0x40, 0xd6, 0x01, 0xb4, 0xd4, 0xd4, 0xdf, 0x33, 0xdc, 0x22, 0xfe, 0x95, 0x29, 0x6d, 0x12, 0x90, 0x15, 0x00, 0x25, 0x14, 0xf5, 0x76, 0x74, 0xf7,
0xee, 0x09, 0xf0, 0xd0, 0x88, 0xfb, 0x29, 0x07, 0x4b, 0xc3, 0x4e, 0x83, 0xdc, 0x5b, 0x43, 0xb9, 0x04, 0xb8, 0xef, 0x8d, 0xfd, 0xad, 0x00, 0x33, 0xfd, 0x9d, 0x7a, 0xb3, 0x37, 0xfa, 0x66, 0x6f,
0x77, 0xa0, 0xa0, 0xd8, 0x33, 0x6c, 0x45, 0x7e, 0xff, 0x4c, 0x06, 0x71, 0xac, 0x69, 0xde, 0xc5, 0x41, 0x49, 0xba, 0xcf, 0xb1, 0x15, 0x79, 0xd9, 0x9e, 0xf4, 0xe2, 0x58, 0x53, 0xcc, 0xc7, 0x73,
0x4b, 0x29, 0x12, 0x9c, 0xa2, 0x37, 0x88, 0x89, 0x0d, 0x8b, 0x2a, 0x52, 0x01, 0x8a, 0x96, 0x81, 0xc1, 0x13, 0x9c, 0xb2, 0xd3, 0x8b, 0x89, 0x09, 0xd3, 0x32, 0x92, 0x01, 0xf2, 0x96, 0x86, 0x2a,
0x2a, 0x78, 0xfd, 0x90, 0xfc, 0x0d, 0x25, 0x26, 0x05, 0x8b, 0xc2, 0x10, 0x05, 0xeb, 0x1d, 0x4b, 0x39, 0x59, 0x48, 0xfe, 0x83, 0x59, 0x57, 0x70, 0x37, 0x0a, 0x43, 0xe4, 0x6e, 0xf7, 0x50, 0x78,
0x9f, 0xb3, 0x9e, 0xa1, 0x2b, 0x7a, 0x59, 0x81, 0xfc, 0x07, 0x2b, 0x4a, 0xd3, 0x50, 0x73, 0xd1, 0xcc, 0xed, 0x6a, 0xba, 0xb2, 0x93, 0x17, 0xc8, 0x5d, 0x58, 0x94, 0x8a, 0x86, 0x8a, 0xf1, 0xce,
0xd9, 0x47, 0xda, 0xf2, 0xb9, 0xc0, 0x13, 0x64, 0x52, 0xb4, 0x94, 0xbd, 0x50, 0xb5, 0x6a, 0x39, 0x2e, 0xd2, 0x96, 0xc7, 0x38, 0x1e, 0xa1, 0x2b, 0x78, 0x4b, 0x9a, 0x53, 0x55, 0xa3, 0x56, 0x70,
0x6f, 0x9a, 0x4c, 0x76, 0xc1, 0x51, 0x11, 0x63, 0xa8, 0x54, 0x3b, 0xf2, 0x0f, 0x65, 0x53, 0x3d, 0x46, 0xc9, 0x64, 0x0b, 0x2c, 0x19, 0xb9, 0x2e, 0x4a, 0xd9, 0x8e, 0xbc, 0x7d, 0xd1, 0x94, 0x4f,
0xe6, 0x4a, 0xcb, 0xb0, 0x77, 0xc4, 0xbb, 0x5c, 0xdb, 0x8b, 0x26, 0x1d, 0x37, 0xcc, 0x20, 0xdb, 0x98, 0x54, 0x22, 0xec, 0x1e, 0x30, 0x9f, 0x29, 0x73, 0x5a, 0x8f, 0xe3, 0x9a, 0x0c, 0xb2, 0x01,
0x50, 0x6e, 0x53, 0xee, 0x63, 0x2b, 0xb3, 0xb6, 0x60, 0xd6, 0x4e, 0x51, 0xc9, 0x3e, 0x94, 0xfa, 0x0b, 0x6d, 0xca, 0x3c, 0x6c, 0xe5, 0xd6, 0x96, 0xf4, 0xda, 0x11, 0x2a, 0x79, 0x04, 0x10, 0xd0,
0xdd, 0xe2, 0xe0, 0x25, 0xb2, 0x28, 0xee, 0x3e, 0x76, 0xd1, 0x5c, 0xd9, 0xb2, 0x39, 0xdd, 0xd3, 0x90, 0xfa, 0xa8, 0x30, 0x94, 0x66, 0x59, 0x6f, 0xeb, 0x5f, 0x7a, 0x5b, 0xb3, 0x41, 0xef, 0xbd,
0x71, 0xd5, 0xcb, 0x2e, 0xd8, 0xfa, 0x92, 0x87, 0xe5, 0xe1, 0xc3, 0x39, 0xc1, 0xf0, 0x9c, 0x33, 0x42, 0x37, 0x8a, 0x4d, 0xe9, 0x30, 0xcb, 0x73, 0xfa, 0x96, 0x90, 0x6d, 0xf8, 0x23, 0xb3, 0x9b,
0x24, 0xef, 0x2c, 0x20, 0xd9, 0x72, 0x26, 0xeb, 0xe9, 0xbd, 0x99, 0x52, 0xe7, 0x4e, 0xf6, 0x5e, 0xe3, 0xd4, 0x86, 0x4c, 0xd0, 0x47, 0x7e, 0x7e, 0xa0, 0x4c, 0x26, 0x3a, 0xb9, 0xf4, 0xf5, 0x2f,
0xb9, 0x0f, 0x5e, 0x7f, 0xfd, 0xf6, 0x61, 0x6e, 0xc7, 0xfd, 0x33, 0xee, 0x94, 0xaa, 0x71, 0xbe, 0x45, 0x98, 0xeb, 0xdf, 0xda, 0x23, 0x0c, 0x4f, 0x99, 0x8b, 0xe4, 0xbd, 0x01, 0x24, 0x6f, 0x06,
0xd9, 0x44, 0x4d, 0x37, 0x1b, 0xaf, 0x06, 0x75, 0x70, 0xd5, 0x18, 0xe9, 0xb1, 0xf7, 0x46, 0xaa, 0x64, 0x25, 0x3d, 0x75, 0x23, 0x5c, 0xc2, 0xca, 0x9f, 0x4a, 0xfb, 0xe1, 0x9b, 0xaf, 0xdf, 0x3f,
0x8b, 0xbc, 0xb7, 0x80, 0x64, 0x8b, 0x3c, 0x05, 0x99, 0x5a, 0xfd, 0x93, 0x40, 0xf6, 0x0d, 0xc8, 0x4e, 0x6c, 0xda, 0xff, 0xc4, 0x3e, 0x2b, 0x1b, 0xa7, 0x6b, 0x4d, 0x54, 0x74, 0xad, 0xf1, 0xba,
0xae, 0x5b, 0x9f, 0x11, 0x24, 0x51, 0xae, 0xc6, 0x78, 0x7a, 0xf0, 0xeb, 0x58, 0xcb, 0x24, 0x6b, 0xf7, 0x15, 0x5d, 0x34, 0x06, 0x1c, 0xfa, 0xfe, 0xc0, 0xb7, 0x49, 0x3e, 0x18, 0x40, 0xf2, 0x16,
0xc6, 0x6b, 0x72, 0x23, 0x9d, 0x04, 0xb2, 0x6d, 0x40, 0x36, 0xc8, 0x0f, 0x82, 0x90, 0x37, 0x16, 0x91, 0x82, 0x8c, 0xf4, 0x8e, 0x61, 0x20, 0xbb, 0x1a, 0x64, 0xcb, 0xae, 0x8f, 0x09, 0x92, 0x28,
0x94, 0x32, 0xf5, 0x4f, 0x2a, 0xc6, 0x60, 0x4a, 0x07, 0x72, 0xd6, 0x27, 0xaa, 0x83, 0xae, 0xe1, 0x17, 0x57, 0x78, 0xba, 0xf0, 0xfb, 0x15, 0xc3, 0x25, 0xcb, 0xba, 0xd7, 0x70, 0x1b, 0x1e, 0x06,
0x6e, 0x18, 0x96, 0xbf, 0x48, 0x6d, 0x46, 0x16, 0x45, 0x3e, 0x5a, 0xf0, 0xfb, 0xc4, 0x67, 0x88, 0xb2, 0xa1, 0x41, 0x56, 0xc9, 0x4f, 0x82, 0x90, 0xb7, 0x06, 0xcc, 0xe6, 0xdc, 0x83, 0x54, 0x74,
0xfc, 0x61, 0xbc, 0x6e, 0x7a, 0xa2, 0x9c, 0x72, 0x3d, 0x79, 0x17, 0xeb, 0xfd, 0x77, 0xb1, 0x7e, 0x83, 0x11, 0xfe, 0x65, 0xad, 0x0c, 0x55, 0x7b, 0x9e, 0x63, 0xaf, 0x6a, 0x96, 0x7f, 0x49, 0x6d,
0x10, 0xbf, 0x8b, 0xee, 0x43, 0x83, 0x71, 0xdf, 0xf9, 0x7f, 0x56, 0x8c, 0x34, 0x27, 0x0d, 0xdd, 0x4c, 0x16, 0x49, 0x3e, 0x19, 0x30, 0x3f, 0xf4, 0x12, 0x23, 0x7f, 0xeb, 0x5e, 0xd7, 0x5d, 0x70,
0x77, 0x6b, 0x2e, 0x98, 0x2d, 0xff, 0xf9, 0x1e, 0x00, 0x00, 0xff, 0xff, 0x7e, 0xac, 0xa1, 0xb6, 0xd6, 0x42, 0x3d, 0xb9, 0x55, 0xeb, 0xd9, 0xad, 0x5a, 0xdf, 0x8b, 0x6f, 0x55, 0x7b, 0x5b, 0x63,
0xb2, 0x07, 0x00, 0x00, 0x3c, 0xb0, 0xee, 0x8d, 0x8b, 0x91, 0xce, 0xa4, 0xa1, 0xb2, 0x6e, 0xcd, 0x29, 0x5d, 0xf2, 0xff,
0x1f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x8f, 0x32, 0xd1, 0x1d, 0xf0, 0x07, 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

@@ -88,6 +88,6 @@ message CronWorkflow {
int64 startingDeadlineSeconds = 6; int64 startingDeadlineSeconds = 6;
int32 successfulJobsHistoryLimit = 7; int32 successfulJobsHistoryLimit = 7;
int32 failedJobsHistoryLimit = 8; int32 failedJobsHistoryLimit = 8;
repeated WorkflowExecutionParameter parameters = 9;
WorkflowExecution workflowExecution = 9; WorkflowTemplate workflowTemplate = 10;
} }

View File

@@ -14,8 +14,7 @@ import (
) )
func (c *Client) UpdateCronWorkflow(namespace string, name string, cronWorkflow *CronWorkflow) (*CronWorkflow, error) { func (c *Client) UpdateCronWorkflow(namespace string, name string, cronWorkflow *CronWorkflow) (*CronWorkflow, error) {
workflow := cronWorkflow.WorkflowExecution workflowTemplate, err := c.GetWorkflowTemplate(namespace, cronWorkflow.WorkflowTemplate.UID, cronWorkflow.WorkflowTemplate.Version)
workflowTemplate, err := c.GetWorkflowTemplate(namespace, workflow.WorkflowTemplate.UID, workflow.WorkflowTemplate.Version)
if err != nil { if err != nil {
log.WithFields(log.Fields{ log.WithFields(log.Fields{
"Namespace": namespace, "Namespace": namespace,
@@ -29,7 +28,7 @@ func (c *Client) UpdateCronWorkflow(namespace string, name string, cronWorkflow
opts := &WorkflowExecutionOptions{} opts := &WorkflowExecutionOptions{}
re, _ := regexp.Compile(`[^a-zA-Z0-9-]{1,}`) re, _ := regexp.Compile(`[^a-zA-Z0-9-]{1,}`)
opts.GenerateName = strings.ToLower(re.ReplaceAllString(workflowTemplate.Name, `-`)) + "-" opts.GenerateName = strings.ToLower(re.ReplaceAllString(workflowTemplate.Name, `-`)) + "-"
for _, param := range workflow.Parameters { for _, param := range cronWorkflow.WorkflowExecutionParameters {
opts.Parameters = append(opts.Parameters, WorkflowExecutionParameter{ opts.Parameters = append(opts.Parameters, WorkflowExecutionParameter{
Name: param.Name, Name: param.Name,
Value: param.Value, Value: param.Value,
@@ -54,7 +53,7 @@ func (c *Client) UpdateCronWorkflow(namespace string, name string, cronWorkflow
if err != nil { if err != nil {
log.WithFields(log.Fields{ log.WithFields(log.Fields{
"Namespace": namespace, "Namespace": namespace,
"CronWorkflow": workflow, "CronWorkflow": cronWorkflow,
"Error": err.Error(), "Error": err.Error(),
}).Error("Error parsing workflow.") }).Error("Error parsing workflow.")
return nil, err return nil, err
@@ -74,9 +73,9 @@ func (c *Client) UpdateCronWorkflow(namespace string, name string, cronWorkflow
cronWorkflow.Name = argoCreatedCronWorkflow.Name cronWorkflow.Name = argoCreatedCronWorkflow.Name
cronWorkflow.CreatedAt = argoCreatedCronWorkflow.CreationTimestamp.UTC() cronWorkflow.CreatedAt = argoCreatedCronWorkflow.CreationTimestamp.UTC()
cronWorkflow.UID = string(argoCreatedCronWorkflow.ObjectMeta.UID) cronWorkflow.UID = string(argoCreatedCronWorkflow.ObjectMeta.UID)
cronWorkflow.WorkflowExecution.WorkflowTemplate = workflowTemplate cronWorkflow.WorkflowTemplate = workflowTemplate
// Manifests could get big, don't return them in this case. // Manifests could get big, don't return them in this case.
cronWorkflow.WorkflowExecution.WorkflowTemplate.Manifest = "" cronWorkflow.WorkflowTemplate.Manifest = ""
return cronWorkflow, nil return cronWorkflow, nil
} }
@@ -84,9 +83,7 @@ func (c *Client) UpdateCronWorkflow(namespace string, name string, cronWorkflow
} }
func (c *Client) CreateCronWorkflow(namespace string, cronWorkflow *CronWorkflow) (*CronWorkflow, error) { func (c *Client) CreateCronWorkflow(namespace string, cronWorkflow *CronWorkflow) (*CronWorkflow, error) {
workflowTemplate, err := c.GetWorkflowTemplate(namespace, cronWorkflow.WorkflowTemplate.UID, cronWorkflow.WorkflowTemplate.Version)
workflow := cronWorkflow.WorkflowExecution
workflowTemplate, err := c.GetWorkflowTemplate(namespace, workflow.WorkflowTemplate.UID, workflow.WorkflowTemplate.Version)
if err != nil { if err != nil {
log.WithFields(log.Fields{ log.WithFields(log.Fields{
"Namespace": namespace, "Namespace": namespace,
@@ -100,7 +97,7 @@ func (c *Client) CreateCronWorkflow(namespace string, cronWorkflow *CronWorkflow
opts := &WorkflowExecutionOptions{} opts := &WorkflowExecutionOptions{}
re, _ := regexp.Compile(`[^a-zA-Z0-9-]{1,}`) re, _ := regexp.Compile(`[^a-zA-Z0-9-]{1,}`)
opts.GenerateName = strings.ToLower(re.ReplaceAllString(workflowTemplate.Name, `-`)) + "-" opts.GenerateName = strings.ToLower(re.ReplaceAllString(workflowTemplate.Name, `-`)) + "-"
for _, param := range workflow.Parameters { for _, param := range cronWorkflow.WorkflowExecutionParameters {
opts.Parameters = append(opts.Parameters, WorkflowExecutionParameter{ opts.Parameters = append(opts.Parameters, WorkflowExecutionParameter{
Name: param.Name, Name: param.Name,
Value: param.Value, Value: param.Value,
@@ -125,7 +122,7 @@ func (c *Client) CreateCronWorkflow(namespace string, cronWorkflow *CronWorkflow
if err != nil { if err != nil {
log.WithFields(log.Fields{ log.WithFields(log.Fields{
"Namespace": namespace, "Namespace": namespace,
"CronWorkflow": workflow, "CronWorkflow": cronWorkflow,
"Error": err.Error(), "Error": err.Error(),
}).Error("Error parsing workflow.") }).Error("Error parsing workflow.")
return nil, err return nil, err
@@ -145,9 +142,9 @@ func (c *Client) CreateCronWorkflow(namespace string, cronWorkflow *CronWorkflow
cronWorkflow.Name = argoCreatedCronWorkflow.Name cronWorkflow.Name = argoCreatedCronWorkflow.Name
cronWorkflow.CreatedAt = argoCreatedCronWorkflow.CreationTimestamp.UTC() cronWorkflow.CreatedAt = argoCreatedCronWorkflow.CreationTimestamp.UTC()
cronWorkflow.UID = string(argoCreatedCronWorkflow.ObjectMeta.UID) cronWorkflow.UID = string(argoCreatedCronWorkflow.ObjectMeta.UID)
cronWorkflow.WorkflowExecution.WorkflowTemplate = workflowTemplate cronWorkflow.WorkflowTemplate = workflowTemplate
// Manifests could get big, don't return them in this case. // Manifests could get big, don't return them in this case.
cronWorkflow.WorkflowExecution.WorkflowTemplate.Manifest = "" cronWorkflow.WorkflowTemplate.Manifest = ""
return cronWorkflow, nil return cronWorkflow, nil
} }
@@ -176,7 +173,6 @@ func (c *Client) GetCronWorkflow(namespace, name string) (cronWorkflow *CronWork
StartingDeadlineSeconds: cwf.Spec.StartingDeadlineSeconds, StartingDeadlineSeconds: cwf.Spec.StartingDeadlineSeconds,
SuccessfulJobsHistoryLimit: cwf.Spec.SuccessfulJobsHistoryLimit, SuccessfulJobsHistoryLimit: cwf.Spec.SuccessfulJobsHistoryLimit,
FailedJobsHistoryLimit: cwf.Spec.FailedJobsHistoryLimit, FailedJobsHistoryLimit: cwf.Spec.FailedJobsHistoryLimit,
WorkflowExecution: nil,
} }
return return
@@ -211,7 +207,6 @@ func (c *Client) ListCronWorkflows(namespace string) (cronWorkflows []*CronWorkf
StartingDeadlineSeconds: cwf.Spec.StartingDeadlineSeconds, StartingDeadlineSeconds: cwf.Spec.StartingDeadlineSeconds,
SuccessfulJobsHistoryLimit: cwf.Spec.SuccessfulJobsHistoryLimit, SuccessfulJobsHistoryLimit: cwf.Spec.SuccessfulJobsHistoryLimit,
FailedJobsHistoryLimit: cwf.Spec.FailedJobsHistoryLimit, FailedJobsHistoryLimit: cwf.Spec.FailedJobsHistoryLimit,
WorkflowExecution: nil,
}) })
} }
return return

View File

@@ -36,19 +36,20 @@ type Metric struct {
} }
type CronWorkflow struct { type CronWorkflow struct {
ID uint64 ID uint64
CreatedAt time.Time `db:"created_at"` CreatedAt time.Time `db:"created_at"`
UID string UID string
Name string Name string
GenerateName string GenerateName string
Schedule string Schedule string
Timezone string Timezone string
Suspend bool Suspend bool
ConcurrencyPolicy string ConcurrencyPolicy string
StartingDeadlineSeconds *int64 StartingDeadlineSeconds *int64
SuccessfulJobsHistoryLimit *int32 SuccessfulJobsHistoryLimit *int32
FailedJobsHistoryLimit *int32 FailedJobsHistoryLimit *int32
WorkflowExecution *WorkflowExecution WorkflowExecutionParameters []*WorkflowExecutionParameter
WorkflowTemplate *WorkflowTemplate
} }
type WorkflowTemplate struct { type WorkflowTemplate struct {

View File

@@ -37,8 +37,8 @@ func apiCronWorkflow(cwf *v1.CronWorkflow) (cronWorkflow *api.CronWorkflow) {
cronWorkflow.FailedJobsHistoryLimit = *cwf.FailedJobsHistoryLimit cronWorkflow.FailedJobsHistoryLimit = *cwf.FailedJobsHistoryLimit
} }
if cwf.WorkflowExecution != nil { if cwf.WorkflowTemplate != nil {
cronWorkflow.WorkflowExecution = GenApiWorkflowExecution(cwf.WorkflowExecution) cronWorkflow.WorkflowTemplate = GenApiWorkflowTemplate(cwf.WorkflowTemplate)
} }
return return
@@ -51,28 +51,29 @@ func (c *CronWorkflowServer) CreateCronWorkflow(ctx context.Context, req *api.Cr
return nil, err return nil, err
} }
workflow := &v1.WorkflowExecution{ workflowTemplate := &v1.WorkflowTemplate{
WorkflowTemplate: &v1.WorkflowTemplate{ UID: req.CronWorkflow.WorkflowTemplate.Uid,
UID: req.CronWorkflow.WorkflowExecution.WorkflowTemplate.Uid, Version: req.CronWorkflow.WorkflowTemplate.Version,
Version: req.CronWorkflow.WorkflowExecution.WorkflowTemplate.Version,
},
} }
for _, param := range req.CronWorkflow.WorkflowExecution.Parameters {
workflow.Parameters = append(workflow.Parameters, v1.WorkflowExecutionParameter{ var workflowExecutionParams []*v1.WorkflowExecutionParameter
for _, param := range req.CronWorkflow.Parameters {
workflowExecutionParams = append(workflowExecutionParams, &v1.WorkflowExecutionParameter{
Name: param.Name, Name: param.Name,
Value: ptr.String(param.Value), Value: ptr.String(param.Value),
}) })
} }
cronWorkflow := v1.CronWorkflow{ cronWorkflow := v1.CronWorkflow{
Schedule: req.CronWorkflow.Schedule, Schedule: req.CronWorkflow.Schedule,
Timezone: req.CronWorkflow.Timezone, Timezone: req.CronWorkflow.Timezone,
Suspend: req.CronWorkflow.Suspend, Suspend: req.CronWorkflow.Suspend,
ConcurrencyPolicy: req.CronWorkflow.ConcurrencyPolicy, ConcurrencyPolicy: req.CronWorkflow.ConcurrencyPolicy,
StartingDeadlineSeconds: &req.CronWorkflow.StartingDeadlineSeconds, StartingDeadlineSeconds: &req.CronWorkflow.StartingDeadlineSeconds,
SuccessfulJobsHistoryLimit: &req.CronWorkflow.SuccessfulJobsHistoryLimit, SuccessfulJobsHistoryLimit: &req.CronWorkflow.SuccessfulJobsHistoryLimit,
FailedJobsHistoryLimit: &req.CronWorkflow.FailedJobsHistoryLimit, FailedJobsHistoryLimit: &req.CronWorkflow.FailedJobsHistoryLimit,
WorkflowExecution: workflow, WorkflowExecutionParameters: workflowExecutionParams,
WorkflowTemplate: workflowTemplate,
} }
cwf, err := client.CreateCronWorkflow(req.Namespace, &cronWorkflow) cwf, err := client.CreateCronWorkflow(req.Namespace, &cronWorkflow)
@@ -91,28 +92,29 @@ func (c *CronWorkflowServer) UpdateCronWorkflow(ctx context.Context, req *api.Up
if err != nil || !allowed { if err != nil || !allowed {
return nil, err return nil, err
} }
workflow := &v1.WorkflowExecution{ workflowTemplate := &v1.WorkflowTemplate{
WorkflowTemplate: &v1.WorkflowTemplate{ UID: req.CronWorkflow.WorkflowTemplate.Uid,
UID: req.CronWorkflow.WorkflowExecution.WorkflowTemplate.Uid, Version: req.CronWorkflow.WorkflowTemplate.Version,
Version: req.CronWorkflow.WorkflowExecution.WorkflowTemplate.Version,
},
} }
for _, param := range req.CronWorkflow.WorkflowExecution.Parameters {
workflow.Parameters = append(workflow.Parameters, v1.WorkflowExecutionParameter{ var workflowExecutionParams []*v1.WorkflowExecutionParameter
for _, param := range req.CronWorkflow.Parameters {
workflowExecutionParams = append(workflowExecutionParams, &v1.WorkflowExecutionParameter{
Name: param.Name, Name: param.Name,
Value: ptr.String(param.Value), Value: ptr.String(param.Value),
}) })
} }
cronWorkflow := v1.CronWorkflow{ cronWorkflow := v1.CronWorkflow{
Schedule: req.CronWorkflow.Schedule, Schedule: req.CronWorkflow.Schedule,
Timezone: req.CronWorkflow.Timezone, Timezone: req.CronWorkflow.Timezone,
Suspend: req.CronWorkflow.Suspend, Suspend: req.CronWorkflow.Suspend,
ConcurrencyPolicy: req.CronWorkflow.ConcurrencyPolicy, ConcurrencyPolicy: req.CronWorkflow.ConcurrencyPolicy,
StartingDeadlineSeconds: &req.CronWorkflow.StartingDeadlineSeconds, StartingDeadlineSeconds: &req.CronWorkflow.StartingDeadlineSeconds,
SuccessfulJobsHistoryLimit: &req.CronWorkflow.SuccessfulJobsHistoryLimit, SuccessfulJobsHistoryLimit: &req.CronWorkflow.SuccessfulJobsHistoryLimit,
FailedJobsHistoryLimit: &req.CronWorkflow.FailedJobsHistoryLimit, FailedJobsHistoryLimit: &req.CronWorkflow.FailedJobsHistoryLimit,
WorkflowExecution: workflow, WorkflowExecutionParameters: workflowExecutionParams,
WorkflowTemplate: workflowTemplate,
} }
cwf, err := client.UpdateCronWorkflow(req.Namespace, req.Name, &cronWorkflow) cwf, err := client.UpdateCronWorkflow(req.Namespace, req.Name, &cronWorkflow)

View File

@@ -57,6 +57,10 @@ func apiWorkflowExecution(wf *v1.WorkflowExecution) (workflow *api.WorkflowExecu
return return
} }
func GenApiWorkflowTemplate(wft *v1.WorkflowTemplate) *api.WorkflowTemplate {
return apiWorkflowTemplate(wft)
}
func apiWorkflowTemplate(wft *v1.WorkflowTemplate) *api.WorkflowTemplate { func apiWorkflowTemplate(wft *v1.WorkflowTemplate) *api.WorkflowTemplate {
return &api.WorkflowTemplate{ return &api.WorkflowTemplate{
Uid: wft.UID, Uid: wft.UID,