From f721bf87a9b8509a64c16bccb3eabddb0040d0c4 Mon Sep 17 00:00:00 2001 From: kiwionly2 Date: Tue, 30 Aug 2022 00:34:06 -0600 Subject: [PATCH] go/mio: add an example of REST API server Signed-off-by: kiwionly2 --- bindings/go/go_motr_api_server/README.md | 67 +++++++ .../go/go_motr_api_server/api/api_common.go | 108 +++++++++++ bindings/go/go_motr_api_server/api/kv_api.go | 125 +++++++++++++ .../go/go_motr_api_server/api/object_api.go | 72 ++++++++ bindings/go/go_motr_api_server/app/app.go | 40 ++++ bindings/go/go_motr_api_server/go.mod | 13 ++ .../http_client/black_hole.png | Bin 0 -> 68277 bytes .../go_motr_api_server/http_client/client.go | 173 ++++++++++++++++++ .../http_client/client_test.go | 71 +++++++ bindings/go/go_motr_api_server/main.go | 41 +++++ bindings/go/go_motr_api_server/motr.toml | 9 + .../go/go_motr_api_server/motr/motr_client.go | 139 ++++++++++++++ 12 files changed, 858 insertions(+) create mode 100644 bindings/go/go_motr_api_server/README.md create mode 100644 bindings/go/go_motr_api_server/api/api_common.go create mode 100644 bindings/go/go_motr_api_server/api/kv_api.go create mode 100644 bindings/go/go_motr_api_server/api/object_api.go create mode 100644 bindings/go/go_motr_api_server/app/app.go create mode 100644 bindings/go/go_motr_api_server/go.mod create mode 100644 bindings/go/go_motr_api_server/http_client/black_hole.png create mode 100644 bindings/go/go_motr_api_server/http_client/client.go create mode 100644 bindings/go/go_motr_api_server/http_client/client_test.go create mode 100644 bindings/go/go_motr_api_server/main.go create mode 100644 bindings/go/go_motr_api_server/motr.toml create mode 100644 bindings/go/go_motr_api_server/motr/motr_client.go diff --git a/bindings/go/go_motr_api_server/README.md b/bindings/go/go_motr_api_server/README.md new file mode 100644 index 00000000000..a600044ef5f --- /dev/null +++ b/bindings/go/go_motr_api_server/README.md @@ -0,0 +1,67 @@ + +## Motr REST API server + +Motr REST API Server is a simple REST API Server which based on motr go bindings. + +It included a REST API server and a http client. + +The API implemented as below: + +``` +/kv/put +/kv/get +/kv/delete +/object/read +/object/write +``` + +#### Server + +To start REST API server, first you need to run motr server. + +Follow motr [quick start guide](/doc/Quick-Start-Guide.rst) to build motr. + +To start motr in development mode, open a new terminal, go to `%cortx_motr_dir%/motr/examples` at `motr` root directory. + +```sh +cd %cortx_home%/motr/examples +./setup_a_running_motr_system.sh +``` + +After motr server start, you should see the connection information at the end of terminal. + +At this directory, open `motr.toml`, this is where `motr` connection configure, modify the value accordingly and save the file. + +Open another terminal and run the REST API server : +``` +> go mod tidy +> export MOTR_HOME=motr_root_diretory +> CGO_CFLAGS="-I/$MOTR_HOME -I/usr/include/motr -DM0_EXTERN=extern -DM0_INTERNAL= -Wno-attributes" CGO_LDFLAGS="-L$MOTR_HOME/motr/.libs -Wl,-rpath=$MOTR_HOME/motr/.libs -lmotr" go run . +``` + +You should see the server start and running at port `8081`. + + +#### Client + +To interect with the REST API server, you could use http client under `http_client` folder: + +```go +client := NewClient("localhost", 8081) + +// read from file and write to motr +response, err := client.Write(IndexID, "black_hole.png") + +// read from motr and write to file +err := client.Read(IndexID, objectSize, "out.png") +``` + +Open another terminal and run the tests to see if the http client work as expected. +``` +> cd http_client +> go test -v +``` + +You could refer to test cases for more sample of client usage. + + diff --git a/bindings/go/go_motr_api_server/api/api_common.go b/bindings/go/go_motr_api_server/api/api_common.go new file mode 100644 index 00000000000..ca875a3d77d --- /dev/null +++ b/bindings/go/go_motr_api_server/api/api_common.go @@ -0,0 +1,108 @@ +package api + +import ( + "errors" + "fmt" + "io/ioutil" + "net/url" + "strconv" + "time" + + "github.com/gin-gonic/gin" +) + +func get(ctx *gin.Context, name string, required bool, defaultValue interface{}, errs *[]error) interface{} { + + var val string + + if ctx.Request.Method == "POST" { + val = ctx.PostForm(name) + + // if POST binary content, get from query + if val == "" { + val = ctx.Query(name) + } + + } else { + val = ctx.Query(name) + } + + if required && val == "" { + toError(errs, name+" is required") + return defaultValue + } else if val == "" { + return defaultValue + } + + val, err := url.QueryUnescape(val) + + if err != nil { + toError(errs, err.Error()) + } + + return val +} + +func getString(ctx *gin.Context, name string, required bool, defaultValue interface{}, errs *[]error) string { + val := get(ctx, name, required, defaultValue, errs) + return toString(val) +} + +func getInt(ctx *gin.Context, name string, required bool, defaultValue interface{}, errs *[]error) int { + val := get(ctx, name, required, defaultValue, errs) + c := toI32(val) + return int(c) +} + +func getBytes(ctx *gin.Context, errs *[]error) []byte { + ByteBody, err := ioutil.ReadAll(ctx.Request.Body) + + if err != nil { + toError(errs, err.Error()) + return nil + } + + return ByteBody +} + +func toError(errs *[]error, msg string) { + *errs = append(*errs, errors.New(msg)) +} + +func hasError(errs []error) error { + + for _, err := range errs { + if err != nil { + return err + } + } + + return nil +} + +func createError(err error) map[string]interface{} { + + errs := make(map[string]interface{}) + errs["error"] = err.Error() + + return errs +} + +func toTime(end time.Duration) string { + return fmt.Sprintf("%v", end) +} + +func toString(t interface{}) string { + return fmt.Sprintf("%+v", t) +} + +func toI32(t interface{}) int32 { + s := toString(t) + i, err := strconv.Atoi(s) + + if err != nil { + return 0 + } + + return int32(i) +} diff --git a/bindings/go/go_motr_api_server/api/kv_api.go b/bindings/go/go_motr_api_server/api/kv_api.go new file mode 100644 index 00000000000..31679f10beb --- /dev/null +++ b/bindings/go/go_motr_api_server/api/kv_api.go @@ -0,0 +1,125 @@ +package api + +import ( + "fmt" + "go_motr_api_server/v2/motr" + "net/http" + "time" + + "github.com/gin-gonic/gin" +) + +func Status(ctx *gin.Context) { + + json := make(map[string]interface{}) + json["status"] = "ok" + + ctx.JSON(http.StatusOK, json) +} + +func GetKey(ctx *gin.Context) { + + start := time.Now() + + errs := &[]error{} + + indexID := getString(ctx, "index_id", true, nil, errs) + key := getString(ctx, "key", true, nil, errs) + + if err := hasError(*errs); err != nil { + ctx.AbortWithStatusJSON(http.StatusBadRequest, createError(err)) + return + } + + value, err := motr.Get(indexID, key) + + if err != nil { + ctx.AbortWithStatusJSON(http.StatusBadRequest, createError(err)) + return + } + + end := time.Since(start) + + meta := make(map[string]interface{}) + meta["time"] = toTime(end) + + json := make(map[string]interface{}) + json["meta"] = meta + json["index_id"] = indexID + json["key"] = key + json["value"] = value + + ctx.JSON(http.StatusOK, json) +} + +func DeleteKey(ctx *gin.Context) { + + start := time.Now() + + errs := &[]error{} + + indexID := getString(ctx, "index_id", true, nil, errs) + key := getString(ctx, "key", true, nil, errs) + + if err := hasError(*errs); err != nil { + ctx.AbortWithStatusJSON(http.StatusBadRequest, createError(err)) + return + } + + err := motr.Delete(indexID, key) + + if err != nil { + ctx.AbortWithStatusJSON(http.StatusBadRequest, createError(err)) + return + } + + end := time.Since(start) + + meta := make(map[string]interface{}) + meta["time"] = toTime(end) + + json := make(map[string]interface{}) + json["meta"] = meta + json["index_id"] = indexID + json["key"] = key + + ctx.JSON(http.StatusOK, json) +} + +func PutKeyValue(ctx *gin.Context) { + + start := time.Now() + + errs := &[]error{} + + indexID := getString(ctx, "index_id", true, nil, errs) + key := getString(ctx, "key", true, nil, errs) + value := getString(ctx, "value", true, nil, errs) + + if err := hasError(*errs); err != nil { + ctx.AbortWithStatusJSON(http.StatusBadRequest, createError(err)) + return + } + + fmt.Println(indexID, key, value) + + err := motr.Put(indexID, key, value) + + if err != nil { + ctx.AbortWithStatusJSON(http.StatusBadRequest, createError(err)) + return + } + + end := time.Since(start) + + meta := make(map[string]interface{}) + meta["time"] = toTime(end) + + json := make(map[string]interface{}) + json["meta"] = meta + json["index_id"] = indexID + json["key"] = key + json["value"] = value + + ctx.JSON(http.StatusOK, json) +} diff --git a/bindings/go/go_motr_api_server/api/object_api.go b/bindings/go/go_motr_api_server/api/object_api.go new file mode 100644 index 00000000000..d76e02ccbfc --- /dev/null +++ b/bindings/go/go_motr_api_server/api/object_api.go @@ -0,0 +1,72 @@ +package api + +import ( + "bytes" + "go_motr_api_server/v2/motr" + "net/http" + "time" + + "github.com/gin-gonic/gin" +) + +func Write(ctx *gin.Context) { + + start := time.Now() + + errs := &[]error{} + + indexID := getString(ctx, "index_id", true, nil, errs) + size := getInt(ctx, "size", true, nil, errs) + byteBody := getBytes(ctx, errs) + + if err := hasError(*errs); err != nil { + ctx.AbortWithStatusJSON(http.StatusBadRequest, createError(err)) + return + } + + err := motr.Write("", indexID, uint64(size), bytes.NewReader(byteBody)) + + if err != nil { + ctx.AbortWithStatusJSON(http.StatusBadRequest, createError(err)) + return + } + + end := time.Since(start) + + meta := make(map[string]interface{}) + meta["time"] = toTime(end) + + json := make(map[string]interface{}) + json["meta"] = meta + json["indexID"] = indexID + json["size"] = size + + ctx.JSON(http.StatusOK, json) +} + +func Read(ctx *gin.Context) { + + start := time.Now() + + errs := &[]error{} + + indexID := getString(ctx, "index_id", true, nil, errs) + size := getInt(ctx, "size", true, nil, errs) + + if err := hasError(*errs); err != nil { + ctx.AbortWithStatusJSON(http.StatusBadRequest, createError(err)) + return + } + + byteContent, err := motr.Read("", indexID, uint64(size)) + + if err != nil { + ctx.AbortWithStatusJSON(http.StatusBadRequest, createError(err)) + return + } + + end := time.Since(start) + + ctx.Header("time", toTime(end)) + ctx.Data(http.StatusOK, "application/octet-stream", byteContent) +} diff --git a/bindings/go/go_motr_api_server/app/app.go b/bindings/go/go_motr_api_server/app/app.go new file mode 100644 index 00000000000..a6116fbc2e0 --- /dev/null +++ b/bindings/go/go_motr_api_server/app/app.go @@ -0,0 +1,40 @@ +package app + +import ( + "io/ioutil" + + "github.com/BurntSushi/toml" + "github.com/Seagate/cortx-motr/bindings/go/mio" +) + +var ( + Conf Config +) + +type Config struct { + Address string + + Ha_addr string + Local_addr string + Profile string + Process_fid string +} + +func init() { + + data, err := ioutil.ReadFile("motr.toml") + + if err != nil { + panic(err.Error()) + } + + if _, err := toml.Decode(string(data), &Conf); err != nil { + panic(err.Error()) + } + + motr() +} + +func motr() { + mio.Init(&Conf.Local_addr, &Conf.Ha_addr, &Conf.Profile, &Conf.Process_fid) +} diff --git a/bindings/go/go_motr_api_server/go.mod b/bindings/go/go_motr_api_server/go.mod new file mode 100644 index 00000000000..fb9c3dab4fc --- /dev/null +++ b/bindings/go/go_motr_api_server/go.mod @@ -0,0 +1,13 @@ +module go_motr_api_server/v2 + +go 1.16 + +require ( + github.com/BurntSushi/toml v1.1.0 + github.com/DeanThompson/ginpprof v0.0.0-20201112072838-007b1e56b2e1 + github.com/Seagate/cortx-motr/bindings/go v0.0.0-20220720051011-9c5ecb949a04 + github.com/gin-contrib/cors v1.3.1 + github.com/gin-contrib/gzip v0.0.5 + github.com/gin-gonic/gin v1.8.1 + github.com/stretchr/testify v1.8.0 +) diff --git a/bindings/go/go_motr_api_server/http_client/black_hole.png b/bindings/go/go_motr_api_server/http_client/black_hole.png new file mode 100644 index 0000000000000000000000000000000000000000..e5e8ef44f85e5abd6e1d36df9ee634f107e33145 GIT binary patch literal 68277 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
&|hpkvUxjW^Yd0W950;g!gfdwPDx=%28Yp#$o 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