From 64893748657fb7fb11c2951b6b7e613dd950ceb0 Mon Sep 17 00:00:00 2001 From: SANDEEP KUMAR JAISAWAL Date: Fri, 10 Nov 2023 12:34:03 +0530 Subject: [PATCH] GetModelInfo api implemented Issue-Id: AIMLFW-64 Change-Id: Ief893fa1ad2eb3b83d39c86e2bee6d8cf325b224 Signed-off-by: SANDEEP KUMAR JAISAWAL --- apis/mmes_apis.go | 29 ++++++++++++++++++++++++++--- config.env | 2 +- core/s3_manager.go | 25 +++++++------------------ 3 files changed, 34 insertions(+), 22 deletions(-) diff --git a/apis/mmes_apis.go b/apis/mmes_apis.go index 7d1be74..56dc343 100644 --- a/apis/mmes_apis.go +++ b/apis/mmes_apis.go @@ -42,7 +42,7 @@ func init() { fmt.Println("Starting api server...") router := gin.Default() - router.GET("/getModel", GetModel) + router.GET("/getModelInfo", GetModelInfo) router.POST("/createModel", CreateModel) router.Run(os.Getenv("MMES_URL")) fmt.Println("Started api server...") @@ -78,10 +78,33 @@ func CreateModel(cont *gin.Context) { }) } +/* +This API retrieves model info for given model name +input : + + Model name : string +*/ +func GetModelInfo(cont *gin.Context) { + fmt.Println("Fetching model") + bodyBytes, _ := io.ReadAll(cont.Request.Body) + //TODO Error checking of request is not in json, i.e. etra ',' at EOF + jsonMap := make(map[string]interface{}) + json.Unmarshal(bodyBytes, &jsonMap) + model_name := jsonMap["model-name"].(string) + fmt.Println("The request model name: ", model_name) + + s3_manager := core.NewS3Manager() + model_info := s3_manager.GetBucketObject(model_name+"_info.json", model_name) + cont.JSON(http.StatusOK, gin.H{ + "code": http.StatusOK, + "message": string(model_info), + }) + +} + func GetModel(cont *gin.Context) { fmt.Println("Fetching model") - //s3_manager.GetBucketObject(modelInfo.ModelName+"_info.json", modelInfo.ModelName) - cont.IndentedJSON(http.StatusOK, "Model stored ") + cont.IndentedJSON(http.StatusOK, " ") } func UpdateModel() { diff --git a/config.env b/config.env index 9d5fcb8..c089fda 100644 --- a/config.env +++ b/config.env @@ -1,5 +1,5 @@ MMES_URL= S3_URL= S3_ACCESS_KEY= -S3_SECRETE_KEY= +S3_SECRET_KEY= S3_REGION= diff --git a/core/s3_manager.go b/core/s3_manager.go index 00989a7..de2e4a9 100644 --- a/core/s3_manager.go +++ b/core/s3_manager.go @@ -45,7 +45,7 @@ endpoints connection details. func NewS3Manager() *S3Manager { endpoint := os.Getenv("S3_URL") accessKey := os.Getenv("S3_ACCESS_KEY") - secretAccessKey := os.Getenv("S3_SECRETE_KEY") + secretAccessKey := os.Getenv("S3_SECRET_KEY") config := aws.Config{ Endpoint: aws.String(endpoint), @@ -71,8 +71,9 @@ func (s3manager *S3Manager) CreateBucket(bucketName string) { println("Bucket created : ", bucketName) } -func (s3manager *S3Manager) GetBucketObject(objectName string, bucketName string) { +func (s3manager *S3Manager) GetBucketObject(objectName string, bucketName string) []byte { + var response []byte getInputs := &s3.GetObjectInput{ Bucket: aws.String(bucketName), Key: aws.String(objectName), @@ -82,25 +83,13 @@ func (s3manager *S3Manager) GetBucketObject(objectName string, bucketName string if err != nil { fmt.Println("Error, can't get fetch object..") - return + return response } else { fmt.Println("Successfully retrieved object...") } - - outputFile, error := os.Create(bucketName + ".json") - if error != nil { - fmt.Println("Could not create local file ") - return - } - defer outputFile.Close() - _, wrerr := io.Copy(outputFile, result.Body) - - if wrerr != nil { - fmt.Println("Failed to write bucket object in to a localfile") - } else { - fmt.Println("Successfully, written bucket object to localfile") - } - + //TODO : Error handling + response, err = io.ReadAll(result.Body) + return response } func (s3manager *S3Manager) DeleteBucket(client *s3.S3, objectName string, bucketName string) { -- 2.16.6