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

View File

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

View File

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

View File

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