github.com/cloud-foundations/dominator@v0.0.0-20221004181915-6e4fee580046/cmd/imagetool/showImageFilter.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/Cloud-Foundations/Dominator/lib/log"
     7  	"github.com/Cloud-Foundations/Dominator/proto/imageserver"
     8  )
     9  
    10  func showImageFilterSubcommand(args []string, logger log.DebugLogger) error {
    11  	if err := showImageFilter(args[0]); err != nil {
    12  		return fmt.Errorf("Error showing image filter: %s", err)
    13  	}
    14  	return nil
    15  }
    16  
    17  func showImageFilter(imageName string) error {
    18  	imageSClient, _ := getClients()
    19  	request := imageserver.GetImageRequest{
    20  		ImageName:        imageName,
    21  		IgnoreFilesystem: true,
    22  		Timeout:          *timeout,
    23  	}
    24  	var reply imageserver.GetImageResponse
    25  	err := imageSClient.RequestReply("ImageServer.GetImage", request, &reply)
    26  	if err != nil {
    27  		return err
    28  	}
    29  	if reply.Image == nil {
    30  		return fmt.Errorf("no image")
    31  	}
    32  	if reply.Image.Filter == nil {
    33  		return fmt.Errorf("no filter")
    34  	}
    35  	for _, line := range reply.Image.Filter.FilterLines {
    36  		fmt.Println(line)
    37  	}
    38  	return nil
    39  }