From ac4d0a24cadf6c594c25db43283f6656572413c7 Mon Sep 17 00:00:00 2001 From: Holger Cremer Date: Thu, 4 Jan 2018 21:57:57 +0100 Subject: [PATCH] adds more tests, help and some fixes --- cmd/spaceDevices.go | 50 ++++++++++++++++++++++++++--- conf/config.go | 6 ++++ conf/config_test.go | 2 ++ config.example.toml | 4 +++ db/utils_test.go | 2 ++ do.sh | 3 ++ mqtt/deviceData.go | 36 ++++++++++++++++++--- mqtt/deviceData_test.go | 15 +++++++-- mqtt/mqtt.go | 13 ++++---- mqtt/structs.go | 34 ++++++++++++++++++-- webService/web.go | 4 +-- webUI/assets/images/example.jpg | Bin 0 -> 38183 bytes webUI/assets/images/screenshot.png | Bin 32358 -> 0 bytes webUI/templates/help.html | 5 +-- 14 files changed, 150 insertions(+), 24 deletions(-) create mode 100644 webUI/assets/images/example.jpg delete mode 100644 webUI/assets/images/screenshot.png diff --git a/cmd/spaceDevices.go b/cmd/spaceDevices.go index 93a0779..af24d67 100644 --- a/cmd/spaceDevices.go +++ b/cmd/spaceDevices.go @@ -1,28 +1,68 @@ package main import ( + "fmt" + "os" + "github.com/ktt-ol/spaceDevices/conf" "github.com/ktt-ol/spaceDevices/db" "github.com/ktt-ol/spaceDevices/mqtt" "github.com/ktt-ol/spaceDevices/webService" - log "github.com/sirupsen/logrus" + "github.com/sirupsen/logrus" ) const CONFIG_FILE = "config.toml" func main() { - log.SetLevel(log.DebugLevel) - log.SetFormatter(&log.TextFormatter{DisableColors: true}) - config := conf.LoadConfig(CONFIG_FILE) + setupLogging(config.Misc) + //spaceDevices.EnableMqttDebugLogging() userDb := db.NewUserDb(config.MacDb) masterDb := db.NewMasterDb(config.MacDb) mqttHandler := mqtt.NewMqttHandler(config.Mqtt) - data := mqtt.NewDeviceData(mqttHandler, masterDb, userDb) + data := mqtt.NewDeviceData(config.Locations, mqttHandler, masterDb, userDb) webService.StartWebService(config.Server, data, userDb) } + +type StdErrLogHook struct { +} + +func (h *StdErrLogHook) Levels() []logrus.Level { + return []logrus.Level{logrus.WarnLevel, logrus.ErrorLevel, logrus.FatalLevel, logrus.PanicLevel} +} +func (h *StdErrLogHook) Fire(entry *logrus.Entry) error { + line, err := entry.String() + if err != nil { + fmt.Fprintf(os.Stderr, "Unable to read entry, %v", err) + return err + } + fmt.Fprintf(os.Stderr, line) + return nil +} + +func setupLogging(config conf.MiscConf) { + logrus.SetFormatter(&logrus.TextFormatter{DisableColors: true}) + if config.DebugLogging { + logrus.SetLevel(logrus.DebugLevel) + } else { + logrus.SetLevel(logrus.InfoLevel) + } + + if config.Logfile == "" { + logrus.SetOutput(os.Stdout) + } else { + // https://github.com/sirupsen/logrus/issues/227 + file, err := os.OpenFile(config.Logfile, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0666) + if err == nil { + logrus.SetOutput(file) + } else { + logrus.Warnf("Failed to log to file '%s', using default stderr.", config.Logfile) + } + logrus.AddHook(&StdErrLogHook{}) + } +} diff --git a/conf/config.go b/conf/config.go index c0d7eb7..31825c2 100644 --- a/conf/config.go +++ b/conf/config.go @@ -16,12 +16,18 @@ func LoadConfig(configFile string) TomlConfig { } type TomlConfig struct { + Misc MiscConf Server ServerConf MacDb MacDbConf Mqtt MqttConf Locations []Location `toml:"location"` } +type MiscConf struct { + DebugLogging bool + Logfile string +} + type ServerConf struct { Host string Port int diff --git a/conf/config_test.go b/conf/config_test.go index c9952ba..70685d1 100644 --- a/conf/config_test.go +++ b/conf/config_test.go @@ -11,6 +11,8 @@ func Test_exampleConfig(t *testing.T) { assert := assert.New(t) config := conf.LoadConfig("../config.example.toml") + assert.Equal(false, config.Misc.DebugLogging) + assert.Equal("", config.Misc.Logfile) assert.Equal(2, len(config.Locations)) assert.Equal("Bar", config.Locations[0].Name) assert.Equal(2, len(config.Locations[0].Ids)) diff --git a/config.example.toml b/config.example.toml index eb1ce9b..ab40e9e 100644 --- a/config.example.toml +++ b/config.example.toml @@ -1,4 +1,8 @@ # COPY THIS TO config.toml +[misc] +debugLogging = false +# if enabled, all logging goes to the file. Warn and up goes to stderr, too. +# logfile = "/var/log/spaceDevices2.log" [server] host = "0.0.0.0" diff --git a/db/utils_test.go b/db/utils_test.go index 8913900..c748b43 100644 --- a/db/utils_test.go +++ b/db/utils_test.go @@ -9,4 +9,6 @@ func Test_IsMacLocallyAdministered(t *testing.T) { assert.True(t, IsMacLocallyAdministered("06:00:00:00:00:00")) assert.True(t, IsMacLocallyAdministered("62:01:0f:b5:f2:d9")) assert.False(t, IsMacLocallyAdministered("20:c9:d0:7a:fa:31")) + + assert.True(t, IsMacLocallyAdministered("d4:38:9c:01:dd:03")) } diff --git a/do.sh b/do.sh index bc5214e..d7949d0 100755 --- a/do.sh +++ b/do.sh @@ -15,6 +15,9 @@ while (( "$#" )); do build-linux) env GOOS=linux GOARCH=amd64 go build cmd/spaceDevices.go ;; + test-sync) + rsync -n -avzi --delete spaceDevices webUI root@spacegate:/home/status/spaceDevices2/ + ;; sync) rsync -avzi --delete spaceDevices webUI root@spacegate:/home/status/spaceDevices2/ ;; diff --git a/mqtt/deviceData.go b/mqtt/deviceData.go index b0e5866..0688861 100644 --- a/mqtt/deviceData.go +++ b/mqtt/deviceData.go @@ -2,12 +2,15 @@ package mqtt import ( "encoding/json" - "fmt" "github.com/ktt-ol/spaceDevices/conf" "github.com/ktt-ol/spaceDevices/db" "github.com/sirupsen/logrus" + "crypto/md5" + "fmt" + "bytes" + "sort" ) var ignoredVisibility = [...]db.Visibility{db.VisibilityCriticalInfrastructure, db.VisibilityImportantInfrastructure, @@ -27,6 +30,9 @@ type DeviceData struct { masterDb db.MasterDb userDb db.UserDb wifiSessionList []WifiSession + + lastSentHash []byte + // more to come, e.g. LanSessions } @@ -44,12 +50,32 @@ func NewDeviceData(locations []conf.Location, mqttHandler *MqttHandler, masterDb } func (d *DeviceData) newData(data []byte) { - fmt.Println("got data, len ", len(data)) sessionsList, peopleAndDevices, ok := d.parseWifiSessions(data) if ok { d.wifiSessionList = sessionsList - fmt.Printf("peopleAndDevices: %+v\n", peopleAndDevices) - d.mqttHandler.SendPeopleAndDevices(peopleAndDevices) + if ddLogger.Logger.Level >= logrus.DebugLevel { + people := make(map[string]interface{}) + for _, p := range peopleAndDevices.People { + people[p.Name] = nil + } + peopleList := make([]string, len(people)) + for k, _ := range people { + peopleList = append(peopleList, k) + } + sort.Strings(peopleList) + ddLogger.Debugf("PeopleCount: %d, DeviceCount: %d, UnknownDevicesCount: %d, Persons: %s", + peopleAndDevices.PeopleCount, peopleAndDevices.DeviceCount, peopleAndDevices.UnknownDevicesCount, peopleList) + } + h := md5.New() + s := fmt.Sprintf("%v", peopleAndDevices) + hash := h.Sum([]byte(s)) + if bytes.Equal(hash, d.lastSentHash) { + ddLogger.Debug("Nothing changed in people count, skipping mqtt") + } else { + d.mqttHandler.SendPeopleAndDevices(peopleAndDevices) + d.lastSentHash = hash + } + } } @@ -139,11 +165,13 @@ SESSION_LOOP: var person Person if devicesEntry.showDevices { person = Person{Name: username, Devices: devicesEntry.devices} + sort.Sort(DevicesSorter(person.Devices)) } else { person = Person{Name: username} } peopleAndDevices.People = append(peopleAndDevices.People, person) } + sort.Sort(PersonSorter(peopleAndDevices.People)) success = true return diff --git a/mqtt/deviceData_test.go b/mqtt/deviceData_test.go index 648533c..4456f62 100644 --- a/mqtt/deviceData_test.go +++ b/mqtt/deviceData_test.go @@ -189,10 +189,21 @@ func Test_peopleCalculation(t *testing.T) { entry.Visibility = db.VisibilityCriticalInfrastructure masterMap["00:00:00:00:00:05"] = entry _, peopleAndDevices, _ = dd.parseWifiSessions(testData) - fmt.Printf("peopleAndDevices: %+v\n", peopleAndDevices) assertPeopleAndDevices(assert, 2, 3, 5, 0, peopleAndDevices) - t.Fail() + // add a second device for olaf + testData = newSessionTestData(stt("1", "01"), stt("2", "02"), stt("3", "03"), stt("4", "04"), stt("5", "05"), stt("6", "06")) + userMap["00:00:00:00:00:06"] = db.UserDbEntry{Name: "olaf", DeviceName: "mac", Visibility: db.VisibilityAll} + _, peopleAndDevices, _ = dd.parseWifiSessions(testData) + fmt.Printf("peopleAndDevices: %+v\n", peopleAndDevices) + assertPeopleAndDevices(assert, 2, 3, 6, 0, peopleAndDevices) + for _, p := range peopleAndDevices.People { + if p.Name == "olaf" { + assert.Equal(2, len(p.Devices)) + } else { + assert.Equal(0, len(p.Devices)) + } + } } func assertPeopleAndDevices(assert *assert.Assertions, peopleArrayCount int, peopleCount uint, deviceCount uint, unknownDevicesCount uint, test PeopleAndDevices) { diff --git a/mqtt/mqtt.go b/mqtt/mqtt.go index 795c0f5..97b2492 100644 --- a/mqtt/mqtt.go +++ b/mqtt/mqtt.go @@ -16,7 +16,8 @@ const CLIENT_ID = "spaceDevices2" const TOPIC_SESSIONS = "/net/wlan-sessions" // ATTENTION: test topic! -const TOPIC_DEVICES = "/test/net_devices" +//const TOPIC_DEVICES = "/test/net_devices" +const TOPIC_DEVICES = "/net/devices" var mqttLogger = log.WithField("where", "mqtt") @@ -108,7 +109,7 @@ func (h *MqttHandler) onConnect(client mqtt.Client) { err := subscribe(client, TOPIC_SESSIONS, func(client mqtt.Client, message mqtt.Message) { mqttLogger.Debug("new wifi sessions") - /* + ///* mock := []byte(`{ "38134": { "last-auth": 1509211121, "vlan": "default", @@ -126,7 +127,7 @@ func (h *MqttHandler) onConnect(client mqtt.Client) { "last-snr": 47, "last-rate-mbits": "6", "ap": 1, - "mac": "10:68:3f:bb:bb:bb", + "mac": "d4:38:9c:01:dd:03", "radio": 2, "userinfo": { "name": "Holger", @@ -137,10 +138,10 @@ func (h *MqttHandler) onConnect(client mqtt.Client) { "last-rssi-dbm": -48, "last-activity": 1509211584 }}`) - */ + //*/ select { - // case h.newDataChan <- mock: - case h.newDataChan <- message.Payload(): + case h.newDataChan <- mock: + //case h.newDataChan <- message.Payload(): break default: mqttLogger.Println("No one receives the message.") diff --git a/mqtt/structs.go b/mqtt/structs.go index fb57fc9..7aada9a 100644 --- a/mqtt/structs.go +++ b/mqtt/structs.go @@ -1,5 +1,9 @@ package mqtt +import ( + "strings" +) + type WifiSession struct { Ip string Mac string @@ -12,14 +16,38 @@ type Devices struct { Location string `json:"location"` } +type DevicesSorter []Devices + +func (s DevicesSorter) Len() int { + return len(s) +} +func (s DevicesSorter) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} +func (s DevicesSorter) Less(i, j int) bool { + return strings.Compare(s[i].Name, s[j].Name) < 0 +} + type Person struct { Name string `json:"name"` Devices []Devices `json:"devices"` } +type PersonSorter []Person + +func (s PersonSorter) Len() int { + return len(s) +} +func (s PersonSorter) Swap(i, j int) { + s[i], s[j] = s[j], s[i] +} +func (s PersonSorter) Less(i, j int) bool { + return strings.Compare(s[i].Name, s[j].Name) < 0 +} + type PeopleAndDevices struct { People []Person `json:"people"` - PeopleCount uint `json:"peopleCount"` - DeviceCount uint `json:"deviceCount"` - UnknownDevicesCount uint `json:"unknownDevicesCount"` + PeopleCount uint16 `json:"peopleCount"` + DeviceCount uint16 `json:"deviceCount"` + UnknownDevicesCount uint16 `json:"unknownDevicesCount"` } diff --git a/webService/web.go b/webService/web.go index a9b5009..3267ab2 100644 --- a/webService/web.go +++ b/webService/web.go @@ -60,12 +60,12 @@ func overviewPageHandler(c *gin.Context) { isLocallyAdministered := false macNotFound := false if info, ok := devices.GetByIp(ip); ok { + mac = info.Mac + isLocallyAdministered = db.IsMacLocallyAdministered(mac) if userInfo, ok := macDb.Get(info.Mac); ok { - mac = info.Mac name = userInfo.Name deviceName = userInfo.DeviceName visibility = userInfo.Visibility - isLocallyAdministered = db.IsMacLocallyAdministered(mac) } } else { macNotFound = true diff --git a/webUI/assets/images/example.jpg b/webUI/assets/images/example.jpg new file mode 100644 index 0000000000000000000000000000000000000000..aba40e67298501dd4d9a6c523187af623479f7e7 GIT binary patch literal 38183 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 U$p~qdg^*FVm45)6{(si~2cP?dIRF3v literal 0 HcmV?d00001 diff --git a/webUI/assets/images/screenshot.png b/webUI/assets/images/screenshot.png deleted file mode 100644 index 2eab11e4a676bd3ce1494ab61a416cc5196bc2e4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32358 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 Seite.

- +
    -
  • Mit "Mit Name/Alias anzeigen." wirst du in A angezeigt.
  • +
  • Mit "Alles anzeigen, d.h. Name/Alias und Gerätename." wirst du in A1 und A2 angezeigt.
  • +
  • Mit "Mit Name/Alias anzeigen." wirst du nur in A1 angezeigt.
  • Mit "Als anonyme Person anzeigen." wirst du in B angezeigt.
  • Wenn du noch gar nichts eingetragen hast oder "Eintrag löschen" gewählt hast, dann wirst du in C angezeigt.