Skip to content

Commit 5de5f0d

Browse files
Merge pull request #125 from github/vitess-handle-http404
Vitess: handle non-200 HTTP status in ParseTablets()
2 parents b497e3d + 238a601 commit 5de5f0d

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

pkg/vitess/api_client.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ func filterReplicaTablets(settings config.VitessConfigurationSettings, tablets [
7676
return replicas
7777
}
7878

79-
// ParseTablets reads from vitess /api/ks_tablets/<keyspace>/[shard] and returns a
79+
// ParseTablets reads from vitess /api/keyspace/<keyspace>/tablets/[shard] and returns a
8080
// listing (mysql_hostname, mysql_port, type) of REPLICA tablets
8181
func ParseTablets(settings config.VitessConfigurationSettings) (tablets []Tablet, err error) {
8282
if settings.TimeoutSecs == 0 {
@@ -90,13 +90,16 @@ func ParseTablets(settings config.VitessConfigurationSettings) (tablets []Tablet
9090
if err != nil {
9191
return tablets, err
9292
}
93-
9493
defer resp.Body.Close()
94+
95+
if resp.StatusCode != http.StatusOK {
96+
return tablets, fmt.Errorf("%v", resp.Status)
97+
}
98+
9599
body, err := ioutil.ReadAll(resp.Body)
96100
if err != nil {
97101
return tablets, err
98102
}
99-
100103
err = json.Unmarshal(body, &tablets)
101104
return filterReplicaTablets(settings, tablets), err
102105
}

pkg/vitess/api_client_test.go

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,6 @@ func TestParseTablets(t *testing.T) {
5656
fmt.Fprint(w, string(data))
5757
default:
5858
w.WriteHeader(http.StatusNotFound)
59-
fmt.Fprint(w, "[]")
6059
}
6160
}))
6261
defer vitessApi.Close()
@@ -125,11 +124,11 @@ func TestParseTablets(t *testing.T) {
125124
Keyspace: "not-found",
126125
Shard: "40-80",
127126
})
128-
if err != nil {
129-
t.Fatalf("Expected no error, got %q", err)
127+
if err == nil || err.Error() != "404 Not Found" {
128+
t.Fatalf("Expected %q error, got %q", "404 Not Found", err)
130129
}
131130

132-
if len(tablets) > 0 {
131+
if len(tablets) != 0 {
133132
t.Fatalf("Expected 0 tablets, got %d", len(tablets))
134133
}
135134

0 commit comments

Comments
 (0)