Merge pull request #4067 from aledbf/normalize
Trim spaces from annotations that can contain multiple lines
This commit is contained in:
commit
fafa0a6e13
2 changed files with 24 additions and 5 deletions
|
@ -19,6 +19,7 @@ package parser
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"strconv"
|
"strconv"
|
||||||
|
"strings"
|
||||||
|
|
||||||
extensions "k8s.io/api/extensions/v1beta1"
|
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) {
|
func (a ingAnnotations) parseString(name string) (string, error) {
|
||||||
val, ok := a[name]
|
val, ok := a[name]
|
||||||
if ok {
|
if ok {
|
||||||
if len(val) == 0 {
|
s := normalizeString(val)
|
||||||
|
if len(s) == 0 {
|
||||||
return "", errors.NewInvalidAnnotationContent(name, val)
|
return "", errors.NewInvalidAnnotationContent(name, val)
|
||||||
}
|
}
|
||||||
|
|
||||||
return val, nil
|
return s, nil
|
||||||
}
|
}
|
||||||
return "", errors.ErrMissingAnnotations
|
return "", errors.ErrMissingAnnotations
|
||||||
}
|
}
|
||||||
|
@ -119,3 +121,12 @@ func GetIntAnnotation(name string, ing *extensions.Ingress) (int, error) {
|
||||||
func GetAnnotationWithPrefix(suffix string) string {
|
func GetAnnotationWithPrefix(suffix string) string {
|
||||||
return fmt.Sprintf("%v/%v", AnnotationsPrefix, suffix)
|
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")
|
||||||
|
}
|
||||||
|
|
|
@ -89,9 +89,17 @@ func TestGetStringAnnotation(t *testing.T) {
|
||||||
exp string
|
exp string
|
||||||
expErr bool
|
expErr bool
|
||||||
}{
|
}{
|
||||||
{"valid - A", "string", "A", "A", false},
|
{"valid - A", "string", "A ", "A", false},
|
||||||
{"valid - B", "string", "B", "B", false},
|
{"valid - B", "string", " B", "B", false},
|
||||||
{"empty", "string", "", "", true},
|
{"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{}
|
data := map[string]string{}
|
||||||
|
|
Loading…
Reference in a new issue