X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=blobdiff_plain;ds=sidebyside;f=mecm%2Fmepm%2Fapplcm%2Fbroker%2Fpkg%2Fhandlers%2Fadapter%2FdbAdapter%2FdbAdapter.go;h=23fb49e0976b67e5cb9a5712c94b33c9fe6cc464;hb=b53813aee440d6c0a936a2827e5c304cf60d8be1;hp=2e527ec7063e85f7e0f47d23d450891486f2b746;hpb=973e68c113a84f5041406219dd87c0f7778ba0fe;p=ealt-edge.git diff --git a/mecm/mepm/applcm/broker/pkg/handlers/adapter/dbAdapter/dbAdapter.go b/mecm/mepm/applcm/broker/pkg/handlers/adapter/dbAdapter/dbAdapter.go index 2e527ec..23fb49e 100644 --- a/mecm/mepm/applcm/broker/pkg/handlers/adapter/dbAdapter/dbAdapter.go +++ b/mecm/mepm/applcm/broker/pkg/handlers/adapter/dbAdapter/dbAdapter.go @@ -19,80 +19,111 @@ import ( "broker/pkg/handlers/model" "fmt" "github.com/jinzhu/gorm" - "net/http" + _ "github.com/jinzhu/gorm/dialects/postgres" + "github.com/sirupsen/logrus" + "os" ) -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, +var ( + username = os.Getenv("POSTGRES_USER") + password = os.Getenv("POSTGRES_PASSWORD") + dbName = os.Getenv("POSTGRES_DATABASE") + dbHost = os.Getenv("DBHOST") + +) + +// 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...") + + dbUri := fmt.Sprintf("host=%s user=%s dbname=%s sslmode=disable password=%s", dbHost, username, dbName, password) //Build connection string + + conn, err := gorm.Open("postgres", dbUri) + if err != nil { + fmt.Print(err) + } + + db := conn + 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) }