Browse Source

feat():add api of sources yaml

EMqmyd 4 years atrás
parent
commit
8301302763
3 changed files with 32 additions and 0 deletions
  1. 1 0
      plugins/sinkMeta.go
  2. 16 0
      plugins/sourceMeta.go
  3. 15 0
      xstream/server/server/rest.go

+ 1 - 0
plugins/sinkMeta.go

@@ -128,6 +128,7 @@ func newAbout(fi *fileAbout) *about {
 	}
 	ui := new(about)
 	ui.Trial = fi.Trial
+	ui.Installed = fi.Installed
 	ui.Author = fi.Author
 	ui.HelpUrl = newLanguage(fi.HelpUrl)
 	ui.Description = newLanguage(fi.Description)

+ 16 - 0
plugins/sourceMeta.go

@@ -115,6 +115,22 @@ func (m *Manager) readSourceMetaDir() error {
 	return nil
 }
 
+func GetSourceConf(pluginName string) (b []byte, err error) {
+	property, ok := g_sourceProperty[pluginName+".json"]
+	if ok {
+		cf := make(map[string]map[string]interface{})
+		for key, kvs := range property.cf {
+			aux := make(map[interface{}]interface{})
+			for k, v := range kvs {
+				aux[k] = v
+			}
+			cf[key] = common.ConvertMap(aux)
+		}
+		return json.Marshal(cf)
+	}
+	return nil, fmt.Errorf("not found plugin %s", pluginName)
+}
+
 func GetSourceMeta(pluginName string) (ptrSourceProperty *uiSource, err error) {
 	property, ok := g_sourceProperty[pluginName+".json"]
 	if ok {

+ 15 - 0
xstream/server/server/rest.go

@@ -102,6 +102,7 @@ func createRestServer(port int) *http.Server {
 	r.HandleFunc("/metadata/sinks/rule/{id}", showSinkMetaHandler).Methods(http.MethodGet)
 
 	r.HandleFunc("/metadata/sources", sourcesMetaHandler).Methods(http.MethodGet)
+	r.HandleFunc("/metadata/sources/yaml/{name}", sourceConfHandler).Methods(http.MethodGet)
 	r.HandleFunc("/metadata/sources/{name}", sourceMetaHandler).Methods(http.MethodGet)
 	r.HandleFunc("/metadata/sources/{name}/confKeys", sourceConfKeysHandler).Methods(http.MethodGet)
 	r.HandleFunc("/metadata/sources/{name}/confKeys/{confKey}", sourceConfKeyHandler).Methods(http.MethodDelete, http.MethodPost)
@@ -620,6 +621,20 @@ func sourceMetaHandler(w http.ResponseWriter, r *http.Request) {
 	}
 }
 
+//Get source yaml
+func sourceConfHandler(w http.ResponseWriter, r *http.Request) {
+	defer r.Body.Close()
+	vars := mux.Vars(r)
+	pluginName := vars["name"]
+	ret, err := plugins.GetSourceConf(pluginName)
+	if err != nil {
+		handleError(w, err, "metadata error", logger)
+		return
+	} else {
+		w.Write(ret)
+	}
+}
+
 //Get confKeys of the source metadata
 func sourceConfKeysHandler(w http.ResponseWriter, r *http.Request) {
 	defer r.Body.Close()