diff --git a/cmd/influxd/server_integration_test.go b/cmd/influxd/server_integration_test.go index d0d45c41fb..869c8fa6f8 100644 --- a/cmd/influxd/server_integration_test.go +++ b/cmd/influxd/server_integration_test.go @@ -351,7 +351,7 @@ func runTestsData(t *testing.T, testName string, nodes Cluster, database, retent expected: `{"results":[{}]}`, }, - // Series control tests + // Metadata display tests { reset: true, write: `{"database" : "%DB%", "retentionPolicy" : "%RP%", "points": [ @@ -391,6 +391,31 @@ func runTestsData(t *testing.T, testName string, nodes Cluster, database, retent queryDb: "%DB%", expected: `{"results":[{"series":[{"name":"cpu","columns":["id","host","region"],"values":[[3,"server01","useast"],[4,"server02","useast"]]}]}]}`, }, + { + reset: true, + write: `{"database" : "%DB%", "retentionPolicy" : "%RP%", "points": [ + {"name": "cpu", "tags": {"host": "server01"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}, + {"name": "cpu", "tags": {"host": "server01", "region": "uswest"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}, + {"name": "cpu", "tags": {"host": "server01", "region": "useast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}, + {"name": "cpu", "tags": {"host": "server02", "region": "useast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}, + {"name": "gpu", "tags": {"host": "server02", "region": "useast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}, + {"name": "gpu", "tags": {"host": "server02", "region": "caeast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}, + {"name": "other", "tags": {"host": "server03", "region": "caeast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}} + ]}`, + query: "SHOW MEASUREMENTS LIMIT 2", + queryDb: "%DB%", + expected: `{"results":[{"series":[{"name":"measurements","columns":["name"],"values":[["cpu"],["gpu"]]}]}]}`, + }, + { + query: "SHOW MEASUREMENTS WHERE region =~ /ca.*/", + queryDb: "%DB%", + expected: `{"results":[{"series":[{"name":"measurements","columns":["name"],"values":[["gpu"],["other"]]}]}]}`, + }, + { + query: "SHOW MEASUREMENTS WHERE region !~ /ca.*/", + queryDb: "%DB%", + expected: `{"results":[{"series":[{"name":"measurements","columns":["name"],"values":[["cpu"]]}]}]}`, + }, // User control tests { diff --git a/httpd/handler_test.go b/httpd/handler_test.go index 2c067d2e1d..aa850df620 100644 --- a/httpd/handler_test.go +++ b/httpd/handler_test.go @@ -1322,75 +1322,6 @@ func str2iface(strs []string) []interface{} { return a } -func TestHandler_serveShowMeasurements(t *testing.T) { - srvr := OpenAuthlessServer(NewMessagingClient()) - srvr.CreateDatabase("foo") - srvr.CreateRetentionPolicy("foo", influxdb.NewRetentionPolicy("bar")) - s := NewHTTPServer(srvr) - defer s.Close() - - status, body := MustHTTP("POST", s.URL+`/write`, nil, nil, `{"database" : "foo", "retentionPolicy" : "bar", "points": [ - {"name": "cpu", "tags": {"host": "server01"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}, - {"name": "cpu", "tags": {"host": "server01", "region": "uswest"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}, - {"name": "cpu", "tags": {"host": "server01", "region": "useast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}, - {"name": "cpu", "tags": {"host": "server02", "region": "useast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}, - {"name": "gpu", "tags": {"host": "server02", "region": "useast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}, - {"name": "gpu", "tags": {"host": "server02", "region": "caeast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}}, - {"name": "other", "tags": {"host": "server03", "region": "caeast"},"timestamp": "2009-11-10T23:00:00Z","fields": {"value": 100}} - ]}`) - - if status != http.StatusOK { - t.Log(body) - t.Fatalf("unexpected status after write: %d", status) - } - - var tests = []struct { - q string - r string - err string - }{ - // SHOW MEASUREMENTS - { - q: `SHOW MEASUREMENTS LIMIT 2`, - r: `{"results":[{"series":[{"name":"measurements","columns":["name"],"values":[["cpu"],["gpu"]]}]}]}`, - }, - - // SHOW MEASUREMENTS WHERE =~ regex - { - q: `SHOW MEASUREMENTS WHERE region =~ /ca.*/`, - r: `{"results":[{"series":[{"name":"measurements","columns":["name"],"values":[["gpu"],["other"]]}]}]}`, - }, - - // SHOW MEASUREMENTS WHERE !~ regex - { - q: `SHOW MEASUREMENTS WHERE region !~ /ca.*/`, - r: `{"results":[{"series":[{"name":"measurements","columns":["name"],"values":[["cpu"]]}]}]}`, - }, - } - - for i, tt := range tests { - query := map[string]string{"db": "foo", "q": tt.q} - status, body = MustHTTP("GET", s.URL+`/query`, query, nil, "") - - if status != http.StatusOK { - t.Logf("query #%d: %s", i, tt.q) - t.Log(body) - t.Errorf("unexpected status: %d", status) - } - - r := &influxdb.Results{} - if err := json.Unmarshal([]byte(body), r); err != nil { - t.Logf("query #%d: %s", i, tt.q) - t.Log(body) - t.Error("error marshaling result: ", err) - } - - if body != tt.r { - t.Errorf("result mismatch\n exp: %s\n got: %s\n", tt.r, body) - } - } -} - func TestHandler_serveShowTagKeys(t *testing.T) { srvr := OpenAuthlessServer(NewMessagingClient()) srvr.CreateDatabase("foo")