Improve label parsing code

Signed-off-by: Dmitry Chepurovskiy <dm3ch@dm3ch.net>
pull/8546/head
Dmitry Chepurovskiy 5 years ago
parent ff0c05fc30
commit 6efda0959f
No known key found for this signature in database
GPG Key ID: A9B6ED8F3D834514

@ -417,3 +417,19 @@ func (c *Configuration) Init(getter genericclioptions.RESTClientGetter, namespac
return nil
}
func parseLabels(labels string) (map[string]string, error) {
if len(labels) == 0 {
return map[string]string{}, nil
}
labelsMap := make(map[string]string)
for _, label := range strings.Split(labels, ",") {
parts := strings.Split(label, "=")
if len(parts) != 2 {
return nil, fmt.Errorf("Can't parse label: %s", label)
}
labelsMap[parts[0]] = parts[1]
}
return labelsMap, nil
}

@ -353,3 +353,20 @@ func TestValidName(t *testing.T) {
}
}
}
func TestParseLabels(t *testing.T) {
names := map[string]bool{
"": true,
"foo": false,
"foo=bar": true,
"foo=bar1,foo2=bar": true,
"foo=bar1=bar2": false,
}
for input, expectPass := range names {
_, err := parseLabels(input)
passed := err == nil
if passed != expectPass {
t.Errorf("Expected %q to %s", input, st)
}
}
}

@ -236,11 +236,8 @@ func (i *Install) Run(chrt *chart.Chart, vals map[string]interface{}) (*release.
rel := i.createRelease(chrt, vals)
// FIXME: Rework me
rel.Labels = make(map[string]string)
for _, label := range strings.Split(i.Labels, ",") {
parts := strings.Split(label, "=")
rel.Labels[parts[0]] = parts[1]
if rel.Labels, err = parseLabels(i.Labels); err != nil {
return nil, err
}
var manifestDoc *bytes.Buffer

Loading…
Cancel
Save