}
func RegisterModel(cont *gin.Context) {
+ var returnCode int = http.StatusCreated
+ var responseMsg string = "Model registered successfully"
+
fmt.Println("Creating model...")
bodyBytes, _ := io.ReadAll(cont.Request.Body)
"code": http.StatusBadRequest,
"message": string("Can not parse input data, provide mandatory details"),
})
- return
+ //return
+ } else {
+ fmt.Println(modelInfo.ModelName, modelInfo.RAppId, modelInfo.Metainfo)
+ modelInfoBytes, _ := json.Marshal(modelInfo)
+
+ //TODO Create singleton for s3_manager
+ s3_manager := core.NewS3Manager()
+ s3Err := s3_manager.CreateBucket(modelInfo.ModelName)
+ if s3Err == nil {
+ s3_manager.UploadFile(modelInfoBytes, modelInfo.ModelName+os.Getenv("INFO_FILE_PREFIX"), modelInfo.ModelName)
+ } else {
+ returnCode = http.StatusInternalServerError
+ responseMsg = s3Err.Error()
+ }
+ cont.JSON(returnCode, gin.H{
+ "code": returnCode,
+ "message": responseMsg,
+ })
}
- fmt.Println(modelInfo.ModelName, modelInfo.RAppId, modelInfo.Metainfo)
- modelInfoBytes, err := json.Marshal(modelInfo)
-
- //TODO Create singleton for s3_manager
- s3_manager := core.NewS3Manager()
- s3_manager.CreateBucket(modelInfo.ModelName)
-
- s3_manager.UploadFile(modelInfoBytes, modelInfo.ModelName+os.Getenv("INFO_FILE_PREFIX"), modelInfo.ModelName)
-
- cont.JSON(http.StatusCreated, gin.H{
- "code": http.StatusCreated,
- "message": string("Model details stored sucessfully"),
- })
}
/*
"code": http.StatusOK,
"message": string(model_info),
})
-
}
/*
import (
"bytes"
+ "errors"
"fmt"
"io"
"os"
"github.com/aws/aws-sdk-go/aws"
+ "github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/s3"
S3Client *s3.S3
}
+type S3Error struct {
+ msg string
+ code int
+}
+
/*
This function return an pointer to instance of S3_manager struct
the struct instance hold pointer to s3.S3 connection, which is
}
-func (s3manager *S3Manager) CreateBucket(bucketName string) {
- _, err := s3manager.S3Client.CreateBucket(&s3.CreateBucketInput{Bucket: aws.String(bucketName)})
- if err != nil {
- panic(err)
+// Creates s3 bucket for given bucketName, optionally
+// returns named error err
+func (s3manager *S3Manager) CreateBucket(bucketName string) (err error) {
+ _, s3Err := s3manager.S3Client.CreateBucket(&s3.CreateBucketInput{Bucket: aws.String(bucketName)})
+
+ if s3Err != nil {
+ fmt.Println(s3Err)
+ //Convert the aws to get the code/error msg for api response
+ if aerr, ok := s3Err.(awserr.Error); ok {
+ err = errors.New(aerr.Message())
+ return
+ }
}
println("Bucket created : ", bucketName)
+ return nil
}
// objectName : Name of file/object under given bucket