github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/imageserver/client/listUnreferencedObjects.go (about) 1 package client 2 3 import ( 4 "github.com/Cloud-Foundations/Dominator/lib/hash" 5 "github.com/Cloud-Foundations/Dominator/lib/srpc" 6 "github.com/Cloud-Foundations/Dominator/proto/imageserver" 7 ) 8 9 func listUnreferencedObjects(client *srpc.Client) ( 10 map[hash.Hash]uint64, error) { 11 conn, err := client.Call("ImageServer.ListUnreferencedObjects") 12 if err != nil { 13 return nil, err 14 } 15 defer conn.Close() 16 objects := make(map[hash.Hash]uint64) 17 for { 18 var object imageserver.Object 19 if err := conn.Decode(&object); err != nil { 20 return nil, err 21 } 22 if object.Size < 1 { 23 break 24 } 25 objects[object.Hash] = object.Size 26 } 27 return objects, nil 28 }