import (
"broker/pkg/handlers/model"
- "fmt"
+ "os"
+
"github.com/jinzhu/gorm"
- "net/http"
+ "github.com/sirupsen/logrus"
)
-func InsertAppInstanceInfo(db *gorm.DB, n model.AppInstanceInfo) {
- fmt.Printf("Insert App Instance Info (%v, %T)\n", n, n)
- db.Create(&model.AppInstanceInfo{ID: n.ID, AppInstanceName: n.AppInstanceName, AppInstanceDescription: n.AppInstanceDescription,
+// DB name
+const DbName = "applcmDB"
+
+// Database adapter
+type DbAdapter struct {
+ logger *logrus.Logger
+ db *gorm.DB
+}
+
+func NewDbAdapter(logger *logrus.Logger) *DbAdapter {
+ return &DbAdapter{logger: logger}
+}
+
+// Creates database
+func (adapter *DbAdapter) CreateDatabase() {
+ adapter.logger.Infof("creating Database...")
+
+ usrpswd := os.Getenv("MYSQL_USER") + ":" + os.Getenv("MYSQL_PASSWORD")
+ host := "@tcp(" + "dbhost" + ":3306)/"
+
+ db, err := gorm.Open("mysql", usrpswd+host)
+ if err != nil {
+ adapter.logger.Fatalf("Database connect error", err.Error())
+ }
+
+ db.Exec("CREATE DATABASE " + DbName)
+ db.Exec("USE applcmDB")
+ gorm.DefaultCallback.Create().Remove("mysql:set_identity_insert")
+
+ adapter.logger.Infof("Migrating models...")
+ db.AutoMigrate(&model.AppPackageInfo{})
+ db.AutoMigrate(&model.AppInstanceInfo{})
+ adapter.db = db
+}
+
+func (adapter *DbAdapter) InsertAppInstanceInfo(n model.AppInstanceInfo) {
+ adapter.logger.Infof("Insert App Instance Info (%v, %T)\n", n, n)
+ adapter.db.Create(&model.AppInstanceInfo{ID: n.ID, AppInstanceName: n.AppInstanceName, AppInstanceDescription: n.AppInstanceDescription,
AppDID: n.AppDID, AppProvider: n.AppProvider, AppName: n.AppName, AppSoftVersion: n.AppSoftVersion, AppDVersion: n.AppDVersion, AppPkgID: n.AppPkgID, InstantiationState: n.InstantiationState})
- fmt.Printf("Inserting Done")
+ adapter.logger.Infof("Inserting Done")
}
-func GetAppInstanceInfo(db *gorm.DB, key string) (appInstInfo model.AppInstanceInfo) {
- fmt.Printf("Get App Instance Info %s", key)
+func (adapter *DbAdapter) GetAppInstanceInfo(key string) (appInstInfo model.AppInstanceInfo) {
+ adapter.logger.Infof("Get App Instance Info %s", key)
var appInstanceInfo model.AppInstanceInfo
- returnVal := db.First(&appInstanceInfo, "id=?", key).Error
- if returnVal != nil {
+ returnVal := adapter.db.First(&appInstanceInfo, "id=?", key).Error
+ if returnVal != nil {
return
}
return appInstanceInfo
}
-func UpdateAppInstanceInfoInstStatusHostAndWorkloadId(db *gorm.DB, id string, instantiationState string, host string, workloadId string) {
- fmt.Printf("update into DB (%v, %T)\n", id, instantiationState, host, workloadId)
+func (adapter *DbAdapter) UpdateAppInstanceInfoInstStatusHostAndWorkloadId(id string, instantiationState string, host string, workloadId string) {
+ adapter.logger.Infof("update into DB (%v, %T)\n", id, instantiationState, host, workloadId)
var appInstInfo model.AppInstanceInfo
- db.Where("id=?", id).First(&appInstInfo).Update("instantiationState", instantiationState).Update("host", host).Update("workloadID", workloadId)
- fmt.Printf("AppName: %s\nAppDID: %s\nAppInstanceDescription:%t\n\n",
+ adapter.db.Where("id=?", id).First(&appInstInfo).Update("instantiationState", instantiationState).Update("host", host).Update("workloadID", workloadId)
+ adapter.logger.Infof("AppName: %s\nAppDID: %s\nAppInstanceDescription:%t\n\n",
appInstInfo.AppName, appInstInfo.AppDID, appInstInfo.AppInstanceDescription)
- fmt.Printf("Update Done")
+ adapter.logger.Infof("Update Done")
}
-func UpdateAppInstanceInfoInstStatusAndWorkload(db *gorm.DB, id string, instantiationState string, workloadId string) {
- fmt.Printf("update DB (%v, %T)\n", id, instantiationState)
+func (adapter *DbAdapter) UpdateAppInstanceInfoInstStatusAndWorkload(id string, instantiationState string, workloadId string) {
+ adapter.logger.Infof("update DB (%v, %T)\n", id, instantiationState)
var appInstInfo model.AppInstanceInfo
- db.Where("id=?", id).First(&appInstInfo).Update("instantiationState", instantiationState).Update("workloadID", workloadId)
- fmt.Printf("AppName: %s\nAppDID: %s\nAppInstanceDescription:%t\n\n",
+ adapter.db.Where("id=?", id).First(&appInstInfo).Update("instantiationState", instantiationState).Update("workloadID", workloadId)
+ adapter.logger.Infof("AppName: %s\nAppDID: %s\nAppInstanceDescription:%t\n\n",
appInstInfo.AppName, appInstInfo.AppDID, appInstInfo.AppInstanceDescription)
- fmt.Printf("Update Done")
+ adapter.logger.Infof("Update Done")
}
-func UpdateAppInstanceInfoHost(db *gorm.DB, w http.ResponseWriter, id string, host string) {
+func (adapter *DbAdapter) DeleteAppInstanceInfo(key string) {
+ adapter.db.Where("id=?", key).Delete(&model.AppInstanceInfo{})
+ adapter.logger.Infof("Delete App Instance Info: $s", key)
}
-func DeleteAppInstanceInfo(db *gorm.DB, key string) {
-
- db.Where("id=?", key).Delete(&model.AppInstanceInfo{})
-
- fmt.Println("Delete App Instance Info: $s", key)
-}
-
-func InsertAppPackageInfo(db *gorm.DB, n model.AppPackageInfo) {
- fmt.Printf("Insert App Package Info (%v, %T)\n", n, n)
- db.Create(&model.AppPackageInfo{ID: n.ID, AppDID: n.AppDID, AppProvider: n.AppProvider,
+func (adapter *DbAdapter) InsertAppPackageInfo(n model.AppPackageInfo) {
+ adapter.logger.Infof("Insert App Package Info (%v, %T)\n", n, n)
+ adapter.db.Create(&model.AppPackageInfo{ID: n.ID, AppDID: n.AppDID, AppProvider: n.AppProvider,
AppName: n.AppName, AppSoftwareVersion: n.AppSoftwareVersion, AppDVersion: n.AppDVersion,
OnboardingState: n.OnboardingState, DeployType: n.DeployType, AppPackage: n.AppPackage})
-
- fmt.Printf("Inserting done")
+ adapter.logger.Infof("Inserting done")
}
-func GetAppPackageInfo(db *gorm.DB, key string) (appPackageInfo model.AppPackageInfo) {
- fmt.Printf("Get App Package Info: %s", key)
+func (adapter *DbAdapter) GetAppPackageInfo(key string) (appPackageInfo model.AppPackageInfo) {
+ adapter.logger.Infof("Get App Package Info: %s", key)
var appPkgInfo model.AppPackageInfo
- err := db.First(&appPkgInfo, "id=?", key).Error
- if err != nil {
+ err := adapter.db.First(&appPkgInfo, "id=?", key).Error
+ if err != nil {
return
}
return appPkgInfo
}
-func DeleteAppPackageInfo(db *gorm.DB, key string) {
- fmt.Printf("Delete App Package Info: %s", key)
- db.Where("id=?", key).Delete(&model.AppPackageInfo{})
- fmt.Println("Delete App Package Info: $s", key)
+func (adapter *DbAdapter) DeleteAppPackageInfo(key string) {
+ adapter.logger.Infof("Delete App Package Info: %s", key)
+ adapter.db.Where("id=?", key).Delete(&model.AppPackageInfo{})
+ adapter.logger.Infof("Delete App Package Info: $s", key)
}