|
@@ -294,17 +294,10 @@ func NewPluginManager() (*Manager, error) {
|
|
outerErr = fmt.Errorf("cannot find etc folder: %s", err)
|
|
outerErr = fmt.Errorf("cannot find etc folder: %s", err)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
- dbDir, err := conf.GetDataLoc()
|
|
|
|
- if err != nil {
|
|
|
|
- outerErr = fmt.Errorf("cannot find db folder: %s", err)
|
|
|
|
- return
|
|
|
|
- }
|
|
|
|
- db := kv.GetDefaultKVStore(path.Join(dbDir, "pluginFuncs"))
|
|
|
|
- err = db.Open()
|
|
|
|
|
|
+ err, db := kv.GetKVStore("pluginFuncs")
|
|
if err != nil {
|
|
if err != nil {
|
|
outerErr = fmt.Errorf("error when opening db: %v.", err)
|
|
outerErr = fmt.Errorf("error when opening db: %v.", err)
|
|
}
|
|
}
|
|
- defer db.Close()
|
|
|
|
plugins := make([]map[string]string, 3)
|
|
plugins := make([]map[string]string, 3)
|
|
for i := 0; i < 3; i++ {
|
|
for i := 0; i < 3; i++ {
|
|
names, err := findAll(PluginType(i), dir)
|
|
names, err := findAll(PluginType(i), dir)
|
|
@@ -400,15 +393,10 @@ func (m *Manager) Register(t PluginType, j Plugin) error {
|
|
var err error
|
|
var err error
|
|
if t == FUNCTION {
|
|
if t == FUNCTION {
|
|
if len(j.GetSymbols()) > 0 {
|
|
if len(j.GetSymbols()) > 0 {
|
|
- err = m.db.Open()
|
|
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
err = m.db.Set(name, j.GetSymbols())
|
|
err = m.db.Set(name, j.GetSymbols())
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
- m.db.Close()
|
|
|
|
err = m.registry.StoreSymbols(name, j.GetSymbols())
|
|
err = m.registry.StoreSymbols(name, j.GetSymbols())
|
|
} else {
|
|
} else {
|
|
err = m.registry.StoreSymbols(name, []string{name})
|
|
err = m.registry.StoreSymbols(name, []string{name})
|
|
@@ -430,16 +418,13 @@ func (m *Manager) Register(t PluginType, j Plugin) error {
|
|
//unzip and copy to destination
|
|
//unzip and copy to destination
|
|
unzipFiles, version, err := m.install(t, name, zipPath, shellParas)
|
|
unzipFiles, version, err := m.install(t, name, zipPath, shellParas)
|
|
if err == nil && len(j.GetSymbols()) > 0 {
|
|
if err == nil && len(j.GetSymbols()) > 0 {
|
|
- if err = m.db.Open(); err == nil {
|
|
|
|
- err = m.db.Set(name, j.GetSymbols())
|
|
|
|
- }
|
|
|
|
|
|
+ err = m.db.Set(name, j.GetSymbols())
|
|
}
|
|
}
|
|
if err != nil { //Revert for any errors
|
|
if err != nil { //Revert for any errors
|
|
if t == SOURCE && len(unzipFiles) == 1 { //source that only copy so file
|
|
if t == SOURCE && len(unzipFiles) == 1 { //source that only copy so file
|
|
os.RemoveAll(unzipFiles[0])
|
|
os.RemoveAll(unzipFiles[0])
|
|
}
|
|
}
|
|
if len(j.GetSymbols()) > 0 {
|
|
if len(j.GetSymbols()) > 0 {
|
|
- m.db.Close()
|
|
|
|
m.registry.RemoveSymbols(j.GetSymbols())
|
|
m.registry.RemoveSymbols(j.GetSymbols())
|
|
} else {
|
|
} else {
|
|
m.registry.RemoveSymbols([]string{name})
|
|
m.registry.RemoveSymbols([]string{name})
|
|
@@ -470,11 +455,6 @@ func (m *Manager) RegisterFuncs(name string, functions []string) error {
|
|
if len(functions) == 0 {
|
|
if len(functions) == 0 {
|
|
return fmt.Errorf("property 'functions' must not be empty")
|
|
return fmt.Errorf("property 'functions' must not be empty")
|
|
}
|
|
}
|
|
- err := m.db.Open()
|
|
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
- defer m.db.Close()
|
|
|
|
old := make([]string, 0)
|
|
old := make([]string, 0)
|
|
if ok, err := m.db.Get(name, &old); err != nil {
|
|
if ok, err := m.db.Get(name, &old); err != nil {
|
|
return err
|
|
return err
|
|
@@ -483,7 +463,7 @@ func (m *Manager) RegisterFuncs(name string, functions []string) error {
|
|
} else if !ok {
|
|
} else if !ok {
|
|
m.registry.RemoveSymbols([]string{name})
|
|
m.registry.RemoveSymbols([]string{name})
|
|
}
|
|
}
|
|
- err = m.db.Set(name, functions)
|
|
|
|
|
|
+ err := m.db.Set(name, functions)
|
|
if err != nil {
|
|
if err != nil {
|
|
return err
|
|
return err
|
|
}
|
|
}
|
|
@@ -518,10 +498,6 @@ func (m *Manager) Delete(t PluginType, name string, stop bool) error {
|
|
m.uninstalSink(name)
|
|
m.uninstalSink(name)
|
|
case FUNCTION:
|
|
case FUNCTION:
|
|
old := make([]string, 0)
|
|
old := make([]string, 0)
|
|
- err = m.db.Open()
|
|
|
|
- if err != nil {
|
|
|
|
- return err
|
|
|
|
- }
|
|
|
|
if ok, err := m.db.Get(name, &old); err != nil {
|
|
if ok, err := m.db.Get(name, &old); err != nil {
|
|
return err
|
|
return err
|
|
} else if ok {
|
|
} else if ok {
|
|
@@ -533,7 +509,6 @@ func (m *Manager) Delete(t PluginType, name string, stop bool) error {
|
|
} else if !ok {
|
|
} else if !ok {
|
|
m.registry.RemoveSymbols([]string{name})
|
|
m.registry.RemoveSymbols([]string{name})
|
|
}
|
|
}
|
|
- m.db.Close()
|
|
|
|
m.uninstalFunc(name)
|
|
m.uninstalFunc(name)
|
|
}
|
|
}
|
|
|
|
|
|
@@ -573,12 +548,9 @@ func (m *Manager) Get(t PluginType, name string) (map[string]interface{}, bool)
|
|
"version": v,
|
|
"version": v,
|
|
}
|
|
}
|
|
if t == FUNCTION {
|
|
if t == FUNCTION {
|
|
- if err := m.db.Open(); err == nil {
|
|
|
|
- l := make([]string, 0)
|
|
|
|
- if ok, _ := m.db.Get(name, &l); ok {
|
|
|
|
- r["functions"] = l
|
|
|
|
- }
|
|
|
|
- m.db.Close()
|
|
|
|
|
|
+ l := make([]string, 0)
|
|
|
|
+ if ok, _ := m.db.Get(name, &l); ok {
|
|
|
|
+ r["functions"] = l
|
|
}
|
|
}
|
|
// ignore the error
|
|
// ignore the error
|
|
}
|
|
}
|