Eliminate global variables.
This commit is contained in:
		
							parent
							
								
									dc2b48ef57
								
							
						
					
					
						commit
						e1a1dd28c4
					
				|  | @ -15,11 +15,6 @@ import ( | ||||||
| 	influx "github.com/influxdata/influxdb/client/v2" | 	influx "github.com/influxdata/influxdb/client/v2" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| var ( |  | ||||||
| 	unifi *http.Client |  | ||||||
| 	stats influx.Client |  | ||||||
| ) |  | ||||||
| 
 |  | ||||||
| // Response marshalls the payload from the controller.
 | // Response marshalls the payload from the controller.
 | ||||||
| type Response struct { | type Response struct { | ||||||
| 	Data []Client | 	Data []Client | ||||||
|  | @ -154,20 +149,19 @@ func (c Client) Point() *influx.Point { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func main() { | func main() { | ||||||
| 	var err error |  | ||||||
| 	tickRate := os.Getenv("TICK_RATE") | 	tickRate := os.Getenv("TICK_RATE") | ||||||
| 	interval, err := time.ParseDuration(tickRate) | 	interval, err := time.ParseDuration(tickRate) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		panic(err) | 		panic(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	unifi, err = login() | 	unifi, err := login() | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		panic(err) | 		panic(err) | ||||||
| 	} | 	} | ||||||
| 
 | 	log.Println("Successfully authenticated to Unifi Controller!") | ||||||
| 	database := os.Getenv("INFLUXDB_DATABASE") | 	database := os.Getenv("INFLUXDB_DATABASE") | ||||||
| 	stats, err = influx.NewHTTPClient(influx.HTTPConfig{ | 	stats, err := influx.NewHTTPClient(influx.HTTPConfig{ | ||||||
| 		Addr:     os.Getenv("INFLUXDB_ADDR"), | 		Addr:     os.Getenv("INFLUXDB_ADDR"), | ||||||
| 		Username: os.Getenv("INFLUXDB_USERNAME"), | 		Username: os.Getenv("INFLUXDB_USERNAME"), | ||||||
| 		Password: os.Getenv("INFLUXDB_PASSWORD"), | 		Password: os.Getenv("INFLUXDB_PASSWORD"), | ||||||
|  | @ -176,16 +170,15 @@ func main() { | ||||||
| 		panic(err) | 		panic(err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	log.Printf("Starting to poll Unifi every %+v\n", interval) | 	log.Printf("Polling Unifi Controller, interval: %+v\n", interval) | ||||||
| 	for { | 	for { | ||||||
| 		devices, err := fetch() | 		devices, err := fetch(unifi) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			log.Println(err) | 			log.Println(err) | ||||||
| 		} else { | 		} else { | ||||||
| 			bp, _ := influx.NewBatchPoints(influx.BatchPointsConfig{ | 			bp, _ := influx.NewBatchPoints(influx.BatchPointsConfig{ | ||||||
| 				Database: database, | 				Database: database, | ||||||
| 			}) | 			}) | ||||||
| 
 |  | ||||||
| 			for _, device := range devices { | 			for _, device := range devices { | ||||||
| 				bp.AddPoint(device.Point()) | 				bp.AddPoint(device.Point()) | ||||||
| 			} | 			} | ||||||
|  | @ -194,14 +187,14 @@ func main() { | ||||||
| 				log.Println(err) | 				log.Println(err) | ||||||
| 			} | 			} | ||||||
| 
 | 
 | ||||||
| 			log.Println("Logged client state...") | 			log.Printf("Logged client state. Devices: %v", len(devices)) | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		time.Sleep(interval) | 		time.Sleep(interval) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| func fetch() ([]Client, error) { | func fetch(unifi *http.Client) ([]Client, error) { | ||||||
| 	url := "https://" + os.Getenv("UNIFI_ADDR") + ":" + os.Getenv("UNIFI_PORT") + "/api/s/default/stat/sta" | 	url := "https://" + os.Getenv("UNIFI_ADDR") + ":" + os.Getenv("UNIFI_PORT") + "/api/s/default/stat/sta" | ||||||
| 	req, err := http.NewRequest("GET", url, nil) | 	req, err := http.NewRequest("GET", url, nil) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
|  | @ -215,7 +208,7 @@ func fetch() ([]Client, error) { | ||||||
| 
 | 
 | ||||||
| 	defer func() { | 	defer func() { | ||||||
| 		if err = resp.Body.Close(); err != nil { | 		if err = resp.Body.Close(); err != nil { | ||||||
| 			log.Println("Error closing http respond body:", err) | 			log.Println("Closing HTTP response:", err) | ||||||
| 		} | 		} | ||||||
| 	}() | 	}() | ||||||
| 	body, _ := ioutil.ReadAll(resp.Body) | 	body, _ := ioutil.ReadAll(resp.Body) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue