//ResetServiceName will reset txt of mdns message
func ResetServiceName() error {
serverTXT = nil
- return SetServiceNames(serverTXT)
+ return SetServiceNames("")
}
//AddNewServiceName add servicename to orchestration server
func AddNewServiceName(doc *confdescription.Doc) error {
newService := doc.ServiceInfo.ServiceName
+ if newService == "" {
+ return errors.New("no argument")
+ }
if gServer == nil {
return errors.New("Orchestration is not Exist")
}
+ return SetServiceNames(newService)
+}
+
+//SetServiceNames set txt of mdns message
+func SetServiceNames(newService string) error {
+
+ if newService == "" {
+ gServer.SetText(serverTXT)
+ return nil
+ }
+
for _, str := range serverTXT {
if str == newService {
return errors.New("ServiceName Duplicated")
}
serverTXT = append(serverTXT, newService)
- return SetServiceNames(serverTXT)
-}
-
-//SetServiceNames set txt of mdns message
-func SetServiceNames(ServiceNames []string) error {
-
var TXTSize int
- for _, str := range ServiceNames {
+ for _, str := range serverTXT {
TXTSize += len(str)
}
if TXTSize > maxTXTSize {
return errors.New("TXT Size is Too much for mDNS TXT - 400B")
}
- gServer.SetText(ServiceNames)
+
+ gServer.SetText(serverTXT)
return nil
}
}
}
+// APIV1DiscoverymgrDevicesPost function
+func APIV1DiscoverymgrDevicesPost(w http.ResponseWriter, r *http.Request) {
+ log.Printf("[%s] APIV1DiscoverymgrDevicesPost", logPrefix)
+
+ var distService map[string]interface{}
+ decoder := json.NewDecoder(r.Body)
+ err := decoder.Decode(&distService)
+ if err != nil {
+ return
+ }
+ target := distService["ServiceName"]
+
+ ret, err := discoverymgr.GetDeviceListWithService(target.(string))
+ if err != nil {
+ writeJSONResponse(w, nil, http.StatusBadRequest)
+ return
+ }
+ json, err := json.Marshal(ret)
+ if err == nil {
+ writeJSONResponse(w, json, http.StatusOK)
+ } else {
+ writeJSONResponse(w, nil, http.StatusBadRequest)
+ }
+}
+
+// APIV1DiscoverymgrDevicesTXTPost function
+func APIV1DiscoverymgrDevicesTXTPost(w http.ResponseWriter, r *http.Request) {
+ log.Printf("[%s] APIV1DiscoverymgrDevicesTXTPost", logPrefix)
+
+ var distService map[string]interface{}
+ decoder := json.NewDecoder(r.Body)
+ err := decoder.Decode(&distService)
+ if err != nil {
+ return
+ }
+ target := distService["ServiceName"]
+
+ err = discoverymgr.SetServiceNames(target.(string))
+ if err != nil {
+ writeJSONResponse(w, nil, http.StatusBadRequest)
+ } else {
+ writeJSONResponse(w, nil, http.StatusOK)
+ }
+}
+
// APIV1ServicemgrServicesDelete function
func APIV1ServicemgrServicesDelete(w http.ResponseWriter, r *http.Request) {
log.Printf("[%s] APIV1ServicemgrServicesDelete", logPrefix)
},
Route{
+ "APIV1DiscoverymgrDevicesPost",
+ strings.ToUpper("Post"),
+ "/api/v1/discoverymgr/devices",
+ APIV1DiscoverymgrDevicesPost,
+ },
+
+ Route{
+ "APIV1DiscoverymgrDevicesTXTPost",
+ strings.ToUpper("Post"),
+ "/api/v1/discoverymgr/devices/TXT",
+ APIV1DiscoverymgrDevicesTXTPost,
+ },
+
+ Route{
"APIV1ServicemgrServicesPost",
strings.ToUpper("Post"),
"/api/v1/servicemgr/services",