mepm applcm initial code
[ealt-edge.git] / mecm / mepm / applcm / broker / pkg / handlers / adapter / dbAdapter / dbAdapter.go
1 /*
2  * Copyright 2020 Huawei Technologies Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 package dbAdapter
17
18 import (
19         "broker/pkg/handlers/model"
20         "fmt"
21         "github.com/jinzhu/gorm"
22         "net/http"
23 )
24
25 func InsertAppInstanceInfo(db *gorm.DB, n model.AppInstanceInfo) {
26         fmt.Printf("Insert App Instance Info (%v, %T)\n", n, n)
27         db.Create(&model.AppInstanceInfo{ID: n.ID, AppInstanceName: n.AppInstanceName, AppInstanceDescription: n.AppInstanceDescription,
28                 AppDID: n.AppDID, AppProvider: n.AppProvider, AppName: n.AppName, AppSoftVersion: n.AppSoftVersion, AppDVersion: n.AppDVersion, AppPkgID: n.AppPkgID, InstantiationState: n.InstantiationState})
29
30         fmt.Printf("Inserting Done")
31 }
32
33 func GetAppInstanceInfo(db *gorm.DB, key string) (appInstInfo model.AppInstanceInfo) {
34         fmt.Printf("Get App Instance Info %s", key)
35         var appInstanceInfo model.AppInstanceInfo
36         returnVal := db.First(&appInstanceInfo, "id=?", key).Error
37         if returnVal !=  nil {
38                 return
39         }
40
41         return appInstanceInfo
42 }
43
44 func UpdateAppInstanceInfoInstStatusHostAndWorkloadId(db *gorm.DB, id string, instantiationState string, host string, workloadId string) {
45         fmt.Printf("update into DB (%v, %T)\n", id, instantiationState, host, workloadId)
46
47         var appInstInfo model.AppInstanceInfo
48         db.Where("id=?", id).First(&appInstInfo).Update("instantiationState", instantiationState).Update("host", host).Update("workloadID", workloadId)
49         fmt.Printf("AppName: %s\nAppDID: %s\nAppInstanceDescription:%t\n\n",
50                 appInstInfo.AppName, appInstInfo.AppDID, appInstInfo.AppInstanceDescription)
51
52         fmt.Printf("Update Done")
53 }
54
55 func UpdateAppInstanceInfoInstStatusAndWorkload(db *gorm.DB, id string, instantiationState string, workloadId string) {
56         fmt.Printf("update DB (%v, %T)\n", id, instantiationState)
57
58         var appInstInfo model.AppInstanceInfo
59         db.Where("id=?", id).First(&appInstInfo).Update("instantiationState", instantiationState).Update("workloadID", workloadId)
60         fmt.Printf("AppName: %s\nAppDID: %s\nAppInstanceDescription:%t\n\n",
61                 appInstInfo.AppName, appInstInfo.AppDID, appInstInfo.AppInstanceDescription)
62         fmt.Printf("Update Done")
63 }
64
65 func UpdateAppInstanceInfoHost(db *gorm.DB, w http.ResponseWriter, id string, host string) {
66 }
67
68 func DeleteAppInstanceInfo(db *gorm.DB, key string) {
69
70         db.Where("id=?", key).Delete(&model.AppInstanceInfo{})
71
72         fmt.Println("Delete App Instance Info: $s", key)
73 }
74
75 func InsertAppPackageInfo(db *gorm.DB, n model.AppPackageInfo) {
76         fmt.Printf("Insert App Package Info (%v, %T)\n", n, n)
77         db.Create(&model.AppPackageInfo{ID: n.ID, AppDID: n.AppDID, AppProvider: n.AppProvider,
78                 AppName: n.AppName, AppSoftwareVersion: n.AppSoftwareVersion, AppDVersion: n.AppDVersion,
79                 OnboardingState: n.OnboardingState, DeployType: n.DeployType, AppPackage: n.AppPackage})
80
81         fmt.Printf("Inserting done")
82 }
83
84 func GetAppPackageInfo(db *gorm.DB, key string) (appPackageInfo model.AppPackageInfo) {
85         fmt.Printf("Get App Package Info: %s", key)
86         var appPkgInfo model.AppPackageInfo
87         err := db.First(&appPkgInfo, "id=?", key).Error
88         if err !=  nil {
89                 return
90         }
91         return appPkgInfo
92 }
93
94 func DeleteAppPackageInfo(db *gorm.DB, key string) {
95         fmt.Printf("Delete App Package Info: %s", key)
96         db.Where("id=?", key).Delete(&model.AppPackageInfo{})
97         fmt.Println("Delete App Package Info: $s", key)
98 }