github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/imageserver/client/listDirectories.go (about)

     1  package client
     2  
     3  import (
     4  	"github.com/Cloud-Foundations/Dominator/lib/image"
     5  	"github.com/Cloud-Foundations/Dominator/lib/srpc"
     6  )
     7  
     8  func listDirectories(client *srpc.Client) ([]image.Directory, error) {
     9  	conn, err := client.Call("ImageServer.ListDirectories")
    10  	if err != nil {
    11  		return nil, err
    12  	}
    13  	defer conn.Close()
    14  	directories := make([]image.Directory, 0)
    15  	for {
    16  		var directory image.Directory
    17  		if err := conn.Decode(&directory); err != nil {
    18  			return nil, err
    19  		}
    20  		if directory.Name == "" {
    21  			break
    22  		}
    23  		directories = append(directories, directory)
    24  	}
    25  	return directories, nil
    26  }