summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzhangjie <iamkadisi@163.com>2020-01-15 10:18:54 +0800
committerzhangjie <iamkadisi@163.com>2020-01-19 17:26:26 +0800
commitd90221e2b275f30065a7aea76aa2495c5063d93b (patch)
treee65bad36eb3e460338c9f2ad729915d1e9f7beb7
parentdbtest module use new config api (diff)
downloadkubeedge-d90221e2b275f30065a7aea76aa2495c5063d93b.tar.gz
process dbm register
Signed-off-by: zhangjie <iamkadisi@163.com>
-rw-r--r--edge/cmd/edgecore/app/server.go6
-rw-r--r--edge/pkg/common/dbm/db.go42
-rw-r--r--edge/pkg/devicetwin/devicetwin.go4
-rw-r--r--edge/pkg/metamanager/metamanager.go5
4 files changed, 29 insertions, 28 deletions
diff --git a/edge/cmd/edgecore/app/server.go b/edge/cmd/edgecore/app/server.go
index fd033fe84..26d8803d0 100644
--- a/edge/cmd/edgecore/app/server.go
+++ b/edge/cmd/edgecore/app/server.go
@@ -15,7 +15,6 @@ import (
"github.com/kubeedge/beehive/pkg/core"
"github.com/kubeedge/kubeedge/edge/cmd/edgecore/app/options"
- "github.com/kubeedge/kubeedge/edge/pkg/common/dbm"
"github.com/kubeedge/kubeedge/edge/pkg/devicetwin"
"github.com/kubeedge/kubeedge/edge/pkg/edged"
"github.com/kubeedge/kubeedge/edge/pkg/edgehub"
@@ -149,13 +148,12 @@ func environmentCheck() error {
// registerModules register all the modules started in edgecore
func registerModules(c *v1alpha1.EdgeCoreConfig) {
- devicetwin.Register(c.Modules.DeviceTwin, c.Modules.Edged.HostnameOverride)
+ devicetwin.Register(c.Modules.DeviceTwin, c.DataBase, c.Modules.Edged.HostnameOverride)
edged.Register(c.Modules.Edged)
edgehub.Register(c.Modules.EdgeHub, c.Modules.Edged.HostnameOverride)
eventbus.Register(c.Modules.EventBus, c.Modules.Edged.HostnameOverride)
edgemesh.Register(c.Modules.EdgeMesh)
- metamanager.Register(c.Modules.MetaManager)
+ metamanager.Register(c.Modules.MetaManager, c.DataBase)
servicebus.Register(c.Modules.ServiceBus)
test.Register(c.Modules.DBTest)
- dbm.InitDBManager()
}
diff --git a/edge/pkg/common/dbm/db.go b/edge/pkg/common/dbm/db.go
index 9bbd0d0fe..93013fb77 100644
--- a/edge/pkg/common/dbm/db.go
+++ b/edge/pkg/common/dbm/db.go
@@ -1,38 +1,36 @@
package dbm
import (
+ "sync"
+
"github.com/astaxie/beego/orm"
+
//Blank import to run only the init function
_ "github.com/mattn/go-sqlite3"
"k8s.io/klog"
-
- commonconfig "github.com/kubeedge/kubeedge/edge/pkg/common/config"
)
// DBAccess is Ormer object interface for all transaction processing and switching database
var DBAccess orm.Ormer
-
-// InitDBManager initialises the database by syncing the database schema and creating orm
-func InitDBManager() {
- // TODO will changed at component api config feature @kadisi
- InitDBConfig(commonconfig.Get().DriverName, commonconfig.Get().DBName, commonconfig.Get().DataSource)
-}
+var once sync.Once
// InitDBConfig Init DB info
func InitDBConfig(driverName, dbName, dataSource string) {
- if err := orm.RegisterDriver(driverName, orm.DRSqlite); err != nil {
- klog.Fatalf("Failed to register driver: %v", err)
- }
- if err := orm.RegisterDataBase(
- dbName,
- driverName,
- dataSource); err != nil {
- klog.Fatalf("Failed to register db: %v", err)
- }
- // sync database schema
- orm.RunSyncdb(dbName, false, true)
+ once.Do(func() {
+ if err := orm.RegisterDriver(driverName, orm.DRSqlite); err != nil {
+ klog.Fatalf("Failed to register driver: %v", err)
+ }
+ if err := orm.RegisterDataBase(
+ dbName,
+ driverName,
+ dataSource); err != nil {
+ klog.Fatalf("Failed to register db: %v", err)
+ }
+ // sync database schema
+ orm.RunSyncdb(dbName, false, true)
- // create orm
- DBAccess = orm.NewOrm()
- DBAccess.Using(dbName)
+ // create orm
+ DBAccess = orm.NewOrm()
+ DBAccess.Using(dbName)
+ })
}
diff --git a/edge/pkg/devicetwin/devicetwin.go b/edge/pkg/devicetwin/devicetwin.go
index c21b4c001..ba631d425 100644
--- a/edge/pkg/devicetwin/devicetwin.go
+++ b/edge/pkg/devicetwin/devicetwin.go
@@ -1,6 +1,7 @@
package devicetwin
import (
+ "github.com/kubeedge/kubeedge/edge/pkg/common/dbm"
"k8s.io/klog"
"github.com/kubeedge/beehive/pkg/core"
@@ -30,8 +31,9 @@ func newDeviceTwin(enable bool) *DeviceTwin {
}
// Register register devicetwin
-func Register(d *v1alpha1.DeviceTwin, nodeName string) {
+func Register(d *v1alpha1.DeviceTwin, db *v1alpha1.DataBase, nodeName string) {
deviceconfig.InitConfigure(d, nodeName)
+ dbm.InitDBConfig(db.DriverName, db.AliasName, db.DataSource)
dt := newDeviceTwin(d.Enable)
dtclient.InitDBTable(dt)
core.Register(dt)
diff --git a/edge/pkg/metamanager/metamanager.go b/edge/pkg/metamanager/metamanager.go
index 784e94f84..0bca1acbf 100644
--- a/edge/pkg/metamanager/metamanager.go
+++ b/edge/pkg/metamanager/metamanager.go
@@ -3,6 +3,8 @@ package metamanager
import (
"time"
+ "github.com/kubeedge/kubeedge/edge/pkg/common/dbm"
+
"github.com/astaxie/beego/orm"
"k8s.io/klog"
@@ -30,8 +32,9 @@ func newMetaManager(enable bool) *metaManager {
}
// Register register metamanager
-func Register(m *v1alpha1.MetaManager) {
+func Register(m *v1alpha1.MetaManager, db *v1alpha1.DataBase) {
metamanagerconfig.InitConfigure(m)
+ dbm.InitDBConfig(db.DriverName, db.AliasName, db.DataSource)
meta := newMetaManager(m.Enable)
initDBTable(meta)
core.Register(meta)