Преглед на файлове

fix(etc): read meta ui data from etc/data

Signed-off-by: Jianxiang Ran <rxan_embedded@163.com>
Jianxiang Ran преди 2 години
родител
ревизия
e8681a9b3d
променени са 5 файла, в които са добавени 88 реда и са изтрити 21 реда
  1. 21 0
      internal/meta/func_meta.go
  2. 22 0
      internal/meta/sinkMeta.go
  3. 25 0
      internal/meta/sourceMeta.go
  4. 0 21
      internal/server/rest.go
  5. 20 0
      internal/server/server.go

+ 21 - 0
internal/meta/func_meta.go

@@ -104,6 +104,27 @@ func ReadFuncMetaDir(checker InstallChecker) error {
 			return err
 			return err
 		}
 		}
 	}
 	}
+
+	confDir, err = conf.GetDataLoc()
+	if nil != err {
+		return err
+	}
+
+	dir = path.Join(confDir, "functions")
+	files, err = os.ReadDir(dir)
+	if nil != err {
+		return err
+	}
+	for _, file := range files {
+		fname := file.Name()
+		if !strings.HasSuffix(fname, ".json") {
+			continue
+		}
+
+		if err := ReadFuncMetaFile(path.Join(dir, fname), checker(strings.TrimSuffix(fname, ".json"))); nil != err {
+			return err
+		}
+	}
 	return nil
 	return nil
 }
 }
 
 

+ 22 - 0
internal/meta/sinkMeta.go

@@ -205,6 +205,28 @@ func ReadSinkMetaDir(checker InstallChecker) error {
 			return err
 			return err
 		}
 		}
 	}
 	}
+
+	confDir, err = conf.GetDataLoc()
+	if nil != err {
+		return err
+	}
+
+	dir = path.Join(confDir, "sinks")
+	files, err = os.ReadDir(dir)
+	if nil != err {
+		return err
+	}
+	for _, file := range files {
+		fname := file.Name()
+		if !strings.HasSuffix(fname, ".json") {
+			continue
+		}
+
+		filePath := path.Join(dir, fname)
+		if err := ReadSinkMetaFile(filePath, checker(strings.TrimSuffix(fname, ".json"))); nil != err {
+			return err
+		}
+	}
 	return nil
 	return nil
 }
 }
 
 

+ 25 - 0
internal/meta/sourceMeta.go

@@ -106,6 +106,7 @@ func ReadSourceMetaFile(filePath string, installed bool) error {
 }
 }
 
 
 func ReadSourceMetaDir(checker InstallChecker) error {
 func ReadSourceMetaDir(checker InstallChecker) error {
+	//load etc/sources meta data
 	confDir, err := conf.GetConfLoc()
 	confDir, err := conf.GetConfLoc()
 	if nil != err {
 	if nil != err {
 		return err
 		return err
@@ -132,6 +133,30 @@ func ReadSourceMetaDir(checker InstallChecker) error {
 			conf.Log.Infof("Loading metadata file for source : %s", fileName)
 			conf.Log.Infof("Loading metadata file for source : %s", fileName)
 		}
 		}
 	}
 	}
+
+	//load data/sources meta data
+	confDir, err = conf.GetDataLoc()
+	if nil != err {
+		return err
+	}
+
+	dir = path.Join(confDir, "sources")
+	dirEntries, err = os.ReadDir(dir)
+	if nil != err {
+		return err
+	}
+
+	for _, entry := range dirEntries {
+		fileName := entry.Name()
+		if strings.HasSuffix(fileName, ".json") {
+			filePath := path.Join(dir, fileName)
+			if err = ReadSourceMetaFile(filePath, checker(strings.TrimSuffix(fileName, ".json"))); nil != err {
+				return err
+			}
+			conf.Log.Infof("Loading metadata file for source : %s", fileName)
+		}
+	}
+
 	return nil
 	return nil
 }
 }
 
 

+ 0 - 21
internal/server/rest.go

@@ -28,7 +28,6 @@ import (
 
 
 	"github.com/gorilla/handlers"
 	"github.com/gorilla/handlers"
 	"github.com/gorilla/mux"
 	"github.com/gorilla/mux"
-	"github.com/lf-edge/ekuiper/internal/conf"
 	"github.com/lf-edge/ekuiper/internal/server/middleware"
 	"github.com/lf-edge/ekuiper/internal/server/middleware"
 	"github.com/lf-edge/ekuiper/pkg/api"
 	"github.com/lf-edge/ekuiper/pkg/api"
 	"github.com/lf-edge/ekuiper/pkg/ast"
 	"github.com/lf-edge/ekuiper/pkg/ast"
@@ -96,27 +95,7 @@ func jsonResponse(i interface{}, w http.ResponseWriter, logger api.Logger) {
 	}
 	}
 }
 }
 
 
-func createPaths() {
-	dataDir, err := conf.GetDataLoc()
-	if err != nil {
-		panic(err)
-	}
-	dirs := []string{"sources", "sinks", "functions", "services", "services/schemas"}
-
-	for _, v := range dirs {
-		// Create dir if not exist
-		realDir := filepath.Join(dataDir, v)
-		if _, err := os.Stat(realDir); os.IsNotExist(err) {
-			if err := os.MkdirAll(realDir, os.ModePerm); err != nil {
-				panic(err)
-			}
-		}
-	}
-}
-
 func createRestServer(ip string, port int, needToken bool) *http.Server {
 func createRestServer(ip string, port int, needToken bool) *http.Server {
-	createPaths()
-
 	r := mux.NewRouter()
 	r := mux.NewRouter()
 	r.HandleFunc("/", rootHandler).Methods(http.MethodGet, http.MethodPost)
 	r.HandleFunc("/", rootHandler).Methods(http.MethodGet, http.MethodPost)
 	r.HandleFunc("/ping", pingHandler).Methods(http.MethodGet)
 	r.HandleFunc("/ping", pingHandler).Methods(http.MethodGet)

+ 20 - 0
internal/server/server.go

@@ -27,6 +27,7 @@ import (
 	"net/http"
 	"net/http"
 	"os"
 	"os"
 	"os/signal"
 	"os/signal"
+	"path/filepath"
 	"sort"
 	"sort"
 	"syscall"
 	"syscall"
 	"time"
 	"time"
@@ -40,10 +41,29 @@ var (
 	streamProcessor *processor.StreamProcessor
 	streamProcessor *processor.StreamProcessor
 )
 )
 
 
+func createPaths() {
+	dataDir, err := conf.GetDataLoc()
+	if err != nil {
+		panic(err)
+	}
+	dirs := []string{"sources", "sinks", "functions", "services", "services/schemas"}
+
+	for _, v := range dirs {
+		// Create dir if not exist
+		realDir := filepath.Join(dataDir, v)
+		if _, err := os.Stat(realDir); os.IsNotExist(err) {
+			if err := os.MkdirAll(realDir, os.ModePerm); err != nil {
+				panic(err)
+			}
+		}
+	}
+}
+
 func StartUp(Version, LoadFileType string) {
 func StartUp(Version, LoadFileType string) {
 	version = Version
 	version = Version
 	conf.LoadFileType = LoadFileType
 	conf.LoadFileType = LoadFileType
 	startTimeStamp = time.Now().Unix()
 	startTimeStamp = time.Now().Unix()
+	createPaths()
 	conf.InitConf()
 	conf.InitConf()
 	factory.InitClientsFactory()
 	factory.InitClientsFactory()