GetModelInfo api implemented 35/12035/1
authorSANDEEP KUMAR JAISAWAL <s.jaisawal@samsung.com>
Fri, 10 Nov 2023 07:04:03 +0000 (12:34 +0530)
committerSANDEEP KUMAR JAISAWAL <s.jaisawal@samsung.com>
Fri, 10 Nov 2023 07:20:17 +0000 (12:50 +0530)
Issue-Id: AIMLFW-64

Change-Id: Ief893fa1ad2eb3b83d39c86e2bee6d8cf325b224
Signed-off-by: SANDEEP KUMAR JAISAWAL <s.jaisawal@samsung.com>
apis/mmes_apis.go
config.env
core/s3_manager.go

index 7d1be74..56dc343 100644 (file)
@@ -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() {
index 9d5fcb8..c089fda 100644 (file)
@@ -1,5 +1,5 @@
 MMES_URL=
 S3_URL=
 S3_ACCESS_KEY=
-S3_SECRETE_KEY=
+S3_SECRET_KEY=
 S3_REGION=
index 00989a7..de2e4a9 100644 (file)
@@ -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) {