Merge pull request #4067 from aledbf/normalize

Trim spaces from annotations that can contain multiple lines
This commit is contained in:
Kubernetes Prow Robot 2019-05-09 07:18:51 -07:00 committed by GitHub
commit fafa0a6e13
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 5 deletions

View file

@ -19,6 +19,7 @@ package parser
import (
"fmt"
"strconv"
"strings"
extensions "k8s.io/api/extensions/v1beta1"
@ -52,11 +53,12 @@ func (a ingAnnotations) parseBool(name string) (bool, error) {
func (a ingAnnotations) parseString(name string) (string, error) {
val, ok := a[name]
if ok {
if len(val) == 0 {
s := normalizeString(val)
if len(s) == 0 {
return "", errors.NewInvalidAnnotationContent(name, val)
}
return val, nil
return s, nil
}
return "", errors.ErrMissingAnnotations
}
@ -119,3 +121,12 @@ func GetIntAnnotation(name string, ing *extensions.Ingress) (int, error) {
func GetAnnotationWithPrefix(suffix string) string {
return fmt.Sprintf("%v/%v", AnnotationsPrefix, suffix)
}
func normalizeString(input string) string {
trimmedContent := []string{}
for _, line := range strings.Split(input, "\n") {
trimmedContent = append(trimmedContent, strings.TrimSpace(line))
}
return strings.Join(trimmedContent, "\n")
}

View file

@ -92,6 +92,14 @@ func TestGetStringAnnotation(t *testing.T) {
{"valid - A", "string", "A ", "A", false},
{"valid - B", "string", " B", "B", false},
{"empty", "string", " ", "", true},
{"valid multiline", "string", `
rewrite (?i)/arcgis/rest/services/Utilities/Geometry/GeometryServer(.*)$ /arcgis/rest/services/Utilities/Geometry/GeometryServer$1 break;
rewrite (?i)/arcgis/services/Utilities/Geometry/GeometryServer(.*)$ /arcgis/services/Utilities/Geometry/GeometryServer$1 break;
`, `
rewrite (?i)/arcgis/rest/services/Utilities/Geometry/GeometryServer(.*)$ /arcgis/rest/services/Utilities/Geometry/GeometryServer$1 break;
rewrite (?i)/arcgis/services/Utilities/Geometry/GeometryServer(.*)$ /arcgis/services/Utilities/Geometry/GeometryServer$1 break;
`,
false},
}
data := map[string]string{}