Adding a fix for deleting labels from CronWorklows and WorkflowExecutions.

- WorkflowTemplates appears to be un-affected
This commit is contained in:
Aleksandr Melnikov
2020-04-02 17:16:31 -07:00
parent b32ceca18d
commit f71eb9d6ad
4 changed files with 28 additions and 17 deletions

View File

@@ -220,15 +220,15 @@ func (c *Client) SetCronWorkflowLabels(namespace, name, prefix string, keyValues
label.DeleteWithPrefix(cwf.Labels, prefix) label.DeleteWithPrefix(cwf.Labels, prefix)
} }
label.MergeLabelsPrefix(cwf.Labels, keyValues, prefix+"/") label.MergeLabelsPrefix(cwf.Labels, keyValues, prefix)
cwf, err = c.ArgoprojV1alpha1().CronWorkflows(namespace).Update(cwf) cwf, err = c.ArgoprojV1alpha1().CronWorkflows(namespace).Update(cwf)
if err != nil { if err != nil {
return nil, err return nil, err
} }
filteredMap := label.FilterByPrefix(prefix+"/", cwf.Labels) filteredMap := label.FilterByPrefix(prefix, cwf.Labels)
filteredMap = label.RemovePrefix(prefix+"/", filteredMap) filteredMap = label.RemovePrefix(prefix, filteredMap)
return filteredMap, nil return filteredMap, nil
} }

View File

@@ -981,15 +981,15 @@ func (c *Client) SetWorkflowExecutionLabels(namespace, name, prefix string, keyV
label.DeleteWithPrefix(wf.Labels, prefix) label.DeleteWithPrefix(wf.Labels, prefix)
} }
label.MergeLabelsPrefix(wf.Labels, keyValues, prefix+"/") label.MergeLabelsPrefix(wf.Labels, keyValues, prefix)
wf, err = c.ArgoprojV1alpha1().Workflows(namespace).Update(wf) wf, err = c.ArgoprojV1alpha1().Workflows(namespace).Update(wf)
if err != nil { if err != nil {
return nil, err return nil, err
} }
filteredMap := label.FilterByPrefix(prefix+"/", wf.Labels) filteredMap := label.FilterByPrefix(prefix, wf.Labels)
filteredMap = label.RemovePrefix(prefix+"/", filteredMap) filteredMap = label.RemovePrefix(prefix, filteredMap)
return filteredMap, nil return filteredMap, nil
} }
@@ -1015,15 +1015,15 @@ func (c *Client) SetWorkflowTemplateLabels(namespace, name, prefix string, keyVa
if wf.Labels == nil { if wf.Labels == nil {
wf.Labels = make(map[string]string) wf.Labels = make(map[string]string)
} }
label.MergeLabelsPrefix(wf.Labels, keyValues, prefix+"/") label.MergeLabelsPrefix(wf.Labels, keyValues, prefix)
wf, err = c.ArgoprojV1alpha1().WorkflowTemplates(namespace).Update(wf) wf, err = c.ArgoprojV1alpha1().WorkflowTemplates(namespace).Update(wf)
if err != nil { if err != nil {
return nil, err return nil, err
} }
filteredMap := label.FilterByPrefix(prefix+"/", wf.Labels) filteredMap := label.FilterByPrefix(prefix, wf.Labels)
filteredMap = label.RemovePrefix(prefix+"/", filteredMap) filteredMap = label.RemovePrefix(prefix, filteredMap)
return filteredMap, nil return filteredMap, nil
} }

View File

@@ -178,7 +178,7 @@ func (c *CronWorkflowServer) AddCronWorkflowLabels(ctx context.Context, req *api
keyValues[item.Key] = item.Value keyValues[item.Key] = item.Value
} }
labels, err := client.SetCronWorkflowLabels(req.Namespace, req.Name, "tags.onepanel.io", keyValues, false) labels, err := client.SetCronWorkflowLabels(req.Namespace, req.Name, "tags.onepanel.io/", keyValues, false)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -203,7 +203,7 @@ func (c *CronWorkflowServer) ReplaceCronWorkflowLabels(ctx context.Context, req
keyValues[item.Key] = item.Value keyValues[item.Key] = item.Value
} }
labels, err := client.SetCronWorkflowLabels(req.Namespace, req.Name, "tags.onepanel.io", keyValues, true) labels, err := client.SetCronWorkflowLabels(req.Namespace, req.Name, "tags.onepanel.io/", keyValues, true)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -222,7 +222,8 @@ func (c *CronWorkflowServer) DeleteCronWorkflowLabel(ctx context.Context, req *a
return nil, err return nil, err
} }
keyToDelete := "tags.onepanel.io/" + req.Key prefix := "tags.onepanel.io/"
keyToDelete := prefix + req.Key
labels, err := client.DeleteCronWorkflowLabel(req.Namespace, req.Name, keyToDelete) labels, err := client.DeleteCronWorkflowLabel(req.Namespace, req.Name, keyToDelete)
if err != nil { if err != nil {
return nil, err return nil, err
@@ -233,7 +234,7 @@ func (c *CronWorkflowServer) DeleteCronWorkflowLabel(ctx context.Context, req *a
keyValues[key] = val keyValues[key] = val
} }
labels, err = client.SetCronWorkflowLabels(req.Namespace, req.Name, "tags.onepanel.io", keyValues, true) labels, err = client.SetCronWorkflowLabels(req.Namespace, req.Name, "", keyValues, true)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@@ -532,7 +532,7 @@ func (s *WorkflowServer) AddWorkflowExecutionLabels(ctx context.Context, req *ap
keyValues[item.Key] = item.Value keyValues[item.Key] = item.Value
} }
labels, err := client.SetWorkflowExecutionLabels(req.Namespace, req.Name, "tags.onepanel.io", keyValues, false) labels, err := client.SetWorkflowExecutionLabels(req.Namespace, req.Name, "tags.onepanel.io/", keyValues, false)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -557,7 +557,7 @@ func (s *WorkflowServer) ReplaceWorkflowExecutionLabels(ctx context.Context, req
keyValues[item.Key] = item.Value keyValues[item.Key] = item.Value
} }
labels, err := client.SetWorkflowExecutionLabels(req.Namespace, req.Name, "tags.onepanel.io", keyValues, true) labels, err := client.SetWorkflowExecutionLabels(req.Namespace, req.Name, "tags.onepanel.io/", keyValues, true)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -582,6 +582,16 @@ func (s *WorkflowServer) DeleteWorkflowExecutionLabel(ctx context.Context, req *
return nil, err return nil, err
} }
keyValues := make(map[string]string)
for key, val := range labels {
keyValues[key] = val
}
labels, err = client.SetWorkflowExecutionLabels(req.Namespace, req.Name, "", keyValues, true)
if err != nil {
return nil, err
}
resp := &api.GetLabelsResponse{ resp := &api.GetLabelsResponse{
Labels: mapToKeyValue(labels), Labels: mapToKeyValue(labels),
} }
@@ -622,7 +632,7 @@ func (s *WorkflowServer) AddWorkflowTemplateLabels(ctx context.Context, req *api
keyValues[item.Key] = item.Value keyValues[item.Key] = item.Value
} }
labels, err := client.SetWorkflowTemplateLabels(req.Namespace, req.Name, "tags.onepanel.io", keyValues, false) labels, err := client.SetWorkflowTemplateLabels(req.Namespace, req.Name, "tags.onepanel.io/", keyValues, false)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -647,7 +657,7 @@ func (s *WorkflowServer) ReplaceWorkflowTemplateLabels(ctx context.Context, req
keyValues[item.Key] = item.Value keyValues[item.Key] = item.Value
} }
labels, err := client.SetWorkflowTemplateLabels(req.Namespace, req.Name, "tags.onepanel.io", keyValues, true) labels, err := client.SetWorkflowTemplateLabels(req.Namespace, req.Name, "tags.onepanel.io/", keyValues, true)
if err != nil { if err != nil {
return nil, err return nil, err
} }