Explorar o código

remove dumb pointer crap

reid %!s(int64=2) %!d(string=hai) anos
pai
achega
b71c6561f4
Modificáronse 3 ficheiros con 14 adicións e 10 borrados
  1. 2 2
      broadcast/broadcast.go
  2. 11 7
      docker/docker.go
  3. 1 1
      structs/structs.go

+ 2 - 2
broadcast/broadcast.go

@@ -125,7 +125,7 @@ func constructPierInfo(piers []string) (map[string]structs.Urbit, error) {
 	for pier, status := range pierStatus {
 		// pull docker info from json
 		var dockerConfig structs.UrbitDocker
-		var dockerStats *structs.ContainerStats
+		var dockerStats structs.ContainerStats
 		dockerStats, err := docker.GetContainerStats(pier)
 		if err != nil {
 			errmsg := fmt.Sprintf("Unable to load %s stats: %v", pier, err)
@@ -162,7 +162,7 @@ func constructPierInfo(piers []string) (map[string]structs.Urbit, error) {
 		urbit.Info.Network = shipNetworks[pier]
 		urbit.Info.URL = "http://" + hostName + ":" + string(dockerConfig.HTTPPort)
 		urbit.Info.LoomSize = int(math.Pow(2, float64(dockerConfig.LoomSize)) / math.Pow(1024, 2))
-		urbit.Info.DiskUsage = *dockerStats.DiskUsage
+		urbit.Info.DiskUsage = dockerStats.DiskUsage
 		urbit.Info.MemUsage = dockerStats.MemoryUsage
 		urbit.Info.DevMode = dockerConfig.DevMode
 		urbit.Info.Vere = dockerConfig.UrbitVersion

+ 11 - 7
docker/docker.go

@@ -70,28 +70,32 @@ func GetContainerNetwork(name string) (string, error) {
 	return "", fmt.Errorf("container is not attached to any network")
 }
 
-func GetContainerStats(containerName string) (*structs.ContainerStats, error) {
+func GetContainerStats(containerName string) (structs.ContainerStats, error) {
+	var res structs.ContainerStats
 	cli, err := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
 	if err != nil {
-		return nil, err
+		return res, err
 	}
 	defer cli.Close()
 	statsResp, err := cli.ContainerStats(context.Background(), containerName, false)
 	if err != nil {
-		return nil, err
+		return res, err
 	}
 	defer statsResp.Body.Close()
 	var stat types.StatsJSON
 	if err := json.NewDecoder(statsResp.Body).Decode(&stat); err != nil {
-		return nil, err
+		return res, err
 	}
 	memUsage := stat.MemoryStats.Usage
 	inspectResp, err := cli.ContainerInspect(context.Background(), containerName)
 	if err != nil {
-		return nil, err
+		return res, err
 	}
-	diskUsage := inspectResp.SizeRw
-	return &structs.ContainerStats{
+	diskUsage := int64(0)
+	if inspectResp.SizeRw != nil {
+		diskUsage = *inspectResp.SizeRw
+	}
+	return structs.ContainerStats{
 		MemoryUsage: memUsage,
 		DiskUsage:   diskUsage,
 	}, nil

+ 1 - 1
structs/structs.go

@@ -256,5 +256,5 @@ type UrbitDocker struct {
 
 type ContainerStats struct {
 	MemoryUsage uint64
-	DiskUsage   *int64
+	DiskUsage   int64
 }