Merge pull request #46846 from carlory/fix

Automatic merge from submit-queue (batch tested with PRs 45877, 46846, 46630, 46087, 47003)

func parseEndpointWithFallbackProtocol should check if protocol of endpoint is empty

**What this PR does / why we need it**:
func parseEndpointWithFallbackProtocol should check if protocol of endpoint is empty
**Which issue this PR fixes** *(optional, in `fixes #<issue number>(, fixes #<issue_number>, ...)` format, will close that issue when PR gets merged)*: part of #45927
NONE
**Special notes for your reviewer**:
NONE
**Release note**:

```release-note
NONE
```
pull/6/head
Kubernetes Submit Queue 2017-06-07 17:55:46 -07:00 committed by GitHub
commit 9567a4dfb6
3 changed files with 9 additions and 6 deletions

View File

@ -39,7 +39,9 @@ func parseEndpoint(endpoint string) (string, string, error) {
return "tcp", u.Host, nil return "tcp", u.Host, nil
} else if u.Scheme == "unix" { } else if u.Scheme == "unix" {
return "unix", u.Path, nil return "unix", u.Path, nil
} else if u.Scheme == "" {
return "", "", fmt.Errorf("Using %q as endpoint is deprecated, please consider using full url format", endpoint)
} else { } else {
return "", "", fmt.Errorf("protocol %q not supported", u.Scheme) return u.Scheme, "", fmt.Errorf("protocol %q not supported", u.Scheme)
} }
} }

View File

@ -68,11 +68,11 @@ func dial(addr string, timeout time.Duration) (net.Conn, error) {
} }
func parseEndpointWithFallbackProtocol(endpoint string, fallbackProtocol string) (protocol string, addr string, err error) { func parseEndpointWithFallbackProtocol(endpoint string, fallbackProtocol string) (protocol string, addr string, err error) {
if protocol, addr, err = parseEndpoint(endpoint); err != nil { if protocol, addr, err = parseEndpoint(endpoint); err != nil && protocol == "" {
fallbackEndpoint := fallbackProtocol + "://" + endpoint fallbackEndpoint := fallbackProtocol + "://" + endpoint
protocol, addr, err = parseEndpoint(fallbackEndpoint) protocol, addr, err = parseEndpoint(fallbackEndpoint)
if err == nil { if err == nil {
glog.Warningf("Using %q as endpoint is depercated, please consider using full url format %q.", endpoint, fallbackEndpoint) glog.Warningf("Using %q as endpoint is deprecated, please consider using full url format %q.", endpoint, fallbackEndpoint)
} }
} }
return return

View File

@ -40,8 +40,9 @@ func TestParseEndpoint(t *testing.T) {
expectedAddr: "localhost:15880", expectedAddr: "localhost:15880",
}, },
{ {
endpoint: "tcp1://abc", endpoint: "tcp1://abc",
expectError: true, expectedProtocol: "tcp1",
expectError: true,
}, },
{ {
endpoint: "a b c", endpoint: "a b c",
@ -51,12 +52,12 @@ func TestParseEndpoint(t *testing.T) {
for _, test := range tests { for _, test := range tests {
protocol, addr, err := parseEndpoint(test.endpoint) protocol, addr, err := parseEndpoint(test.endpoint)
assert.Equal(t, test.expectedProtocol, protocol)
if test.expectError { if test.expectError {
assert.NotNil(t, err, "Expect error during parsing %q", test.endpoint) assert.NotNil(t, err, "Expect error during parsing %q", test.endpoint)
continue continue
} }
assert.Nil(t, err, "Expect no error during parsing %q", test.endpoint) assert.Nil(t, err, "Expect no error during parsing %q", test.endpoint)
assert.Equal(t, test.expectedProtocol, protocol)
assert.Equal(t, test.expectedAddr, addr) assert.Equal(t, test.expectedAddr, addr)
} }