Browse code

Revert "validate network and endpoint name more strictly"

This reverts commit 761722395d9565455f67f8ab49e5d1afbf12a856.

Signed-off-by: Madhu Venugopal <madhu@docker.com>

Madhu Venugopal authored on 2017/02/02 11:17:29
Showing 5 changed files
... ...
@@ -1,8 +1,6 @@
1 1
 package config
2 2
 
3 3
 import (
4
-	"fmt"
5
-	"regexp"
6 4
 	"strings"
7 5
 
8 6
 	"github.com/BurntSushi/toml"
... ...
@@ -17,12 +15,6 @@ import (
17 17
 	"github.com/docker/libnetwork/osl"
18 18
 )
19 19
 
20
-// RestrictedNameChars collects the characters allowed to represent a network or endpoint name.
21
-const restrictedNameChars = `[a-zA-Z0-9][a-zA-Z0-9_.-]`
22
-
23
-// RestrictedNamePattern is a regular expression to validate names against the collection of restricted characters.
24
-var restrictedNamePattern = regexp.MustCompile(`^/?` + restrictedNameChars + `+$`)
25
-
26 20
 // Config encapsulates configurations of various Libnetwork components
27 21
 type Config struct {
28 22
 	Daemon          DaemonCfg
... ...
@@ -240,12 +232,12 @@ func (c *Config) ProcessOptions(options ...Option) {
240 240
 	}
241 241
 }
242 242
 
243
-// ValidateName validates configuration objects supported by libnetwork
244
-func ValidateName(name string) error {
245
-	if !restrictedNamePattern.MatchString(name) {
246
-		return fmt.Errorf("%s includes invalid characters, only %q are allowed", name, restrictedNameChars)
243
+// IsValidName validates configuration objects supported by libnetwork
244
+func IsValidName(name string) bool {
245
+	if strings.TrimSpace(name) == "" {
246
+		return false
247 247
 	}
248
-	return nil
248
+	return true
249 249
 }
250 250
 
251 251
 // OptionLocalKVProvider function returns an option setter for kvstore provider
... ...
@@ -46,16 +46,13 @@ func TestOptionsLabels(t *testing.T) {
46 46
 }
47 47
 
48 48
 func TestValidName(t *testing.T) {
49
-	if err := ValidateName("test"); err != nil {
49
+	if !IsValidName("test") {
50 50
 		t.Fatal("Name validation fails for a name that must be accepted")
51 51
 	}
52
-	if err := ValidateName(""); err == nil {
52
+	if IsValidName("") {
53 53
 		t.Fatal("Name validation succeeds for a case when it is expected to fail")
54 54
 	}
55
-	if err := ValidateName("   "); err == nil {
56
-		t.Fatal("Name validation succeeds for a case when it is expected to fail")
57
-	}
58
-	if err := ValidateName("<>$$^"); err == nil {
55
+	if IsValidName("   ") {
59 56
 		t.Fatal("Name validation succeeds for a case when it is expected to fail")
60 57
 	}
61 58
 }
... ...
@@ -647,8 +647,8 @@ func (c *controller) NewNetwork(networkType, name string, id string, options ...
647 647
 		}
648 648
 	}
649 649
 
650
-	if err := config.ValidateName(name); err != nil {
651
-		return nil, ErrInvalidName(err.Error())
650
+	if !config.IsValidName(name) {
651
+		return nil, ErrInvalidName(name)
652 652
 	}
653 653
 
654 654
 	if id == "" {
... ...
@@ -69,7 +69,7 @@ func (ii ErrInvalidID) Error() string {
69 69
 func (ii ErrInvalidID) BadRequest() {}
70 70
 
71 71
 // ErrInvalidName is returned when a query-by-name or resource create method is
72
-// invoked with an invalid name parameter
72
+// invoked with an empty name parameter
73 73
 type ErrInvalidName string
74 74
 
75 75
 func (in ErrInvalidName) Error() string {
... ...
@@ -879,9 +879,8 @@ func (n *network) addEndpoint(ep *endpoint) error {
879 879
 
880 880
 func (n *network) CreateEndpoint(name string, options ...EndpointOption) (Endpoint, error) {
881 881
 	var err error
882
-
883
-	if err = config.ValidateName(name); err != nil {
884
-		return nil, ErrInvalidName(err.Error())
882
+	if !config.IsValidName(name) {
883
+		return nil, ErrInvalidName(name)
885 884
 	}
886 885
 
887 886
 	if _, err = n.EndpointByName(name); err == nil {