diff options
| author | zhangjie <iamkadisi@163.com> | 2020-01-15 10:18:54 +0800 |
|---|---|---|
| committer | zhangjie <iamkadisi@163.com> | 2020-01-19 17:26:26 +0800 |
| commit | d90221e2b275f30065a7aea76aa2495c5063d93b (patch) | |
| tree | e65bad36eb3e460338c9f2ad729915d1e9f7beb7 | |
| parent | dbtest module use new config api (diff) | |
| download | kubeedge-d90221e2b275f30065a7aea76aa2495c5063d93b.tar.gz | |
process dbm register
Signed-off-by: zhangjie <iamkadisi@163.com>
| -rw-r--r-- | edge/cmd/edgecore/app/server.go | 6 | ||||
| -rw-r--r-- | edge/pkg/common/dbm/db.go | 42 | ||||
| -rw-r--r-- | edge/pkg/devicetwin/devicetwin.go | 4 | ||||
| -rw-r--r-- | edge/pkg/metamanager/metamanager.go | 5 |
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) |
