Susumu Yata
null+****@clear*****
Tue Sep 12 16:29:19 JST 2017
Susumu Yata 2017-09-12 16:29:19 +0900 (Tue, 12 Sep 2017) New Revision: d1a5a461e689a22406b65ca9e15b2156517a562d https://github.com/groonga/grnci/commit/d1a5a461e689a22406b65ca9e15b2156517a562d Message: Simplify DB.Status. Ref: #42 Modified files: v2/db.go v2/libgrn/db_test.go Modified: v2/db.go (+46 -45) =================================================================== --- v2/db.go 2017-09-12 16:26:13 +0900 (48b21f8) +++ v2/db.go 2017-09-12 16:29:19 +0900 (07d96af) @@ -2103,72 +2103,73 @@ type DBStatus struct { } // Status executes status. -func (db *DB) Status() (*DBStatus, Response, error) { +func (db *DB) Status() (*DBStatus, error) { resp, err := db.Invoke("status", nil, nil) if err != nil { - return nil, nil, err + return nil, err } defer resp.Close() jsonData, err := ioutil.ReadAll(resp) if err != nil { - return nil, resp, err + return nil, err } var data map[string]interface{} - if err := json.Unmarshal(jsonData, &data); err != nil { - if resp.Err() != nil { - return nil, resp, nil + if len(jsonData) != 0 { + if err := json.Unmarshal(jsonData, &data); err != nil { + return nil, NewError(ResponseError, "json.Unmarshal failed.", map[string]interface{}{ + "error": err.Error(), + }) } - return nil, resp, NewError(ResponseError, "json.Unmarshal failed.", map[string]interface{}{ - "error": err.Error(), - }) } var result DBStatus - if v, ok := data["alloc_count"]; ok { - if v, ok := v.(float64); ok { - result.AllocCount = int(v) + if data != nil { + if v, ok := data["alloc_count"]; ok { + if v, ok := v.(float64); ok { + result.AllocCount = int(v) + } } - } - if v, ok := data["cache_hit_rate"]; ok { - if v, ok := v.(float64); ok { - result.CacheHitRate = v + if v, ok := data["cache_hit_rate"]; ok { + if v, ok := v.(float64); ok { + result.CacheHitRate = v + } } - } - if v, ok := data["command_version"]; ok { - if v, ok := v.(float64); ok { - result.CommandVersion = int(v) + if v, ok := data["command_version"]; ok { + if v, ok := v.(float64); ok { + result.CommandVersion = int(v) + } } - } - if v, ok := data["default_command_version"]; ok { - if v, ok := v.(float64); ok { - result.DefaultCommandVersion = int(v) + if v, ok := data["default_command_version"]; ok { + if v, ok := v.(float64); ok { + result.DefaultCommandVersion = int(v) + } } - } - if v, ok := data["max_command_version"]; ok { - if v, ok := v.(float64); ok { - result.MaxCommandVersion = int(v) + if v, ok := data["max_command_version"]; ok { + if v, ok := v.(float64); ok { + result.MaxCommandVersion = int(v) + } } - } - if v, ok := data["n_queries"]; ok { - if v, ok := v.(float64); ok { - result.NQueries = int(v) + if v, ok := data["n_queries"]; ok { + if v, ok := v.(float64); ok { + result.NQueries = int(v) + } } - } - if v, ok := data["start_time"]; ok { - if v, ok := v.(float64); ok { - result.StartTime = time.Unix(int64(v), 0) + if v, ok := data["start_time"]; ok { + if v, ok := v.(float64); ok { + result.StartTime = time.Unix(int64(v), 0) + } } - } - if v, ok := data["uptime"]; ok { - if v, ok := v.(float64); ok { - result.Uptime = time.Duration(time.Duration(v) * time.Second) + if v, ok := data["uptime"]; ok { + if v, ok := v.(float64); ok { + result.Uptime = time.Duration(time.Duration(v) * time.Second) + } } - } - if v, ok := data["version"]; ok { - if v, ok := v.(string); ok { - result.Version = v + if v, ok := data["version"]; ok { + if v, ok := v.(string); ok { + result.Version = v + } } } - return &result, resp, nil + return &result, resp.Err() } // TableCopy executes table_copy. Modified: v2/libgrn/db_test.go (+1 -4) =================================================================== --- v2/libgrn/db_test.go 2017-09-12 16:26:13 +0900 (90ba0aa) +++ v2/libgrn/db_test.go 2017-09-12 16:29:19 +0900 (d85a682) @@ -857,10 +857,7 @@ func TestDBStatus(t *testing.T) { db, dir := makeDB(t) defer removeDB(db, dir) - result, resp, err := db.Status() - if err == nil { - err = resp.Err() - } + result, err := db.Status() if err != nil { t.Fatalf("db.Status failed: %v", err) } -------------- next part -------------- HTML����������������������������... URL: https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20170912/39744e81/attachment-0001.htm