Skip to content
Snippets Groups Projects
Unverified Commit df78133b authored by Daniel Nelson's avatar Daniel Nelson
Browse files

Log error if scheme is unsupported

parent bf915fa7
No related branches found
No related tags found
No related merge requests found
...@@ -159,12 +159,18 @@ func NewHTTPClient(config *HTTPConfig) (*httpClient, error) { ...@@ -159,12 +159,18 @@ func NewHTTPClient(config *HTTPConfig) (*httpClient, error) {
serializer = influx.NewSerializer() serializer = influx.NewSerializer()
} }
writeURL := makeWriteURL( writeURL, err := makeWriteURL(
config.URL, config.URL,
database, database,
config.RetentionPolicy, config.RetentionPolicy,
config.Consistency) config.Consistency)
queryURL := makeQueryURL(config.URL) if err != nil {
return nil, err
}
queryURL, err := makeQueryURL(config.URL)
if err != nil {
return nil, err
}
var transport *http.Transport var transport *http.Transport
switch config.URL.Scheme { switch config.URL.Scheme {
...@@ -399,7 +405,7 @@ func (c *httpClient) addHeaders(req *http.Request) { ...@@ -399,7 +405,7 @@ func (c *httpClient) addHeaders(req *http.Request) {
} }
} }
func makeWriteURL(loc *url.URL, db, rp, consistency string) string { func makeWriteURL(loc *url.URL, db, rp, consistency string) (string, error) {
params := url.Values{} params := url.Values{}
params.Set("db", db) params.Set("db", db)
...@@ -417,24 +423,26 @@ func makeWriteURL(loc *url.URL, db, rp, consistency string) string { ...@@ -417,24 +423,26 @@ func makeWriteURL(loc *url.URL, db, rp, consistency string) string {
u.Scheme = "http" u.Scheme = "http"
u.Host = "127.0.0.1" u.Host = "127.0.0.1"
u.Path = "/write" u.Path = "/write"
case "http": case "http", "https":
case "https":
u.Path = path.Join(u.Path, "write") u.Path = path.Join(u.Path, "write")
default:
return "", fmt.Errorf("unsupported scheme: %q", loc.Scheme)
} }
u.RawQuery = params.Encode() u.RawQuery = params.Encode()
return u.String() return u.String(), nil
} }
func makeQueryURL(loc *url.URL) string { func makeQueryURL(loc *url.URL) (string, error) {
u := *loc u := *loc
switch u.Scheme { switch u.Scheme {
case "unix": case "unix":
u.Scheme = "http" u.Scheme = "http"
u.Host = "127.0.0.1" u.Host = "127.0.0.1"
u.Path = "/query" u.Path = "/query"
case "http": case "http", "https":
case "https":
u.Path = path.Join(u.Path, "query") u.Path = path.Join(u.Path, "query")
default:
return "", fmt.Errorf("unsupported scheme: %q", loc.Scheme)
} }
return u.String() return u.String(), nil
} }
...@@ -46,6 +46,17 @@ func TestHTTP_MinimalConfig(t *testing.T) { ...@@ -46,6 +46,17 @@ func TestHTTP_MinimalConfig(t *testing.T) {
require.NoError(t, err) require.NoError(t, err)
} }
func TestHTTP_UnsupportedScheme(t *testing.T) {
config := &influxdb.HTTPConfig{
URL: &url.URL{
Scheme: "foo",
Host: "localhost",
},
}
_, err := influxdb.NewHTTPClient(config)
require.Error(t, err)
}
func TestHTTP_CreateDatabase(t *testing.T) { func TestHTTP_CreateDatabase(t *testing.T) {
ts := httptest.NewServer(http.NotFoundHandler()) ts := httptest.NewServer(http.NotFoundHandler())
defer ts.Close() defer ts.Close()
...@@ -576,9 +587,6 @@ func TestHTTP_UnixSocket(t *testing.T) { ...@@ -576,9 +587,6 @@ func TestHTTP_UnixSocket(t *testing.T) {
ts.Start() ts.Start()
defer ts.Close() defer ts.Close()
x, _ := url.Parse("unix://" + sock)
fmt.Println(x)
successResponse := []byte(`{"results": [{"statement_id": 0}]}`) successResponse := []byte(`{"results": [{"statement_id": 0}]}`)
tests := []struct { tests := []struct {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment