edit from feedbacks
authordamon92 <damon92.lee@samsung.com>
Thu, 28 Mar 2019 05:07:50 +0000 (14:07 +0900)
committerdamon92 <damon92.lee@samsung.com>
Thu, 28 Mar 2019 05:07:50 +0000 (14:07 +0900)
src/discoverymgr/configure.go
src/discoverymgr/discovery_init.go
src/discoverymgr/test/device_discovery_test.go [deleted file]

index 166edd6..99a6d15 100644 (file)
@@ -1,17 +1,17 @@
 package discoverymgr
 
 const (
-       //Watchout about the length of each values mdns constraints
-       appName         = "OrchestrationAgent"
-       serviceType     = "_orchestration._tcp"
-       domain          = "local."
-       servicePort     = 42425
-       localAddrFilter = "127.0.0.1"
-       maxTXTSize      = (400 / 4)
+       //Service to Discover and Advertise Edge Orchestration Device
+       //any name, no longer than 20 character
+       serviceName = "OrchestrationAgent"
+       //fixed service type, search only fixed servicetype
+       serviceType = "_orchestration._tcp"
+       //mDNS only support local. domain
+       domain      = "local."
+       servicePort = 42425
+       //max txt size of mdns service
+       maxTXTSize = 400
 )
 
 // ExitChan is orchestration agent exit chan
 var ExitChan chan int
-
-// ServiceIdx is for unique service ID
-// var ServiceIdx uint64
index 2472e63..fe4ca1e 100644 (file)
@@ -1,4 +1,3 @@
-//Package discoverymgr wraps main functions of IoTivity/ocstack with golang to use Discovery functions in go project.
 package discoverymgr
 
 import (
@@ -12,17 +11,22 @@ import (
 
 var gServer *zeroconf.Server
 
-func setServiceNames(ServiceNames []string) {
-       if len(ServiceNames) > maxTXTSize {
+//SetServiceNames set txt of mdns message
+func SetServiceNames(ServiceNames []string) {
+
+       var TXTSize int
+       for _, str := range ServiceNames {
+               TXTSize += len(str)
+       }
+       if TXTSize > maxTXTSize {
                fmt.Println("TXT Size is Too much for mDNS TXT - 400B")
                return
        }
        gServer.SetText(ServiceNames)
 }
 
-//RegisterDevice register orchestration service
-func RegisterDevice(ServiceNames []string, ret chan error) {
-       server, err := zeroconf.Register(appName, serviceType, domain, servicePort, ServiceNames, nil)
+func registerDevice(ServiceNames []string, ret chan error) {
+       server, err := zeroconf.Register(serviceName, serviceType, domain, servicePort, ServiceNames, nil)
        if err != nil {
                ret <- err
                return
@@ -49,7 +53,7 @@ func DeviceList() ([]DeviceReturnInfo, error) {
                return nil, err
        }
 
-       var data = make(map[string][]string) //data[appname]
+       var data = make(map[string][]string) //data[deviceIP][[]ServiceNames]
        entries := make(chan *zeroconf.ServiceEntry)
        go func(results <-chan *zeroconf.ServiceEntry) {
                for entry := range results {
@@ -59,10 +63,6 @@ func DeviceList() ([]DeviceReturnInfo, error) {
 
                        ServiceNames = entry.Text
 
-                       if deviceIP == localAddrFilter {
-                               fmt.Println("Filtering local Addr 127.0.0.1")
-                               continue
-                       }
                        data[deviceIP] = ServiceNames
                }
        }(entries)
@@ -92,7 +92,7 @@ func InitDiscovery() {
        //@ToDo []sting Will be retrieved from configuremgr
        //setServiceNames(ServiceNames)
        ServiceNames := []string{"Distributed Web Engine", "Television", "Soundbox"}
-       go RegisterDevice(ServiceNames, registerCh)
+       go registerDevice(ServiceNames, registerCh)
        if err := <-registerCh; err != nil {
                log.Println("[Fail] " + err.Error())
        }
diff --git a/src/discoverymgr/test/device_discovery_test.go b/src/discoverymgr/test/device_discovery_test.go
deleted file mode 100644 (file)
index b999c67..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-package test
-
-import (
-       dm "discoverymgr"
-       "testing"
-)
-
-var data = dm.AppReturnInfo{
-       AppName: "GreetWorldApp",
-       DeviceList: []dm.DeviceReturnInfo{
-               {
-                       DeviceID:   1,
-                       DeviceName: "hello world#1",
-                       Status:     "started",
-                       DeviceIP:   "10.113.175.144",
-               },
-               {
-                       DeviceID:   2,
-                       DeviceName: "hello world#2",
-                       Status:     "progressing",
-                       DeviceIP:   "10.113.175.144",
-               },
-       },
-}
-
-func TestDeviceList(t *testing.T) {
-       registerCh := make(chan error)
-       ServiceNames := []string{"Distributed Web Engine", "Television", "Soundbox"}
-       go RegisterDevice(ServiceNames, registerCh)
-       if err := <-registerCh; err != nil {
-               t.Error("fail")
-       }
-
-       ret, err := dm.DeviceList()
-       if err != nil {
-               t.Error("fail")
-               return
-       }
-       t.Log(ret)
-       if len(ret) != 1 {
-               t.Error("fail")
-       }
-
-       ExitChan <- 1
-
-       ret, err = dm.DeviceList()
-       if err != nil {
-               t.Error("fail")
-               return
-       }
-       t.Log(ret)
-       if len(ret) != 0 {
-               t.Error("fail")
-       }
-}