Metainfo map[string]interface{} `json:"meta-info"`
}
-var s3_manager *core.S3Manager
+var dbmgr core.DBMgr
func init() {
logging.INFO("Starting api server...")
- // set up the s3 manager
- s3_manager = core.GetS3ManagerInstance()
+ // set up the db manager
+ dbmgr = core.GetDBManagerInstance()
router := gin.Default()
logging.INFO(modelInfo.ModelName, modelInfo.RAppId, modelInfo.Metainfo)
modelInfoBytes, _ := json.Marshal(modelInfo)
- s3Err := s3_manager.CreateBucket(modelInfo.ModelName)
- if s3Err == nil {
- s3_manager.UploadFile(modelInfoBytes, modelInfo.ModelName+os.Getenv("INFO_FILE_POSTFIX"), modelInfo.ModelName)
+ err := dbmgr.CreateBucket(modelInfo.ModelName)
+ if err == nil {
+ dbmgr.UploadFile(modelInfoBytes, modelInfo.ModelName+os.Getenv("INFO_FILE_POSTFIX"), modelInfo.ModelName)
} else {
returnCode = http.StatusInternalServerError
- responseMsg = s3Err.Error()
+ responseMsg = err.Error()
}
cont.JSON(returnCode, gin.H{
"code": returnCode,
model_name := jsonMap["model-name"].(string)
logging.INFO("The request model name: ", model_name)
- model_info := s3_manager.GetBucketObject(model_name+os.Getenv("INFO_FILE_POSTFIX"), model_name)
+ model_info := dbmgr.GetBucketObject(model_name+os.Getenv("INFO_FILE_POSTFIX"), model_name)
cont.JSON(http.StatusOK, gin.H{
"code": http.StatusOK,
logging.INFO("Get model info by name API ...")
modelName := cont.Param("modelName")
- model_info := s3_manager.GetBucketObject(modelName+os.Getenv("INFO_FILE_POSTFIX"), modelName)
+ model_info := dbmgr.GetBucketObject(modelName+os.Getenv("INFO_FILE_POSTFIX"), modelName)
cont.JSON(http.StatusOK, gin.H{
"code": http.StatusOK,
byteFile, _ := io.ReadAll((file))
logging.INFO("Uploading model : ", modelName)
- s3_manager.UploadFile(byteFile, modelName+os.Getenv("MODEL_FILE_POSTFIX"), modelName)
+ dbmgr.UploadFile(byteFile, modelName+os.Getenv("MODEL_FILE_POSTFIX"), modelName)
cont.JSON(http.StatusOK, gin.H{
"code": http.StatusOK,
"message": string("Model uploaded successfully.."),
}
/*
-API to download the trained model from s3 bucket
+API to download the trained model from bucket
Input: model name in path params as "modelName"
*/
func DownloadModel(cont *gin.Context) {
logging.INFO("Download model API ...")
modelName := cont.Param("modelName")
fileName := modelName + os.Getenv("MODEL_FILE_POSTFIX")
- fileByes := s3_manager.GetBucketObject(fileName, modelName)
+ fileByes := dbmgr.GetBucketObject(fileName, modelName)
//Return file in api reponse using byte slice
cont.Header("Content-Disposition", "attachment;"+fileName)
}
// Singleton for S3Manager
-func GetS3ManagerInstance() *S3Manager {
+func GetDBManagerInstance() DBMgr {
Lock.Lock()
defer Lock.Unlock()
} else {
logging.WARN("S3Manager instance already exists")
}
-
return s3MgrInstance
}
Key: aws.String(objectName),
}
result, err := s3manager.S3Client.GetObject(getInputs)
- defer result.Body.Close()
-
if err != nil {
logging.ERROR("Error, can't get fetch object..")
return response
}
+ defer result.Body.Close()
logging.INFO("Successfully retrieved object...")
- //TODO : Error handling
response, err = io.ReadAll(result.Body)
+ if err != nil {
+ logging.ERROR("Recived error while reading body:", err)
+ }
return response
}
}
// Return list of objects in the buckets
-func GetBucketItems(bucketName string) {
+func (S3Manager *S3Manager) GetBucketItems(bucketName string) {
}