workflow list logic

This commit is contained in:
rushtehrani
2019-12-16 10:57:38 -08:00
parent e933edeff5
commit 3487fd3367
6 changed files with 74 additions and 48 deletions

View File

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

@@ -61,7 +61,7 @@ message GetWorkflowRequest {
message ListWorkflowsRequest { message ListWorkflowsRequest {
string namespace = 1; string namespace = 1;
string uid = 2; string workflowTemplateUid = 2;
} }
message ListWorkflowsResponse { message ListWorkflowsResponse {

View File

@@ -166,7 +166,7 @@
"type": "string" "type": "string"
}, },
{ {
"name": "uid", "name": "workflowTemplateUid",
"in": "query", "in": "query",
"required": false, "required": false,
"type": "string" "type": "string"

View File

@@ -6,7 +6,6 @@ import (
wfv1 "github.com/argoproj/argo/pkg/apis/workflow/v1alpha1" wfv1 "github.com/argoproj/argo/pkg/apis/workflow/v1alpha1"
"github.com/argoproj/argo/workflow/common" "github.com/argoproj/argo/workflow/common"
"github.com/argoproj/pkg/json" "github.com/argoproj/pkg/json"
"github.com/spf13/viper"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1" v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/fields"
@@ -18,6 +17,8 @@ type Workflow = wfv1.Workflow
type Parameter = wfv1.Parameter type Parameter = wfv1.Parameter
type ListOptions = v1.ListOptions
type Options struct { type Options struct {
Name string Name string
Namespace string Namespace string
@@ -26,6 +27,7 @@ type Options struct {
Parameters []Parameter Parameters []Parameter
ServiceAccount string ServiceAccount string
Labels *map[string]string Labels *map[string]string
ListOptions *ListOptions
} }
func unmarshalWorkflows(wfBytes []byte, strict bool) (wfs []Workflow, err error) { func unmarshalWorkflows(wfBytes []byte, strict bool) (wfs []Workflow, err error) {
@@ -114,13 +116,15 @@ func (c *Client) GetWorkflow(name string, opts *Options) (workflow *Workflow, er
return return
} }
func (c *Client) ListWorkflows(workflowTemplateUID string, opts *Options) (workflows []*Workflow, err error) { func (c *Client) ListWorkflows(opts *Options) (workflows []*Workflow, err error) {
workflowList, err := c.Clientset.ArgoprojV1alpha1().Workflows(opts.Namespace).List(v1.ListOptions{ if opts.ListOptions == nil {
LabelSelector: fmt.Sprintf("%s/workflow-template-uid=%s", viper.GetString("k8s.labelKeyPrefix"), workflowTemplateUID), opts.ListOptions = &ListOptions{}
}) }
workflowList, err := c.Clientset.ArgoprojV1alpha1().Workflows(opts.Namespace).List(*opts.ListOptions)
if err != nil { if err != nil {
return return
} }
fmt.Println(*opts.ListOptions)
for _, item := range workflowList.Items { for _, item := range workflowList.Items {
workflows = append(workflows, &item) workflows = append(workflows, &item)

View File

@@ -83,7 +83,15 @@ func (r *ResourceManager) GetWorkflow(namespace, name string) (workflow *model.W
} }
func (r *ResourceManager) ListWorkflows(namespace, workflowTemplateUID string) (workflows []*model.Workflow, err error) { func (r *ResourceManager) ListWorkflows(namespace, workflowTemplateUID string) (workflows []*model.Workflow, err error) {
wfs, err := r.argClient.ListWorkflows(workflowTemplateUID, &argo.Options{Namespace: namespace}) opts := &argo.Options{
Namespace: namespace,
}
if workflowTemplateUID != "" {
opts.ListOptions = &argo.ListOptions{
LabelSelector: fmt.Sprintf("%sworkflow-template-uid=%s", viper.GetString("k8s.labelKeyPrefix"), workflowTemplateUID),
}
}
wfs, err := r.argClient.ListWorkflows(opts)
if err != nil { if err != nil {
return nil, util.NewUserError(codes.NotFound, "Workflows not found.") return nil, util.NewUserError(codes.NotFound, "Workflows not found.")
} }

View File

@@ -81,7 +81,20 @@ func (s *WorkflowServer) GetWorkflow(ctx context.Context, req *api.GetWorkflowRe
} }
func (s *WorkflowServer) ListWorkflows(ctx context.Context, req *api.ListWorkflowsRequest) (*api.ListWorkflowsResponse, error) { func (s *WorkflowServer) ListWorkflows(ctx context.Context, req *api.ListWorkflowsRequest) (*api.ListWorkflowsResponse, error) {
return nil, nil workflows, err := s.resourceManager.ListWorkflows(req.Namespace, req.WorkflowTemplateUid)
if errors.As(err, &userError) {
return nil, userError.GRPCError()
}
apiWorkflows := []*api.Workflow{}
for _, wf := range workflows {
apiWorkflows = append(apiWorkflows, apiWorkflow(wf))
}
return &api.ListWorkflowsResponse{
Count: int32(len(apiWorkflows)),
Workflows: apiWorkflows,
}, nil
} }
func (s *WorkflowServer) CreateWorkflowTemplate(ctx context.Context, req *api.CreateWorkflowTemplateRequest) (*api.WorkflowTemplate, error) { func (s *WorkflowServer) CreateWorkflowTemplate(ctx context.Context, req *api.CreateWorkflowTemplateRequest) (*api.WorkflowTemplate, error) {